ffd9ed | 2002-12-05 | Martin Nilsson | | Changes since Pike 7.4:
|
6bf19a | 2002-09-15 | Peter Bortas | | ----------------------------------------------------------------------
|
cd683a | 2001-07-27 | Johan Sundström | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | New/improved functionality:
---------------------------
|
cd683a | 2001-07-27 | Johan Sundström | |
|
670abd | 2003-01-12 | Martin Stjernholm | | o The automatic garbage collection strategy is configurable
The garbage collector can be configured to take both the amount of
|
60a394 | 2003-04-28 | Martin 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.
|
670abd | 2003-01-12 | Martin Stjernholm | |
|
a594a1 | 2003-07-23 | Martin 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.
|
8d23b0 | 2003-09-30 | Martin Nilsson | | o Less magic hacks
|
a6a1f1 | 2003-09-30 | Johan 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.
|
8d23b0 | 2003-09-30 | Martin Nilsson | |
o INT64
|
0876ef | 2004-02-19 | Martin Nilsson | | On 64 bit architechtures Pike will now use full 64 bits integer
before resorting to Gmp.mpz objects for large numbers.
o IPv6
|
b15a16 | 2004-05-01 | Martin Nilsson | | Networking code in Pike has been updated to work with IPv6. This
includes both low level fixes in the socket handling as well as
high level changes such as IP parsing and protocol additions such
as AAAA records in Protocol.DNS.
|
8d23b0 | 2003-09-30 | Martin Nilsson | |
|
582dd6 | 2004-04-25 | Martin Nilsson | | o mysqls
The Mysql glue can operate over SSL. Use the "mysqls://" protocol
|
8d7bed | 2004-05-05 | Johan Sundström | | in the Sql.Sql module to use this security feature.
|
582dd6 | 2004-04-25 | Martin Nilsson | |
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.
|
841643 | 2004-05-01 | Martin Nilsson | | o --help
The Pike --help message has been improved and it is possible to
retrieve further information about options and environment
variables. In addition most of the tools and build scripts now
accepts --help and describes what they do and what options they
take.
o unbug
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.
|
c3371f | 2004-05-03 | Martin Nilsson | | o Unicode
Pike 7.6 uses the Unicode 4.0.1 tables for case info and
normalization.
o upper_case/lower_case
The built in functions upper_case and lower_case now also works on
single characters, represented as integers.
o hash
The string hash functions is now byte-order independent. The old
hash function is available as hash_7_4 or as hash when running in
7.4 compatibility mode or lower.
o #warning
A new The Pike preprocessor directive #warning has been added. It
|
8d7bed | 2004-05-05 | Johan Sundström | | simply writes the rest of the line to stderr.
|
c3371f | 2004-05-03 | Martin Nilsson | |
|
841643 | 2004-05-01 | Martin Nilsson | |
|
dfaa78 | 2004-05-02 | Martin Nilsson | | The Pike master:
----------------
|
841643 | 2004-05-01 | Martin Nilsson | |
o The new option --dumpversion prints out the Pike version in a more
|
8d7bed | 2004-05-05 | Johan Sundström | | easily parsed way than --version.
|
841643 | 2004-05-01 | Martin Nilsson | |
|
8d7bed | 2004-05-05 | Johan Sundström | | o The master now supplies argv to the started application's create()
callback, so it can be used for execution. Some people find it a
more elegant solution than having a main function.
|
841643 | 2004-05-01 | Martin Nilsson | |
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
|
8d7bed | 2004-05-05 | Johan Sundström | | value is a string it will be output, and with a trailing "\n", if it
|
841643 | 2004-05-01 | Martin Nilsson | | lacked one. Finally there is a predefined variable env that contains
the environment variables as a string:string mapping.
|
dfaa78 | 2004-05-02 | Martin Nilsson | |
|
841643 | 2004-05-01 | Martin Nilsson | | Building and installing pike:
-----------------------------
|
dfaa78 | 2004-05-02 | Martin Nilsson | |
o To simplify the process of building Pike source distributions it is
now possible to bundle less common libraries such as Nettle with
|
8d7bed | 2004-05-05 | Johan Sundström | | Pike. The bundles, found in the bundle/ directory, will be compiled
|
dfaa78 | 2004-05-02 | Martin Nilsson | | 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
|
8d7bed | 2004-05-05 | Johan Sundström | | Pike installed on your system. Pike source distributions will still
contain the generated files and are not affected (except they compile
in less time).
|
dfaa78 | 2004-05-02 | Martin Nilsson | |
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".
|
deeeee | 2004-04-20 | Martin Nilsson | |
|
582dd6 | 2004-04-25 | Martin 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
|
8d7bed | 2004-05-05 | Johan Sundström | | based on the Great Computer Language Shootout, but have been
|
582dd6 | 2004-04-25 | Martin Nilsson | | 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
|
8d7bed | 2004-05-05 | Johan Sundström | | suspected) perform badly.
|
582dd6 | 2004-04-25 | Martin Nilsson | |
o cgrep
|
8d7bed | 2004-05-05 | Johan Sundström | | Context sensitive grep (grepping through tokenized code, at
present handling Pike and C source files) is very helpful when
you are looking for substrings that are common. The implemented
search modes are:
|
582dd6 | 2004-04-25 | Martin Nilsson | | 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
|
8d7bed | 2004-05-05 | Johan Sundström | | modules from the Fresh Pike project (modules.gotpike.org).
|
582dd6 | 2004-04-25 | Martin Nilsson | |
|
cd683a | 2001-07-27 | Johan Sundström | |
|
8a6b14 | 2002-11-29 | Martin Nilsson | | New modules / classes / methods added:
--------------------------------------
|
cd683a | 2001-07-27 | Johan Sundström | |
|
8d23b0 | 2003-09-30 | Martin Nilsson | | o Regexp.PCRE added to give libpcre support.
|
0876ef | 2004-02-19 | Martin 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
|
412eb1 | 2004-04-20 | Martin 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.
|
aa1f34 | 2004-05-05 | Johan Sundström | | The interfaces for the hash and cipher algorithms have been
|
412eb1 | 2004-04-20 | Martin Nilsson | | 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();
|
6f68f4 | 2004-04-21 | Martin 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.
|
8d23b0 | 2003-09-30 | Martin Nilsson | |
|
deeeee | 2004-04-20 | Martin Nilsson | |
|
8d23b0 | 2003-09-30 | Martin Nilsson | | o ADT.Struct
|
6f68f4 | 2004-04-21 | Martin Nilsson | | This module makes it possible to work with binary formats of the
|
aa1f34 | 2004-05-05 | Johan Sundström | | packed-struct-type. Simply create a class inheriting ADT.Struct,
specify the members with type and size, in order, instantiate an
object with a file object as argument and then read the decoded
values from the object as ordinary variables.
|
6f68f4 | 2004-04-21 | Martin Nilsson | |
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 );
}
|
deeeee | 2004-04-20 | Martin Nilsson | | o ADT.BitBuffer
|
6f68f4 | 2004-04-21 | Martin 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
|
8d23b0 | 2003-09-30 | Martin Nilsson | | o Debug.Wrapper
|
6f68f4 | 2004-04-21 | Martin 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.
|
582dd6 | 2004-04-25 | Martin 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
|
aa1f34 | 2004-05-05 | Johan Sundström | | encapsulation of GL, drawing primitives, texture handling and text
|
582dd6 | 2004-04-25 | Martin Nilsson | | 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();
}
|
6f68f4 | 2004-04-21 | Martin Nilsson | |
|
addcdd | 2004-05-05 | Martin Nilsson | | o ADT.CircularList
|
aa1f34 | 2004-05-05 | Johan Sundström | | This is a circular list implemented as a C wrapper around an
|
addcdd | 2004-05-05 | Martin Nilsson | | array. It has a constant time complexity for pop and push. It has
|
aa1f34 | 2004-05-05 | Johan Sundström | | a limited max size but it can be increased manually by calling
|
addcdd | 2004-05-05 | Martin Nilsson | | allocate. It supports pushing, popping and peeking at both ends of
|
aa1f34 | 2004-05-05 | Johan Sundström | | the list, as well as removing and insering elements at any
position in the list.
|
addcdd | 2004-05-05 | Martin Nilsson | |
o ADT.Sequence
|
aa1f34 | 2004-05-05 | Johan Sundström | | The sequence works similar to an array but has the possibilities
to insert and remove elements at any position. It also has methods
|
addcdd | 2004-05-05 | Martin Nilsson | | to retrieve iterators that work from either side of the sequence.
|
aa1f34 | 2004-05-05 | Johan Sundström | | Both of the above ADT:s share a common set of interface primitives
described in a thesis work available for download and review at
http://pike.ida.liu.se/projects/docs/cmods/ADTs%20in%20Pike.pdf
|
6f68f4 | 2004-04-21 | Martin Nilsson | |
|
addcdd | 2004-05-05 | Martin Nilsson | |
o Geography
The Geography.Position object can now convert to and from the
Swedish RT38 (Rikets Triangulering 1938) position format.
|
dfaa78 | 2004-05-02 | Martin Nilsson | |
|
8d23b0 | 2003-09-30 | Martin Nilsson | | o Int
|
aa1f34 | 2004-05-05 | Johan Sundström | | The Int module contains a few functions and constants that deal
|
dfaa78 | 2004-05-02 | Martin Nilsson | | specifically with the integer data type. Currently it contains
parity and byte swapping functions and constants for the system
maxint and minint.
|
8d23b0 | 2003-09-30 | Martin Nilsson | | o Pike.Security
|
aa1f34 | 2004-05-05 | Johan Sundström | | Functions and classes that deal with the Pike security system
|
dfaa78 | 2004-05-02 | Martin Nilsson | | (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.
|
cbfba5 | 2004-05-01 | Leif Stensson | |
|
3f15bc | 2004-05-01 | Martin Nilsson | | o Protocols.HTTP.Session
Handles an HTTP connection as a session, with cookies, redirects,
|
aa1f34 | 2004-05-05 | Johan Sundström | | HTTP keep-alive et cetera.
|
cbfba5 | 2004-05-01 | Leif Stensson | |
|
8d23b0 | 2003-09-30 | Martin Nilsson | | o Bz2
|
b15a16 | 2004-05-01 | Martin Nilsson | | Support for the compression format used by the bzip2 program. The
|
dfaa78 | 2004-05-02 | Martin Nilsson | | module interface is almost identical with the Gz module, so
|
aa1f34 | 2004-05-05 | Johan Sundström | | changing between Bz2 and Gz is just a matter of a few characters'
|
dfaa78 | 2004-05-02 | Martin Nilsson | | difference.
|
cbfba5 | 2004-05-01 | Leif Stensson | |
|
820ec7 | 2004-02-03 | Martin Nilsson | | o Process.Process
|
dfaa78 | 2004-05-02 | Martin Nilsson | | The Process.Process class is extended to handle a time out
callback and a read callback, to better manage processes in an
|
aa1f34 | 2004-05-05 | Johan Sundström | | asynchronous way.
|
dfaa78 | 2004-05-02 | Martin Nilsson | |
|
deeeee | 2004-04-20 | Martin Nilsson | | o Error
|
dfaa78 | 2004-05-02 | Martin Nilsson | | 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
|
addcdd | 2004-05-05 | Martin Nilsson | |
|
deeeee | 2004-04-20 | Martin Nilsson | | o Float
|
aa1f34 | 2004-05-05 | Johan Sundström | | Here, constants and functions that deals specifically with the
float data type are stored. Currently contains only various
|
dfaa78 | 2004-05-02 | Martin Nilsson | | constants that describe the precision and limitations of the float
type Pike is compiled with.
|
deeeee | 2004-04-20 | Martin Nilsson | | o Protocols.Bittorrent
|
addcdd | 2004-05-05 | Martin Nilsson | | This is a Pike implementation of the client side of the popular
|
aa1f34 | 2004-05-05 | Johan Sundström | | Bittorrent protocol. Both creating torrent files and seeding, as
well as downloading and verifying files is supported. There are
|
addcdd | 2004-05-05 | Martin Nilsson | | also several functions to retreive auxillary information such as
|
aa1f34 | 2004-05-05 | Johan Sundström | | identifying the other peer clients. Contains all the primitives
you would expect, except for the tracker.
|
b15a16 | 2004-05-01 | Martin Nilsson | |
|
3f15bc | 2004-05-01 | Martin Nilsson | | o Protocols.LMTP/Protocols.SMTP
|
aa1f34 | 2004-05-05 | Johan Sundström | | Protocols.LMTP implements a server for the Local Mail Transfer
|
3f15bc | 2004-05-01 | Martin Nilsson | | 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.
|
b15a16 | 2004-05-01 | Martin Nilsson | |
o Protocols.OBEX
An implementation of the IrDA(R) Object Exchange Protocol. OBEX is
a protocol for sending and receiving binary objects to mobile
devices using transports such as IR and Bluetooth.
|
354610 | 2004-04-30 | Leif Stensson | |
|
b15a16 | 2004-05-01 | Martin Nilsson | | o Web.RDF/RDFS/OWL/RSS
|
354610 | 2004-04-30 | Leif Stensson | | Pike now has support for the W3C semantic web formats OWL, RDF
and RDFS, which are used for expressing structure and metadata
information. There is also some support for the syndication
format RSS (which happens to be a simple application of RDF).
This sample program reads an OWL file, parses the dataset
contained in it, and then lists the data classes in that
dataset:
int main(int argc, array argv)
{
object owlset = Web.OWL();
string input = Stdio.read_file(argv[1]);
owlset->parse_owl(input);
write("Classes:\n");
foreach(owlset->find_statements(0,
owlset->rdf_type,
|
aa1f34 | 2004-05-05 | Johan Sundström | | owlset->owl_Class),
array statement)
|
354610 | 2004-04-30 | Leif Stensson | | write("- %O\n", statement[0]);
|
aa1f34 | 2004-05-05 | Johan Sundström | | }
|
addcdd | 2004-05-05 | Martin Nilsson | |
|
dfaa78 | 2004-05-02 | Martin Nilsson | | o Array
The Array module has been extended with Array.all and Array.any
|
aa1f34 | 2004-05-05 | Johan Sundström | | which determines if all or any of the elements in an array meet a
|
dfaa78 | 2004-05-02 | Martin Nilsson | | 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 Function
The Function module has been extended with the fixpoint combinator
"Y", useful when writing recursive lambdas, a curry function, to
|
aa1f34 | 2004-05-05 | Johan Sundström | | partially evaluate a function call and a callback caller function
|
dfaa78 | 2004-05-02 | Martin Nilsson | | that protects the caller from exceptions in the callback function.
|
841643 | 2004-05-01 | Martin Nilsson | |
o Thread
|
aa1f34 | 2004-05-05 | Johan Sundström | | Thread.Fifo and Thread.Queue have been extended with try_*
|
b15a16 | 2004-05-01 | Martin Nilsson | | varieties of all functions that can block and with functions that
|
aa1f34 | 2004-05-05 | Johan Sundström | | make them both implement the same interface. Both also have
|
b15a16 | 2004-05-01 | Martin Nilsson | | 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);
|
addcdd | 2004-05-05 | Martin Nilsson | |
|
b15a16 | 2004-05-01 | Martin Nilsson | | o Calendar module
The %S format is added to Calendar.parse() to parse seconds since
the Epoch. The TimeRange class is extended with a format method
format_commonlog(), a tzname_utc_offset (+HHMM) and
tzname_location(), which, when available, returns zone names like
"Europe/Stockholm". The database has been updated with Swedish
pre-1901 namedays and Finnish namedays.
|
841643 | 2004-05-01 | Martin Nilsson | |
|
3f15bc | 2004-05-01 | Martin Nilsson | | o SSL
|
aa1f34 | 2004-05-05 | Johan Sundström | | Large parts of the SSL module have been rewritten, either as part
|
addcdd | 2004-05-05 | Martin Nilsson | | of the rewrite of the Crypto module or in an attempt to fix many
|
aa1f34 | 2004-05-05 | Johan Sundström | | issues regarding blocking/nonblocking files, threads et cetera.
|
3f15bc | 2004-05-01 | Martin Nilsson | |
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
|
dfaa78 | 2004-05-02 | Martin Nilsson | | This module implements various algorithms specified by the
Internationalizing Domain Names in Applications (IDNA) memo by the
Internet Engineering Task Force (IETF), RFC 3490.
|
841643 | 2004-05-01 | Martin Nilsson | |
|
0f11b8 | 2004-05-02 | Martin Nilsson | |
|
cd683a | 2001-07-27 | Johan Sundström | | Optimizations:
--------------
|
addcdd | 2004-05-05 | Martin Nilsson | | o Instantiation and destruction of pike-classes is now significantly
faster.
|
770a0b | 2003-07-23 | Henrik Grubbström (Grubba) | |
|
60a394 | 2003-04-28 | Martin Stjernholm | | o Handling of bignums has been optimized, especially conversion
to/from normal integers.
|
38a674 | 2002-12-31 | Per Hedbor | |
|
6f68f4 | 2004-04-21 | Martin Nilsson | | o String case conversion is now five times faster than before on
average.
|
412eb1 | 2004-04-20 | Martin Nilsson | |
|
6bf19a | 2002-09-15 | Peter Bortas | |
Compatibility changes:
----------------------
|
addcdd | 2004-05-05 | Martin Nilsson | | o Incompatible changes has been done to ADT.Heap, Array.diff3_old,
Crypto, Locale.Charset, Protocols.SMTP, SSL, Sql.sql,
Standards.ASN1, Standards.PKCS, Stdio.File, Thread.Mutex and
rusage(). Please refer to the 7.4 namespace in the compatibility
section of the documentation for a complete description of these
changes. Using #pike 7.4 or starting Pike with -V7.4 activates the
compatibility layer, which should make it possible to run old code
with newer pikes.
|
e2a738 | 2002-11-24 | Peter Bortas | | Compatibility changes without backward compatibility:
-----------------------------------------------------
|
deeeee | 2004-04-20 | Martin Nilsson | | o Module ABI changed
The pike_frame struct has a new member, which makes modules compiled
|
6f68f4 | 2004-04-21 | Martin Nilsson | | with earlier versions of Pike incompatible.
|
deeeee | 2004-04-20 | Martin Nilsson | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | C level/development changes:
----------------------------
|
deeeee | 2004-04-20 | Martin Nilsson | | o The security.h include file is renamed to pike_security.h
|
c3371f | 2004-05-03 | Martin Nilsson | |
o The testsuite has three new, handy macros, cond_resolv,
test_program_eq, test_program_equal, all defined in mktestsuite. A
testsuite test that produces a warning, unless it is a test_warning
test, will now be considered an error. The test program can now run
testsuites in forked processes. By default every testsuite file will
now be run in a forked process. If a directory named extra_tests
exists on the top level of the Pike source directory, that directory
will also be recursed for testsuite.in files.
o The cmod API has been extended in many details, making it easier to
work with. Variable declarations may now use the object(programname)
syntax. Void in parameters may be 0. Varargs and optional arguments
are now typechecked properly. It is possible to INHERIT a program
into a PIKECLASS. It is possible to set attributes on a PIKEVAR. A
program may be flagged as a prototype, which will make the function
bodies to be ignored. It is also possible to set program flags, such
as PROGRAM_DESTRUCT_IMMEDIATE. See bin/precompile.pike for
documentation.
o The make file has a few new targets that should be self explanatory:
gdb_hilfe, valgrind_hilfe and valgrind_verify.
o The header file module_magic.h is deprecated. Use the
PIKE_MODULE_INIT and PIKE_MODULE_EXIT macros in your modules
instead.
o The backend has a new interface to handle references from backend
objects to callbacks in files.
|