ffd9ed2002-12-05Martin Nilsson Changes since Pike 7.4:
6bf19a2002-09-15Peter Bortas ----------------------------------------------------------------------
cd683a2001-07-27Johan Sundström 
bf7e8e2002-09-26Martin Nilsson New/improved functionality: ---------------------------
cd683a2001-07-27Johan Sundström 
670abd2003-01-12Martin Stjernholm o The automatic garbage collection strategy is configurable The garbage collector can be configured to take both the amount of
60a3942003-04-28Martin Stjernholm  garbage and the cpu time spent in the gc into account. Automatic gc runs can also be disabled in critical regions. See the function Pike.gc_parameters. o sort() is stable Unlike previous releases, sort() will keep the original order between elements that are equal. This was not implemented as a separate function since it could be done with virtually no extra overhead.
670abd2003-01-12Martin Stjernholm 
a594a12003-07-23Martin Nilsson o sort() is portable Sort is now locale and platform independent. In other words, strings are now compared only according to the unicode value of every character. o Reworked codec The codec for serialization of Pike data types has been updated and has a significally improved successrate at encoding modules.
8d23b02003-09-30Martin Nilsson o Less magic hacks
a6a1f12003-09-30Johan Sundström  Several Pike modules have been cleaned up from old hacks and workarounds for problems which now have proper solutions. This should improve size, performance, dumpability and readability of the affected code. In addition lots of internal types in Pike have been tightened up and several more files now use the pragma strict_types, which has resulted in some additional bugfixes.
8d23b02003-09-30Martin Nilsson  o INT64
0876ef2004-02-19Martin Nilsson  On 64 bit architechtures Pike will now use full 64 bits integer before resorting to Gmp.mpz objects for large numbers. o IPv6
8d23b02003-09-30Martin Nilsson 
582dd62004-04-25Martin Nilsson o mysqls The Mysql glue can operate over SSL. Use the "mysqls://" protocol in the Sql.Sql module to use this secuity feature. o trace() can trace all threads The configure option --without-thread-trace has been removed, but instead the trace() function has been extended to make it possible to set the trace level in all threads simultaneously.
29147c2002-10-31Martin Nilsson 
deeeee2004-04-20Martin Nilsson Build baluns: ------------- bundles
bf7e8e2002-09-26Martin Nilsson Language additions: -------------------
6bf19a2002-09-15Peter Bortas 
582dd62004-04-25Martin Nilsson 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 o benchmark A set of benchmarks is available in the benchmark tool. They are based on the Great Computer Language Shootout, but has been modified to make more sense in the context of Pike and to test various aspects of Pike we suspect (or at least at one time suspected) performs badly. o cgrep Context sensitive grep is very helpful when you are looking for substrings that are common. The implemented search modes are: o Complete token o Part of a token o Complete string literal o Part of a string literal o Part of a comment Example: $ cd Pike/7.6/src $ grep or * | wc -l 18907 $ pike -x cgrep -T or * | wc -l 14 o dump Dumps Pike .pike and .pmod module files to precompiled .o files for shorter load times. Previously available as src/dumpmodule.pike in the Pike source tree, but moved into the Pike builtin tools to facilitate dumping of external modules. o extract_locale Locale extractor utility used to extract localizable strings from an application into an xml format, to later be used by the Locale module. o monger A new utility to download, install and otherwise manage external modules from the Fresh Pike project.
cd683a2001-07-27Johan Sundström 
8a6b142002-11-29Martin Nilsson New modules / classes / methods added: --------------------------------------
cd683a2001-07-27Johan Sundström 
8d23b02003-09-30Martin Nilsson o Regexp.PCRE added to give libpcre support.
0876ef2004-02-19Martin Nilsson  Are you a closet-perlet? For those who missed the richer flora of regexp syntax that Perl supports, the Perl Compatible Regular Expression module is the answer. If you compile libpcre with UTF-8 support you will also get transparent wide string support. Several convenience functions are also added to the Regexp module to enable easier access to regular expressions. o Crypto/Nettle The crypto module has been almost completely rewritten and now
412eb12004-04-20Martin Nilsson  uses libnettle as backend instead of the built in crypto algorithms that Pike had before. This way Pike will benefit from the more active development and optimization work in the Nettle project. The most common hash and cipher methods are already written in assembler for several platforms. As an example SHA1 is about 40% faster than before on Intel platforms. With the new nettle support comes support for two new cipher algorithms, Blowfish and Serpent, and the new NIST hash algorithm SHA256. Note that the new Crypto module has renamed its identifiers to be consistent with the rest of Pike, and in some cases to clarify or correct bad names. The old names still work, but produce a warning unless Pike is run in compatibility mode. Compatibility outside compatibility mode will be removed in the future. The interfaces for the hash and cipher algorithms has been improved and they no longer only conform to predefined interfaces, but actually inherits Hash/HashState and Cipher/CipherState. Every algorithm is in itself a module in the Crypto module, and inherits the Hash/Cipher class. This module contains instance non-specific methods such as digest_size or key_size. By calling the `() method in the module a HashState/CipherState object is returned, which is a hash/cipher instance which can be used for streaming operations. Examples: Crypto.MD5.hash("Hash this string"); Crypto.MD5()->update("Hash this ")->update("string")->digest();
6f68f42004-04-21Martin Nilsson  The confusing and hard to use Crypto.randomness has been obsoleted by the Nettle implementation of the Yarrow random generator. The Nettle implementation of Yarrow uses AES and SHA256. The Crypto.Random module acts as a frontend before system crypto sources and ensure that no matter how bad your OS is, you will still get cryptographically strong random data. o Crypto.PGP The start of a PGP/GPG toolkit. It still cannot handle all types of signatures nor generate any, but it is useful to verify selfsigned code and data.
8d23b02003-09-30Martin Nilsson 
deeeee2004-04-20Martin Nilsson 
8d23b02003-09-30Martin Nilsson o ADT.Struct
6f68f42004-04-21Martin Nilsson  This module makes it possible to work with binary formats of the packed-struct-type. Simply create a class and specify the members in order, create an object with a file object as argument and then read the decoded values from the object as ordinary variables. class ID3 { inherit ADT.Struct; Item head = Chars(3); Item title = Chars(30); Item artist = Chars(30); Item album = Chars(30); Item year = Chars(4); Item comment = Chars(30); Item genre = Byte(); } Stdio.File f = Stdio.File("foo.mp3"); f->seek(-128); ADT.Struct tag = ID3(f); if(tag->head=="TAG") { write("Title: %s\n", tag->title); tag->title = "A new title" + "\0"*19; f->seek(-128); f->write( (string)tag ); }
deeeee2004-04-20Martin Nilsson o ADT.BitBuffer
6f68f42004-04-21Martin Nilsson  When operating on data formats that are defined on bit level, the ADT.BitBuffer presents a convenient interface. It operates as a FIFO buffer on bit level, which allows you to read and write bits and bytes. > ADT.BitBuffer b=ADT.BitBuffer(); > b->put1(2); (1) Result: ADT.BitBuffer(11) > b->put0(15); (2) Result: ADT.BitBuffer("À\0"0) > b->drain(); (3) Result: "À\0" > sizeof(b); (4) Result: 1
8d23b02003-09-30Martin Nilsson o Debug.Wrapper
6f68f42004-04-21Martin Nilsson  A simple litte wrapper that can be placed around another object to get printouts about what is happening to it. Only a few LFUNs are currently supported. > object x=Debug.Wrapper(Crypto.MD5()); Debug.Wrapper is proxying ___Nettle.MD5_State() > x->name(); ___Nettle.MD5_State()->name (1) Result: "md5" > !x; !___Nettle.MD5_State() (2) Result: 0 o Image.NEO Support for one of the major image formats on Atari ST/STE, including decoding of color cycling. The C bitmap and palette handler can be used to implement other atari image formats.
582dd62004-04-25Martin Nilsson o GLUE The GL Universal Environment is a GL toolkit that makes implementing GL applications in Pike really simple. GLUE has several orthogonal components like object orientation encapsulation of Gl, drawing primitives, texture handling and text generation. The most fundamental part is however an abstract interface to a GL area driver, like GTK or SDL. int main() { GLUE.init(); draw_frame(); return -1; } void draw_frame() { call_out(draw_frame, 0.02); // 1/(50 fps) do_gl_code(); GLUE.swap_buffers(); }
6f68f42004-04-21Martin Nilsson  o _ADT
8d23b02003-09-30Martin Nilsson o Geography RT38 o Int o Pike.Security o Protocols.HTTP.Session o Bz2
820ec72004-02-03Martin Nilsson o Process.Process
deeeee2004-04-20Martin Nilsson o Error o Float o Protocols.Bittorrent o Protocols.LMTP o Web.RDF/RDFS/OWL/RSS o Parser.RCS
638b8d2002-09-22Martin Stjernholm 
cd683a2001-07-27Johan Sundström Optimizations: --------------
38a6742002-12-31Per Hedbor o Instantiation and destruction of pike-classes is now significantly faster.
770a0b2003-07-23Henrik Grubbström (Grubba) 
60a3942003-04-28Martin Stjernholm o Handling of bignums has been optimized, especially conversion to/from normal integers.
38a6742002-12-31Per Hedbor 
6f68f42004-04-21Martin Nilsson o String case conversion is now five times faster than before on average.
412eb12004-04-20Martin Nilsson 
6bf19a2002-09-15Peter Bortas  Compatibility changes: ----------------------
e2a7382002-11-24Peter Bortas Compatibility changes without backward compatibility: -----------------------------------------------------
deeeee2004-04-20Martin Nilsson o Module ABI changed The pike_frame struct has a new member, which makes modules compiled
6f68f42004-04-21Martin Nilsson  with earlier versions of Pike incompatible.
deeeee2004-04-20Martin Nilsson 
fc7f8d2002-11-24Martin Stjernholm 
bf7e8e2002-09-26Martin Nilsson C level/development changes: ----------------------------
deeeee2004-04-20Martin Nilsson o The security.h include file is renamed to pike_security.h
6bf19a2002-09-15Peter Bortas Bugs fixed: -----------
bf7e8e2002-09-26Martin Nilsson 
e2a7382002-11-24Peter Bortas Uncategorized misc changes: ---------------------------