pike.git
/
CHANGES
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/CHANGES:63:
The Pike debugger unbug has been significtly optimized. o Module system. Both dynamic and static modules appears as objects and they both support having an identifier _module_value, which will then be what is presented by the resolver as the module. _module_value can be a constant, thus preventing the program from being automatically cloned.
-
Master
:
-
-------
+
The Pike master
:
+
-------
---------
o The new option --dumpversion prints out the Pike version in a more easily pared way than --version. o The master now supplies argv to the started application, so it can use the create method for execution. Some people find it a more elegant solution than having a main function. o The -e Pike environment has been improved with a lot of convenience wrappings. When compiling code with pike -e the macro NOT(X) will expand to !(X) and CHAR(X) to 'X', making it easier to solve quote problems from a shell. If the return from a pike -e statement is a positive integer it will be used as pikes exit code. If the return value is a string it will be outputed, with a "\n" added, if it lacked one. Finally there is a predefined variable env that contains the environment variables as a string:string mapping.
-
+
Building and installing pike: -----------------------------
-
o bundles
-
o no tpike
-
o installs documentation (_nodoc)
+
-
+
o To simplify the process of building Pike source distributions it is
+
now possible to bundle less common libraries such as Nettle with
+
Pike. The bundle, found in the bundle directory, will be compiled
+
and statically linked if the no matching library is found on the
+
system.
-
+
o The Pike build process no longer builds a bootstrap pike, used to
+
run various small programs to generate source files. This means that
+
in order to build Pike from CVS you need the latest major version of
+
Pike installed on your system. Pike source distributions contains
+
the generated files and is not affected (except it compiles in less
+
time).
+
+
o By default pike want you to build a documentation source file, i.e.
+
"make && make doc && make install". This makes it possible for third
+
party modules to integrate its documentation into the system Pike
+
documentation. If you do not want to build a documentation source
+
file, use "make install_nodoc" instead of "make install".
+
+
Language additions: ------------------- Changes and additions to -x utilities: -------------------------------------- o rsif rsif can now work recursively in a file structure if given the flag -r or --recursive. Example: pike -x rsif -r 7.4 7.6
pike.git/CHANGES:285:
void draw_frame() { call_out(draw_frame, 0.02); // 1/(50 fps) do_gl_code(); GLUE.swap_buffers(); } o _ADT o Geography RT38
+
o Int
-
+
The Int module contains a few functions and constants that deals
+
specifically with the integer data type. Currently it contains
+
parity and byte swapping functions and constants for the system
+
maxint and minint.
+
o Pike.Security
-
+
Functions and classes that deals with the Pike security system
+
(requires Pike to be compiled with --with-security to be present)
+
are stored in this module. Beware that the Pike security system is
+
still very experimental.
o Protocols.HTTP.Session Handles an HTTP connection as a session, with cookies, redirects, HTTP keep-alive etc. o Bz2 Support for the compression format used by the bzip2 program. The
-
module interface is identical with the Gz module.
+
module interface is
almost
identical with the Gz module
, so
+
changing between Bz2 and Gz is just a matter of a few characters
+
difference
.
o Process.Process
-
+
The Process.Process class is extended to handle a time out
+
callback and a read callback, to better manage processes in an
+
asunchronous way.
+
o Error
-
+
The beginning of the Pike exception hiearchy. Even though it is
+
work in progress, it is already usable.
+
+
> mixed err = catch( 1/0 );
+
> err;
+
(1) Result: Error.Math("Division by zero.\n")
+
> object_program(err)==Error.Math;
+
(2) Result: 1
+
o Float
-
+
Here constants and functions that deals specifically with the
+
float data type is stored. Currently contains only various
+
constants that describe the precision and limitations of the float
+
type Pike is compiled with.
+
o Protocols.Bittorrent o Protocols.LMTP/Protocols.SMTP Protocols.LMTP Implements a server for the Local Mail Transfer Protocol, LMTP, as specified in RFC2033. This module has been well tested against Postfix clients. Protocols.LMTP is based on a new server implementation in Protocols.SMTP. o Protocols.OBEX An implementation of the IrDA(R) Object Exchange Protocol. OBEX is
pike.git/CHANGES:339:
foreach(owlset->find_statements(0, owlset->rdf_type, owlset->owl_Class); array statement) write("- %O\n", statement[0]); return 0; }
+
o Array
+
The Array module has been extended with Array.all and Array.any
+
which determines if all or any of the elements in an array meets a
+
given condition. Also the function Array.partition has been added,
+
which divides the elements of an array into two arrays, selected
+
by a given condition.
-
o
Parser
.
RCS
+
o
Function
+
The Function module has been extended with the fixpoint combinator
+
"Y", useful when writing recursive lambdas, a curry function, to
+
partially evaluate a function call, and a callback caller function
+
that protects the caller from exceptions in the callback function
.
-
o Array.any
-
o Array.all
-
o Array.partition
-
o Function.call_callback
-
o Function.Y
-
o Function.curry
-
+
o Thread Thread.Fifo and Thread.Queue has been extended with try_* varieties of all functions that can block and with functions that makes them both implement the same interface. Both also have fallbacks for running in nonthreaded mode. o Filesystem.Traversion
-
+
The Filesystem.Traversion iterator is a handy way to descend into a directory structure (depth first) and perform actions on all or some of the files. Example: foreach(Filesystem.Traversion("."); string dir; string file) if(file[-1]=='~' || file=="core") rm(dir+file); o Calendar module
pike.git/CHANGES:384:
o SSL o Sql.Provider o EXIF The EXIF module is now much more robust than before and can handle some of the erroneous EXIF tags some cameras procduce. Extended support for Nikon cameras. o Standards.IDNA
+
This module implements various algorithms specified by the
+
Internationalizing Domain Names in Applications (IDNA) memo by the
+
Internet Engineering Task Force (IETF), RFC 3490.
-
+
Optimizations: -------------- o Instantiation and destruction of pike-classes is now significantly faster. o Handling of bignums has been optimized, especially conversion to/from normal integers. o String case conversion is now five times faster than before on average.