pike.git/
CHANGES
Branch:
Tag:
Non-build tags
All tags
No tags
2007-11-02
2007-11-02 16:24:14 by Henrik Grubbström (Grubba) <grubba@grubba.org>
71ef5ab2dac52ea443954dbc0bb6ef3a23c51865 (
94
lines) (+
94
/-
0
)
[
Show
|
Annotate
]
Branch:
7.9
Various changes since last year.
Rev: CHANGES:1.81
1:
Changes since Pike 7.6: ----------------------------------------------------------------------
+
o Added ABI selection.
+
It's now possible to select whether to compile in 32bit or 64bit
+
mode at configure time by using the --with-abi option.
+
o New syntax to index from the end in range operations. A "<" can be added before an index in the [..] operator to count from the end instead. This is convenient to e.g. chop off the last
31:
In the above B()->get_a() will return an object with two symbols, 'a' and 'foo', but B()->get_a()->foo() will still write "B\n".
+
o Added support for getters and setters.
+
It is now possible to simulate variables with functions. Example:
+
class A {
+
private int a;
+
int `->b() { return a; } // Getter for the symbol b.
+
void `->b=(int c) { a = c; } // Setter for the symbol b.
+
int c()
+
{
+
return b; // Calls `->b().
+
}
+
}
+
+
object a = A();
+
a->b = 17; // Calls `->b=(17).
+
werror("%d\n", a->b); // Calls `->b().
+
o Unicode escapes. Pike now understands the common way to escape unicode chars, using \uxxxx and \Uxxxxxxxx escapes. These escapes works both in string
39:
they contain characters that can't be represented raw in the source code charset.
+
o New (stricter) type checker for function calls.
+
The type checker for function calls is now based on the concept
+
of currification. This should provide for error messages that
+
are more easily understood. It also is much better att typechecking
+
function calls utilizing the splice (@) operator.
+
The mechanisms used by the typechecker are also made available as
+
Pike.get_first_arg_type(), Pike.low_check_call() and Pike.get_return_type().
+
+
o Added generic attributes for types.
+
Provides a method to hook into the type checker, so that it is
+
possible to make custom type checking.
+
No syntax yet.
+
Added such a type checker for sprintf().
+
+
o Stricter typing of strings.
+
The string type may now have an (optional) value range. Example:
+
string(0..255) bytes;
+
o Stdio.* Stdio.cp can now work recursively in a directory tree. Stdio.cp now keeps permissions when copying. Added Stdio.recursive_mv which works on every OS and also when the destination isn't on the same filesystem as the source.
-
+
o Prepared for having multiple different active backend implementations.
+
...
+
The global variable next_timeout is no more. It has been replaced by
+
a backend-specific variable. Added backend_lower_timeout() for accessing
+
the new variable. This fixes issues GTK, GTK2 and sendfile had with the
+
new backend implementation.
+
+
NOTE!
+
NOTE! Changed the argument for backend callbacks!
+
NOTE!
+
NOTE! The argument is now a struct Backend_struct * when called at entry (was NULL).
+
NOTE! The argument is now NULL when called at exit (was 1).
+
NOTE!
+
o Process.popen Process.popen is now able to run in nonblocking mode. If a second argument is provided a file object will be opened with that mode
53:
o bin/precompile.pike Voidable pointer types are no longer promoted to mixed.
+
o cpp
+
The preprocessor now supports macro expansion in the #include and #string
+
directives.
+
o PIKE_PORTABLE_BYTECODE --with-portable-bytecode is now the default. Pike programs that have been dumped on one architecture now can be decoded on another.
69:
DESCTRUCT_EXPLICIT, DESTRUCT_NO_REFS, DESTRUCT_GC and DESTRUCT_CLEANUP.
+
o Support for class symbols with storage in parent scope.
+
Also added support for aliased symbols.
+
+
o Improved support for mixin.
+
The Pike compiler now supports mixin for symbols that have been
+
declared static.
+
+
o Implicit and explicit create().
+
The compiler now supports defining classes with both an implicit
+
and an explicit create().
+
+
o Warnings for unused private symbols.
+
The compiler now checks that all symbols that have been declared
+
private actually are used.
+
o Unicode Case information and the Unicode module are updated to Unicode 5.0.0.
111:
fixed hour formatting for format_smtp() Time: * and / now handle floats. split implemented. how_many() now returns the correct value. was off by one.
+
Updated timezone information.
o Crypto.Random Now thread safe.
141:
inf + operations o Locale.Charset
+
Remapped and documented the use of the private character space.
+
ISO-IR non-spacers are now converted into combiners.
+
Added some support for pluggable character sets.
Added GB18030/GBK UTF-EBCDIC unicode prefix, e.g. unicode-1-1-utf-7 CP949 GBK (cp936)
-
+
DIN-31624 (ISO-IR-38)
+
ISO-5426:1980 (ISO-IR-53)
+
ISO-6438:1996 (ISO-IR-39, ISO-IR-216)
+
ISO-6937:2001 (ISO-IR-156)
o MIME Fix for casting MIME.Message objects to strings Added remapping variants of the encode words functions.
-
+
o Odbc
+
Now supports UnixODBC properly.
+
Fixed various issues with Unicode.
+
o Parser.Pike Now uses parser written in C. Fixed parsing of #string
180:
Extended system() to pass args to spawn() New popen implementation.
+
o protected
+
The modifier protected is now an alias for the modifier static.
+
o Protocols.DNS
-
+
Added support for NAPTR (RFC 3403) records.
Fix for TTL parsing in SRV records. gethostbyname() now returns IPv6 addresses too, if available. Improved support for T_TXT.
207:
o Protocols.HTTP http_encode_string() now know how to encode UCS-2 characters.
+
o sprintf
+
sprintf() now attempts to lookup the name of the program when
+
formatting types of objects and programs.
+
PROTOCOLS NOT DONE o ADT.Table
219:
o ADT.List
+
o ADT.Trie
+
o ADT.Set ADT.Set implements a datatype for sets. These sets behave much like multisets, except that they are restricted to containing only