pike.git
/
CHANGES
version
»
Context lines:
10
20
40
80
file
none
3
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