pike.git / CHANGES

version» Context lines:

pike.git/CHANGES:1: - Pike 8: Changes since Pike 7.8 (scratch area for future release notes) + Pike 8: Changes since Pike 7.8   ----------------------------------------------------------------------      New language features   ---------------------      o Added a way to access the local, and not the overloaded,    implementation of a symbol.       As an example, given the classes:    | class Test
pike.git/CHANGES:121:    The main use is 'deep indexing' where some elements can be 0:       | request_id?->user?->misc?->x       vs       | request_id && request_id->user && request_id->user->misc    | && request_id->user->misc->x      o Added the '?:' operator for compatibility with other C-like -  languages. It is identical to '||' in pike. +  languages. It is identical to '||' in Pike.      o The && operator changed, when doing A && B, and A is false, keep A    instead of returning 0.       This is especially useful then A is not actually 0, but an object    that evaluates to false, or UNDEFINED.      o Fixed symbol resolution with deep inherits and mixins.      o Added multi-character character constants.
pike.git/CHANGES:289:    simplifies the code.      o Significantly changed x86-32 and an entirely new AMD64/x86-64    machine-code compilation backend       The main feature with the x86-32 edition is that it is now using    normal function call mechanics, which means that it now works with    modern GCC:s.       The x86-64 backends has been rewritten so that it is easier to add -  new instructions (x86-64) and opcodes (pike) to it, and it is +  new instructions (x86-64) and opcodes (Pike) to it, and it is    significantly more complete than the x86-32 one.      o Svalue type renumbering       PIKE_T_INT is now type #0, which makes certain things significantly    faster.       As an example, clearing of object variables is now done    automatically when the object is created since all object memory is    set to 0.
pike.git/CHANGES:413:      Removed features and modules   ----------------------------      o Removed facets       The optional (and not enabled by default) support for facet classes    has been removed, since it was only partially done and not really    used.    - o It is no longer possible to compile pike without libgmp. + o It is no longer possible to compile Pike without libgmp.       Bignums are now a required language feature      o The old low-level 'files' module has been renamed to _Stdio      o 'GTK' is now GTK2, not GTK1 unless the system has no GTK2 support.      o Locale.Charset       The charset module is now available on the top level as 'Charset'      o The ancient syntax for arrays (string * was an alias for    array(string)) has now been removed completely.    - o Compatibility for pike versions before 7.6 is no longer available. + o Compatibility for Pike versions before 7.6 is no longer available.      o decode_value can no longer decode programs using the 'old style'    program encoding.       Since the format has been deprecated since feb 2003, and those    programs could not be decoded anyway due to other issues it is not    much of a loss.         New modules
pike.git/CHANGES:454:    period of time. The definition of 'hung' is: Has not used the    default backend.       To use it simply keep an instance of the watchdog around in your    application:       | Pike.Watchdog x = Pike.Watchdog( 5 ); // max 5s blocking       An important and useful side-effect of this class is that the    process will start to respond to kill -QUIT by printing a lot of -  debug information to stderr, including memory usage, and if pike is +  debug information to stderr, including memory usage, and if Pike is    compiled with profiling, the CPU used since the last time kill -QUIT    was called.      o Crypto.Password       A module that can be used to verify and create passwd/ldap style    password hashes.       It tries to support most common password hashing schemes.      o Debug.Profiling       Tools useful for collecting and format for output the profiling -  information generated when pike is compiled --with-profiling. +  information generated when Pike is compiled --with-profiling.      o NetUtils       This module contains a lot of functions useful for the storage and    processing of network addresses, it supports IPv4 and IPv6.      o Added ADT.CritBit module       Mapping-like key-sorted data structures for string, int and    float-keys (ADT.CritBit.Tree, ADT.CritBit.IntTree,
pike.git/CHANGES:537:       This class provides some abstractions on top of an SQL table.       At the core it is generic and could work with any SQL database, but    the current implementation is MySQL specific on some points, notably    the semantics of AUTO_INCREMENT, the quoting method, knowledge about    column types, and some conversion functions. Hence the location in    the Mysql module.       Among other things, this class handles some convenient conversions -  between SQL and pike data types +  between SQL and Pike data types      o Parser.CSV       This is a parser for line oriented data that is either comma,    semi-colon or tab separated. It extends the functionality of the    Parser.Tabular with some specific functionality related to a header    and record oriented parsing of huge datasets.      o ZXID   
pike.git/CHANGES:568:      o Val       This module contains special values used by various modules, e.g. a    Val.null value used both by Sql and Standards.JSON.       In many ways these values should be considered constant, but it is    possible for a program to replace them with extended versions,    provided they don't break the behavior of the base classes defined    here. Since there is no good mechanism to handle such extending in -  several steps, pike libraries should preferably ensure that the base +  several steps, Pike libraries should preferably ensure that the base    classes defined here provide required functionality directly.      o __builtin       The __builtin module is now a directory module, so that it can    provide a suitable namespace for code written in Pike intended for    being inherited from modules written in C (cf precompile).         Extensions and new functions
pike.git/CHANGES:624:      o String.range(str)       This returns the minimum and maximum character value in the string.       The precision is only 8 bits, so for wide strings only character    blocks are known.      o String.filter_non_unicode(str)    -  This function replaces all non-unicode characters in a pike string +  This function replaces all non-unicode characters in a Pike string    with 0xfffd.      o SDL.Music added to SDL.       Allows the playback of audio/music files.    Requires the SDL_mixed library.      o System.TM       Low-level wrapper for struct tm.
pike.git/CHANGES:654:      o Process.daemon       The daemon() function is for programs wishing to detach themselves    from the controlling terminal and run in the background as system    daemons.      o Debug.pp_object_usage()       Pretty-print debug information, useful to get debug information -  about object counts and memory usage in pike applications. +  about object counts and memory usage in Pike applications.       Uses the new _object_size lfun, if present in objects, to account    for RAM-usage in C-objects that allocate their own memory.      o Mysql       + Added support more modern client libraries (incl. MariaDB)       + Mysql.mysql now has methods to query the id or SQLSTATE of the    last error.
pike.git/CHANGES:686:   o Thread no longer inherits Thread.Thread (aka thread_create)      o Thread.Farm now might work      o Cmod precompiler:       + You can now use #cmod_{define,if,ifdef,include} etc to do    preprocessing using CPP before the .cmod file is processed by the    precompiler.    -  This preprocessing is done with the pike precompiler, while the +  This preprocessing is done with the Pike precompiler, while the    C-compiler preprocessor will then be used on the generated file    (like before)       + inherit "identifier"    -- inherit the program returned by calling master()->resolve() on -  the specified identifier. Useful to inherit code written in pike. +  the specified identifier. Useful to inherit code written in Pike.       + Object types on return and argument types are now resolved    dynamically when needed.       This means that the typing information is sifnificantly more    strict.       If you use classes that are not defined in the file (or    src/program_id.h) they will be resolved when your .so-file is    loaded.
pike.git/CHANGES:855:       + Output format changed       + Also added support for JSON output.       + The results should be more consistent.       + Added options to allow comparison with a previous run.      o New stand-alone tools added to make it possible to build -  documentation without the pike build tree +  documentation without the Pike build tree       + autodoc_to_html    AutoDoc XML to HTML converter.       + autodoc_to_split_html    AutoDoc XML to splitted HTML converter.       + git_export_autodoc    Exports a stream of autodoc.xml suitable for git-fast-import.    Used on pike-librarian.
pike.git/CHANGES:912:      o System.get_home + System.get_user       (mostly) Cross-platform ways to get the user name and home    directory.      o System.AllocConsole, System.FreeConsole and System.AttachConsole for    Windows NT       These are useful to create or close the console window that is shown -  for pike programs. +  for Pike programs.      o Process - forkd       Forkd can be used to more cheaply create new processes on UNIX like    systems.       This is done by first starting a sub-process that is then used to    create new processes.       If your main process is large, this is significantly faster than    using the normal create_process, and does not risk running out of    memory for the forked (temporary) copy of the main process that is    created.      o MacOSX CoreFoundation support in the backend       This makes it somewhat more likely that native libraries can work -  with pike. +  with Pike.      o Better IPv6 support.       This includes detection of IPV6 mapped IPV4 addresses    (::FFFF:i.p.v.4) and full support for IPv6 in the UDP code.      o Asynchronous Protocols.SNMP client      o Fixes to Process.run, Process.spawn_pike and friends.       + Support OS/2 path conventions       + Fixed multiple issues with search_path()/locate_binary()    - locate_binary() is now more reliable on Windows    - Now invalidates the cached path is PATH is changed    - Uses locate_binary to scan the path    - spawn_pike() now uses search_path()       + You can now optionally have System.spawn_pike pass predefines, -  program and include path to the spawned pike, in addition to the +  program and include path to the spawned Pike, in addition to the    module path.      o Lots of autodoc fixes       A lot more of the previously existing, but broken, documentation is    now readable.      o predef::types       This is equivalent to values and indices, but instead gives the
pike.git/CHANGES:1319:   -----------------------      o -fvisibility=hidden is now the default       This means that PMOD_EXPORT is now actually needed on systems like    Linux and MacOSX. It also means that the binary is slightly smaller    and faster.      o clang compilation fixes (bignum overflow checks, misc)    -  It is now possible to compile pike using a modern clang compiler. +  It is now possible to compile Pike using a modern clang compiler.      o Removed bundles       Pike no longer comes with copies of some libraries, and the support    for that in the makefile has been removed.      o Several OS/2 and windows compilation fixes      o C89 assumed