pike.git / CHANGES

version» Context lines:

pike.git/CHANGES:15:    | }    |    | class Test2    | {    | int a() { return 42; }    | }       Both Test()->b() and Test2()->b() will return 1, but Test2()->a()    will return 42.    +  + o Added new syntax that can be used to return the current object as if +  it was a class it is inheriting +  +  The syntax is X::this, where X is the inherited class. +  +  The returned object will not include any symbols not available in +  the class X, but your overloaded methods (and other identifiers) +  will be the ones returned when the object is indexed. +    o Added a way to easily inherit the implementation of a subclass in an    inheriting class.       | inherit ::this_program       The syntax refers to the previous definition of the current class    in the inherited class, and is typically used with inherit like:       | inherit Foo;    |
pike.git/CHANGES:71:    | variant string getenv( string variable );    | variant mapping(string:string) getenv( );       which gives siginificantly better typechecking.      o The typechecker has been rewritten.       Mainly it is now much better at finding type errors, and most error    messages are more readable.    - o Allow '.' to be used as an index operator in the few places id did + o Allow '.' to be used as an index operator in the few places it did    not work before.      o "Safe" index    Copied from a popular extension to other C-like languages.       X[?ind] is equivalent to ((auto _ = X),(_ && _[ind]))    while X?->ind is equivalent to ((auto _ = X),(_ && _->ind))       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. +  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 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 inherited class. + New preprocessor features + -------------------------    - o Support for ", ##__VA_ARGS__" cpp feature. + o Support for the ", ##__VA_ARGS__" cpp feature. +  This makes the ‘##’ token paste operator have a special meaning +  when placed between a comma and a variable argument. If you write    - o The preprocessor can now be run with a cpp prefix feature. +  | #define err(format, ...) f(debug)werror("ERROR: "+format, ##__VA_ARGS__)    -  +  and the variable argument is left out when the err macro is used, +  then the comma before the ‘##’ will be deleted. This does not +  happen if you pass an empty argument, nor does it happen if the +  token preceding ‘##’ is anything other than a comma. +  + o The preprocessor can now be run with a cpp prefix feature.    This is currently used by the precompiler to avoid two levels of    preprocessing, one using "#cmod_" as the prefix and the other "#".      o Dynamic macros    You can now add programatic macros. There is currently no syntax    that can be used to define these while compiling code, but you can    add them from one program before compiling plugins/modules.       The main use is macros like DEBUG(...) and IFDEBUG() that would    expand to something if a debug setting is enabled in the module but
pike.git/CHANGES:388:         Extensions and new functions   ----------------------------   o Bz2.File added    It implements a Stdio.File like API, including support for the same    iterator API that Stdio.File has, allowing for convenient line    iterations over BZ2 compressed files.    | foreach( Bz2.File("log.bz2")->line_iterator(); int n; string line )    - o Image.JPEG.decode -  Now supports basic CMYK/YCCK support + o Image.JPEG +  + decode now supports basic CMYK/YCCK support +  + exif_decode is a new function that will rotate the image +  according to exif information    - o Image.JPEG.exif_decode -  Will rotate the image according to exif information -  +    o String.Buffer    String.Buffer can now add the storage from a different String.Buffer    object with the add() method.       It is possible to add sprintf-formatted data to a String.Buffer    object by claling the sprintf() method. This function works just as    the normal sprintf(), but writes to the buffer instead.       The new method addat() allows for writing into the buffer at any    position.
pike.git/CHANGES:488:    + added ipv6 multicast support    + added set_buffer      o Stdio.File():    + send_fd and receive_fd    These functions can be used to send and receive an open    filedescriptor over another filedescriptor. The functions are    only available on some systems, and they generally only work    when the file the descriptors are sent over is a unix domain    socket or a pipe. +     + Changed internally to remove one level of indirection.    The Stdio.File object no longer has a _Stdio.Fd_ref in _fd. They    are instead directly inheriting _Stdio.FD.       _fd is still available for compatibility, but internally it is gone.      o Unicode databases updated to 6.3.0 from 5.1.0    This is the latest released Unicode database from unicode.org.      o The Search search engine module has seen several fixes
pike.git/CHANGES:592:    + 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    module path.    - o lots of autodoc fixes - o predef::types (seems somewhat broken, or is it intended at types(({1,2,3})) returns ({ mixed,mixed,mixed})?) + 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 +  types for each value. +  +  Basically only useful for objects. +    o Builtin._get_setter    This function returns a setter for a variable in an object.    The setter, when called, will set the variable value to the passed    argument.      o Parser.XML.Tree fixes    + Several namespace improvement and handling fixes      o New charsets    A lot of ISO-IR charsets added:    9-1, 9-2, 31, 232, 234, 231 (aka ANSI/NISO Z39.46, aka ANSEL) 230    (aka TDS 565) 225 (SR 14111:1998), 197/209 (sami) 208 (IS 434:1997)    207 (IS 433:1996), 204,205 and 206 (aka 8859-1, 8859-4 and 8859-13    with euro) 201, 200, 138 (ECMA-121) 198 (ISO 8859-8:1999) 182, 181,    189 (TCVN 5712:1993, aka VSCII) 167, 166 (aka TIS 620-2533 (1990)),    164, 160, 151 (NC 99-10:81), 68 (APL), 59 (CODAR-U), 202 (KPS    9566-97). Fixed CSA_Z242.4 - o Fixes to the HTTP client in Protocols.HTTP. - o dtrace support (on macosX at least?) +     -  + o Several fixes to Protocols.HTTP +  + Improved Protocols.HTTP.Query.PseudoFile +  (significantly better Stdio.Stream simulation) +  + Do not use hardcoded Linux errno:s +  + Case insensitive handling of header overrides in do_method +  + Fixed broken check for URL passwords when querying +  + Add more descriptive HTTP responses along with a mostly complete +  list of codes +  + Handle non-standards compliant relative redirects +  + Cleaner handling of async DNS failures +  + Handle chunked transfer encoding correctly when doing async +  queries +  + Fixes for the proxy client support +  + Several keep-alive handling fixes +  + Server: +  - More forgiving MIME parsing for MSIE +  - Fixed range header handling +  - Fixed parsing of broken multipart/form-data data +  - Added optional error_callback to attach_fd +  - The response processor (response_and_finish) now treats the +  reply mapping as read-only. +  - Support if-none-match (etag:s) +  - Ignore errors in close when destroying the object    -  + o dtrace support (on macosX) +  Pike now supports dtrace events on function enter and leaving (and +  when stack frames are notionally popped, for functions doing +  tailrecursion). +    Crypto and SSL   --------------      o SNI client extension support for SSL (Server Name Indicator)      o Standards.PEM    + Added some support for encrypted PEM files      o Nettle refactored