pike.git / CHANGES

version» Context lines:

pike.git/CHANGES:86:       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, and this is not /really/ needed. + o Added the '?:' operator for compatibility with other C-like +  languages. It is identical to '||' in pike, and this is not /really/ +  needed.      o The && operator changed, when doing A && B, and A is false, keep A    instead of pushing 0.       This is especially useful then A is not actually 0, but an object    that evaluates to false, or UNDEFINED.      o Added new syntax that can be used to return an object as if it was a    class you are inheriting, X::this where X is the inheriting class.   
pike.git/CHANGES:138:    | "CODE":make_value_function(code),    | ]));    | });          That is, a macro that needs does some calculations, and rewrite the    code more than is possible in normal macros..       This one expands something along the lines of    -  | METRIC("requests", Summarize, PerSecond, floating_average_diff(requests)); +  | METRIC("requests", Summarize, PerSecond, +  | floating_average_diff(requests));       into       | class Metric_requests_01    | {    | inherit Server.Metric;    | constant name = "transcoder:requests";    | constant type = Float;    | constant format = PerSecond;    | constant aggregate = Summarize;    |    | float value() {    | return floating_average_diff(requests);    | }    | }       - --- optimizations + Optimizations + -------------      o New significantly faster block allocator    The free in the old one was O(n^2), which means that as an example    creating a lot of objects and then free:ing them mainly used CPU in    the block allocator.       This fix changed the ordo of one of the tests that did that very    thing (binarytrees) from O(n^2) to O(n), and as such is more than a    simple percentual speedup.   
pike.git/CHANGES:222:    + A lot of opcodes implemented in machinecode for x86-64    This speed up the loop benchmarks close to a factor of 3. But then    again, most real code is nothing like that benchmark.       + Several new opcodes added    As an example an observation was that most branch_if_zero is    followed by an is_eq, is_lt or is_gt or similar. Those opcodes    always return 1 or 0.       So, two new opcodes, fast_branch_if_zero and -  fast_branch_if_non_zero were added that map directly to three x86-64 -  opcodes, there is no need to check the types, do a real pop_stack -  etc. +  fast_branch_if_non_zero were added that map directly to three +  x86-64 opcodes, there is no need to check the types, do a real +  pop_stack etc.    - --- removed stuff +     -  + Removed stuff + ------------- +    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.    Bignums are now a required language feature      o The old 'files' module has been renamed to _Stdio      o 'GTK' is now GTK2, not GTK1 unless the system has no GTK2 support.    - --- deprecated stuff +     -  + Deprecations + ------------ +    o Locale.Charset    The charset module is now available on the toplevel as 'Charset'      o Tools.PEM and Tools.X409 deprecated    Use the corresponding modules in Standards.      o The built in sandbox is now deprecated    Unless somebody wants to take ownership of the feature and keep it    up to date the security system will be removed in the next stable    release.    - -- new modules +     -  + New modules + ----------- +    o Pike.Watchdog    A Watchdog that ensures that the process is not hung for an extended    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   
pike.git/CHANGES:289:   o Added ADT.CritBit module    Mapping-like key-sorted data structures for string, int and    float-keys (ADT.CritBit.Tree, ADT.CritBit.IntTree,    ADT.CritBit.FloatTree). Implemented in C.      o Standards.BSON    A new module for working with BSON serialized data.    See http://bsonspec.org/      o Geography.GeoIP -  Does geolocation of IPv4-numbers using databases from maxmind.com or -  software77.net +  Does geolocation of IPv4-numbers using databases from maxmind.com +  or software77.net      o Protocols.WebSocket    An implementation of the WebSocket (RFC 6455) standard, both server    and client      o Image.WebP    Encoder and decoder for the WEBP image format.    More information about the format can be found on    https://developers.google.com/speed/webp/      o Serializer -  APIs useful to simplify serialization and deserialization of objects -  Mainly it allows you to easily iterate over the object variables, -  including the private ones. +  APIs useful to simplify serialization and deserialization of +  objects Mainly it allows you to easily iterate over the object +  variables, including the private ones.       + Serializer.Encodable    A class that can be inherit to make an object easily serializable    using encode_value.      o Filesystem.Monitor and the lowlevel System.Inotify + System.FSEvents    Basic filesystem monitoring.       This module is intended to be used for incremental scanning of a    filesystem.
pike.git/CHANGES:346:    to a header and record oriented parsing of huge datasets.      o ZXID    ZXID is a library that implements SAML 2.0, Liberty ID-WSF 2.0    and XACML 2.0.       This module implements a wrapper for ZXID. The interface is similar    to the C one, but using generally accepted Pike syntax.      o Git -  A module for interacting with the Git distributed version control system. +  A module for interacting with the Git distributed version control +  system.      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
pike.git/CHANGES:435:      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 Crypto.PGP - support more hash functions.      o String.levenshtein_distance()    That function calculates the Levenshtein distance between two -  strings. The Levenshtein distance describes the minimum number of +  strings. The Levenshtein distance describes the minimum number of    edit operations insert, delete or substitue a character to get    from one string to the other.       The algorithm can be used in approximate string matching to find    matches for a short string in many longer texts, when a small    number of differences is expected.      o Unicode databases updated to 6.2.0      o Timezone databases updated to tzdata2013d
pike.git/CHANGES:532:      o Standards.JSON       New module for encoding and decoding JSON data. Implemented in C.      o Protocols.HTTP.Session will no longer override an existing    content-type header in async_do_method_url.      o Protocols.HTTP    -  Allow directly specifying the body of a POST request (needed for the Google -  Apps API). +  Allow directly specifying the body of a POST request (needed for the +  Google Apps API).      o Updated timezone data to tzdata2010o.      o String.normalize_space    -  New and efficient C implementation; sanitises whitespace, even in wide -  strings. +  New and efficient C implementation; sanitises whitespace, even in +  wide strings.      o String.trim_all_whites    -  Extended to the entire range of Unicode white spaces. (And is faster.) +  Extended to the entire range of Unicode white spaces. (And is +  faster.)      o Tools.PV and pike -x pv now work with GTK2 as well as GTK.      o Integer constants exported by modules can now be used in cpp expressions.      o Modules/programs that have the constant "dont_dump_program" will not    be dumped on installation. This is used to prevent dumping of    programs that check for external dependencies at compile time such    as the MySQL module.