This is a return to the behavior of Pike 0.6. (We promise not to
change it again...) This may cause some compatibility problems
with Pike 7.0 code. (See the #pike feature above)
As an example, the following code is no longer valid:
int a = 10;
int a = 20;
Most of the GC has been rewritten from scratch. It now has a more
well defined behaviour when destroy() functions are called in GC'd
objects.
If you actually need Simulate, use #pike 7.0 and it will appear.
It is now possible to make sprintf style SQL queries with
automatic, database specific quoting. Example:
db->query("SELECT * FROM things WHERE id > %d AND name LIKE %s",
lowest, pattern);
The following two class definitions are equivalent:
class Foo
{
int a;
static string b;
static void create(int _a, string _b)
{
a = _a;
b = _b;
}
}
class Foo(int a, static string b)
{
}
Constants can now be defined inside functions.
Makes it possible to resolve symbols in the local scope. Example:
class A {
int foo() { return 1; }
int bar() { return foo(); }
int baz() { return local::foo(); }
}
class B {
inherit A;
int foo() { return 2; }
}
B()->bar() will return 2 while B()->baz() returns 1.
Example:
constant boolean = typeof(0)|typeof(1);
boolean flag = 1;
int main( int argc, array(string) argv )
{
flag = (argc>1)?(int)argv[1]:flag;
write( "Type of flag is %O\n", typeof(flag) );
write( "Value of flag is %O\n", flag );
return 0;
}
Example:
typedef int(0..1) boolean;
boolean flag = 1;
int main( int argc, array(string) argv )
{
flag = (argc>1)?(int)argv[1]:flag;
write( "Type of flag is %O\n", typeof(flag) );
write( "Value of flag is %O\n", flag );
return 0;
}
Example:
enum boolean {
false,true
}
boolean flag = true;
Example:
Regexp("[0-9]+")->match( ({ "hello", "12", "foo17" }) );
Returns ({ "12", "foo17" })
A simple stack implementation. Previously known as Stack.
Plugin-based generic caching system, supporting chain-deletion of records.
Currently supported storage areas are RAM, GDBM, Yabu or MySQL databases,
removal policies are explicit remove, time-constrained, size-constrained,
combined.
The new Calendar module. There is a big FAQ
in its directory describing many of its capabilities.
The old Calendar module. Available as Calendar when #pike 7.0 is used.
Rijndael is a block cipher, designed by Joan Daemen and Vincent
Rijmen, which was the winning candidate algorithm for the AES
(http://csrc.nist.gov/encryption/aes/). The cipher has a variable block length and key length.
The MD2 Message-Digest Algorithm, as defined in RFC 1319
(http://community.roxen.com/developers/idocs/rfc/rfc1319.html).
Capable of converting between symbolic names for the countries to
the actual country name. It can convert between differnet kinds of
position systems such as longitude/latitude, UTM and Georef. The
conversion can be done on any type of ellipsoid. 18 of the most common
earth approximations are included.
Very low-level support for FreeType 2.0, basically maps
directly to the library. Inside Roxen it's much easier to use the
built-in font support which wraps the low-level font handlers with
a somewhat more userfriendly abstraction layer
For easy use of angles in computations. It can handle degrees,
radians and gons and conversion between them. You can reference a
degree angle with degrees, minutes and seconds. Includes methods for
normalization, trigonometrical calculations etc.
Glue module to libmird, a free simple database with transactions,
see http://www.mirar.org/mird/
This is a glue module to pdflib, a "half-free" PDF generating
library. This is not included in the binary releases for licensing
reasons.
An implementation of DOM Level 1. See http://www.w3.org/DOM/.
An easy to use, lightweight module to traverse and manipulate XML
trees.
The API functions in Protocols.HTTP now take their URLs either as
strings or Standards.URI objects. You also no longer need to set
the authorization header on your own, if your URL contains
user:password information (e g
http://user:password@some.host.com/). Also, the convenience
functions in this module now handles https URLs.
A client implementation of the IRC (Internet Relay Chat) protocol.
Implements SNMP v1, according to RFC 1157:
http://community.roxen.com/developers/idocs/rfc/rfc1157.html
A module providing mapping from ISO-639-2 language codes to
language names and vice versa.
Abstract class for URI:s (or URL:s) that both handles indexing
out/altering the various individual components of a URI and correct
resolving/reresolving of a URI with respect to another base URI, all
according with RFC 2396:
http://community.roxen.com/developers/idocs/rfc/rfc2396.html
Protocols.HTTP now also accepts Standards.URI objects
as input to all methods that previously used to accept
only URL strings.
file_stat() and fdobj->stat() now returns Stdio.Stat objects
instead of arrays. These objects emulate the behaviour of the
previously used arrays, but also provide an easier to use
interface. (See the #pike feature above)
Extracts the new inline documentation format. We will post more
information on this when this system has matured enough to build
working pike reference manuals. Some information is available in files
.autodoc_inlining and .autodoc_syntax in the top directory.
A module housing various operating system calls made available to
pike that previously used to be provided as efuns (hardlink, symlink,
resolvepath, umask, chmod, chown, chroot stc.). Be prepared to see
these efuns disappear to compat mode only in the future. They will,
however, of course be available in the system module.