pike.git / CHANGES

version» Context lines:

pike.git/CHANGES:1:   Changes since Pike 7.6:   ----------------------------------------------------------------------    - o Added ABI selection. + This is a high level list of changes between Pike 7.6 and Pike 7.8. + General bug fixes, build fixes and optimizations are not mentioned + here. For a complete list of changes, please consult the CVS changelog + either directly or through Code Librarian.    -  It's now possible to select whether to compile in 32bit or 64bit -  mode at configure time by using the --with-abi option. +     -  + New / improved language functionality + ------------------------------------- +    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 Improved support for embedding. -  -  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 Major compiler API cleanups. -  -  The Pike compiler is now executing in a pike function context -  (rather than in an efun context), and it is possible to customize -  some of its behaviour via inherit (rather than via handler objects). -  As a consequence the compiler is now much closer to being thread-safe. -  +    o New `[..] operator function.       Range operations have been separated from the `[] operator function    and are now handled by the new `[..] which provides greater control    for how the range bounds are specified. For compatibility, if there    is no `[..] then `[] is still called for range operations.       FIXME: Describe relation with Pike.INDEX_FROM_BEG/END & OPEN_BOUND.      o Generalized this and this_program.
pike.git/CHANGES:83:       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(). +  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.      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. It will -  also keep the permissions of files it copies. -  -  - Added Stdio.recursive_mv which works on every OS and also when the -  destination isn't on the same filesystem as the source. -  -  - Added more symbolc default termcap/terminfo bindings to -  Stdio.Readline. -  -  - Improved support for Terminfo on NetBSD. -  -  - read_file(), read_bytes(), write_file() and append_file() will may -  now throw exceptions on uncommon errors such as when write_file is -  unable to write all its data. -  -  - Stdio.File->openat() opens a file relative to an open directory. -  +    o Support for having multiple different active backend implementations.    FIXME: example? -  ... -  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! C-API incompatibility! -  NOTE! -  NOTE! Changed the argument for backend callbacks! -  NOTE! -  NOTE! The argument is now a struct Backend_struct * when called -  NOTE! at entry (was NULL). -  NOTE! The argument is now NULL when called at exit (was 1). -  NOTE! -  - 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 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().   
pike.git/CHANGES:189:      o Warnings for unused local variables.       The compiler now checks that all local variables are used.      o Unicode       Case information and the Unicode module are updated to Unicode    5.1.0.    - o protected + o The keyword protected       The modifier protected is now an alias for the modifier static.    NOTE: In next release static will be deprecated.    - o Pike_fp->context -  -  Pike_fp->context is now a pointer to the current struct inherit -  rather than a copy of it. This allows for easier access to -  inherited symbols in C-code. -  -  NOTE! -  NOTE! C-API incompatibility! -  NOTE! -  - o Inherit level argument added to several object handling functions. -  -  In order to implement subtyping of objects, an extra argument -  "inherit_level" has been added to many object indexing related -  functions. -  -  NOTE! -  NOTE! C-API incompatibility! -  NOTE! -  - Extensions and New Functions -  +    o __attribute__ and __deprecated__       It's now possible to set custom attributes on types. This is    currently used to improve the argument checking for sprintf()    and related functions, and for marking symbols as deprecated.    eg:       __deprecated__ mixed obsolete_function();    __deprecated__(mixed) obsolete_return_value();    mixed fun(__deprecated__(mixed) obsolete_arg);
pike.git/CHANGES:251:       Warnings for use of deprecated symbols can be turned off for a    segment of code with       #pragma no_deprecation_warnings       and turned on again with       #pragma deprecation_warnings    +  + Extensions and New Functions + ---------------------------- +    o limit()       The new toplevel function limit(a, x, b) is a convenience function    that works like min(max(a,x),b).      o sprintf() and sscanf()       The format string for sprintf() and sscanf() et al is now    syntax checked at compile-time, and the arguments after it    are matched against it.
pike.git/CHANGES:732:    - Added support for UUID version 5; name based with SHA hash, which    can be generated from the make_version5 function.       - An UUID object can now be used as namespace in the second argument    to make_version3 as well as the new make_version5.      o Standards.XML.Wix       FIXME    + o Stdio +  +  - Stdio.cp can now work recursively in a directory tree. It will +  also keep the permissions of files it copies. +  +  - Added Stdio.recursive_mv which works on every OS and also when the +  destination isn't on the same filesystem as the source. +  +  - Added more symbolc default termcap/terminfo bindings to +  Stdio.Readline. +  +  - Improved support for Terminfo on NetBSD. +  +  - read_file(), read_bytes(), write_file() and append_file() will may +  now throw exceptions on uncommon errors such as when write_file is +  unable to write all its data. +  +  - Stdio.File->openat() opens a file relative to an open directory. +    o String       - The function int2size has been rewritten to fixpoint as well as    using the more common abbreviation of "B" for byte.       - String.secure marks a string as "secure" which currently only    means that the memory is cleared before it is freed.      o System   
pike.git/CHANGES:805:       Added support for POSIX style timers using clock_gettime(3). Notably    this fixes nice high resolution thread local cpu time and monotonic    real time on reasonably modern Linux systems.       There are new constants CPU_TIME_* and REAL_TIME_* in the System    module to allow pike code to query various properties of the CPU and    real time clocks in use.       - New Modules + New modules / classes / methods added + -------------------------------------      o Fuse       FUSE (Filesystem in USErspace) provides a simple interface for    userspace programs to export a virtual filesystem to the Linux    kernel (and some other OS:es). FUSE also aims to provide a secure    method for non privileged users to create and mount their own    filesystem implementations.       This module implements the needed interfaces to make it possible to
pike.git/CHANGES:865:       A more simplistic interface is also available for smaller hacks and    programs.       void main(int argc, array(string) argv)    {    mapping opts = Arg.parse(argv);    argv = opts[Arg.REST];    }    - o Fuse -  -  FIXME -  +    o GTK2       FIXME      o Kerberos       FIXME      o Protocols.DNS_SD   
pike.git/CHANGES:930:    task; to remove XML tags from a string.      o Web.CGI       Provides a CGI interface on the callee side. Retrieves information    from environment variables and populates the variables in the    Request object.         Deprecations + ------------      o The keyword nomask has been deprecated. It was functionally    equivivalent with the keyword final.      o Stdio.File->set_peek_file_before_read_callback() is deprecated.    -  +    Incompatible changes -  + --------------------       These incompatible changes can be solved by adding #pike 7.6 to your    source file or starting Pike with -V7.6.      o Array.transpose_old       This function has been removed.      o _Charset   
pike.git/CHANGES:1006:       The functions read_file(), read_bytes(), write_file() and    append_file() now always throw errors on error conditions,    to allow easier use as errno doesn't have to be checked.    read_file() and read_bytes() still return 0 if the file    does not exist.      o The modules Mird, Perl and Ssleay have been removed.       + C level module API + ------------------ +  + o Improved support for embedding. +  +  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 Major compiler API cleanups. +  +  The Pike compiler is now executing in a pike function context +  (rather than in an efun context), and it is possible to customize +  some of its behaviour via inherit (rather than via handler objects). +  As a consequence the compiler is now much closer to being thread-safe. +  + o 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! C-API incompatibility! +  NOTE! +  NOTE! Changed the argument for backend callbacks! +  NOTE! +  NOTE! The argument is now a struct Backend_struct * when called +  NOTE! at entry (was NULL). +  NOTE! The argument is now NULL when called at exit (was 1). +  NOTE! +  + o Pike_fp->context +  +  Pike_fp->context is now a pointer to the current struct inherit +  rather than a copy of it. This allows for easier access to +  inherited symbols in C-code. +  +  NOTE! +  NOTE! C-API incompatibility! +  NOTE! +  + o Inherit level argument added to several object handling functions. +  +  In order to implement subtyping of objects, an extra argument +  "inherit_level" has been added to many object indexing related +  functions. +  +  NOTE! +  NOTE! C-API incompatibility! +  NOTE! +  + o bin/precompile.pike +  +  Voidable pointer types are no longer promoted to mixed. +  + o Support for class symbols with storage in parent scope. +  Also added support for aliased symbols. +  +  + Building and installin + ---------------------- +  + 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 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. +  +    New simplified method to write external C/C++ modules -  + -----------------------------------------------------       It's now suggested that you do not use the fairly complex 'pike    internal' style of external modules (configure.in with    AC_MODULE_INIT etc).       It's also no longer required that you have a configure script to use    pike -x module.       Instead simply locate the includefiles using 'pike -x cflags', and    convert .cmod to .c files using 'pike -x precompile'.
pike.git/CHANGES:1112:      env argument to main()      c-api: Added %c and %C to get_all_args to get char * with/without   NULL. (%c is an alias for %s but %C is new.)      extern variables.      7.4::blaha    - now supports micin for static symbols. -  +    Inherit::this and Inherit::this_program now works.