pike.git / CHANGES

version» Context lines:

pike.git/CHANGES: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    element in an array: a[..<1].      o Several declarations and definitions (most notably the debug and    runtime flags) have moved from main.h to pike_embed.h, in an attempt    to add support for embedding.      o New `[..] operator function.
pike.git/CHANGES:24:    }    class B {    inherit A;    int b;    void foo() { werror("B\n"); }    A::this_program get_a() { return A::this; }    }    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    and character literals and in the preprocessor. The latter means    that unicode escapes can be used in identifiers, which is useful if    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    and return, enabling two way communication with the new process.      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.      o Math.Matrix    Multiplication were bugged and gave B*A instead of A*B. Now fixed.      o Destruct reason passed to lfun::destroy.    lfun::destroy now receives an integer flag that tells why the object    is being destructed, e.g. if it was an explicit call to destroy(),    running out of references, or reaped by the garbage collector.       These integers are defined in the new Object module as    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.         Extensions and New Functions      o ADT.BitBuffer    read() added. Bugfixes.   
pike.git/CHANGES:104:    Data.recursive_low_size() now supports floats.    thread fixes      o Calendar    Fixed bugs in discordian. year off by 1166 and now 5 month per year.    Islamic days start at sunset    New national day    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.      o Debug    count_objects() added.      o Filesystem    ignore_error added to traverse   
pike.git/CHANGES:134:   o Image.Dims    supports TIFF      o _Image ?    Added support for DOS EPS      o Int    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      o Parser.RCS    Handle broken RCS files better.      o Parser.XML.Tree    Added rendering of DTD ENTITY nodes.    The renderer now knows about the internal_subset attribute for the
pike.git/CHANGES:173:   o Pike    get_runtime_info()    Encoder, Decoder, Codec      o Process    run()    spawn_pike()    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.      o Protocols.Bittorrent    Support for gzipped and compact tracker responses.    30% faster hashing of files.      o Protocols.HTTP.Query   
pike.git/CHANGES:200:    Addedunicode_data()       Keep alive fixes.      o Protocols.HTTP.Session    Now possible to manually set content type.      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    Fixed sorting of columns typed num.      o Calendar.Badi    Support for the Badi calendar used in the Baha'i religion.      New Modules      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    one instance of each member value.       From a performance viewpoint, it is probably more efficient for a    Pike program to use mappings to serve as sets, rather than using an    ADT.Set,so ADT.Set is mainly provided for the sake of completeness    and code readability.