This is a BETA release, many bugs may still remain!
This release is now obsoleted by Pike-v0.6.80.
This file will be updated with new information about this release,
please send bug AND success reports to pike@idonex.se so that they
may be recorded in this file.
Successful tests done on:
Solaris 2.5.1, 2.6 (sparc & x86)
Linux Redhat 4.2
AIX 4.2
SCO OpenServer 3.3.2
Digital UNIX 4.0
FreeBSD 2.2.6
Known problems:
o The test suite reports errors in sprintf on some systems which does not
follow the IEEE float standard correctly. Don't worry about it.
o Read hangs has been reported on Solaris 2.6, it is not known whether this
is a Roxen, Pike or Solaris bug at this time.
o language.c has #line directives that confuses gcc 2.8.1.
Solution: install bison, delete language.c and compile as normal.
o Due to a mistake when packing this release, not all files are the
absolutely latest versions. Steps has been taken to make sure this
particular mistake is not repeated.
o The test suite fails with "Index 'hmac' not found in module". This is
because of an error in the testsuite and does not affect the actual
function of Pike. Solution: Edit out the line with 'add_constant' from
the beginning of src/modules/_Lobotomized_Crypto/testsuite.in and try
again.
o Test 1014 in teststuite.in ( ({1,2,3})/1 ) fails for some compilers.
It is not known weather this is a compiler or a Pike bug. Either way,
we hope to have the problem fixed soon.
o ANNOUNCE says it is pike 0.5b, it is not.
o catch { return foo(); } will sometimes mess up local variables.
o Certain syntax errors can completely freeze pike.
o for loops using global variables may not re-evaluate the test expression
properly. To fix this, replace F_GLOBAL on line 1277 in las.c with
F_IDENTIFIER. Fixed in 0.6.86.
Changes
Since this is the first 0.6 beta release, the changes are very numerous.
To expedite releases, changes will be posted on http://pike.idonex.se.
A short summary follows:
o The compiler is now two-pass, which means that you can access
variables and functions declared later in the source without
having to use prototypes. The two-pass compiler also makes
it possible to use the name of a class from inside itself.
o It is now possible to access variables and functions in the
'parent' class. This greatly simplifies coding in many
situations.
o The process handling has been changed to being object-
oriented. For this purpose, a new function has been created:
Process.create_process. The returned object can be used
as an argument to kill, and has methods which will report
the status of the child process.
o Similar to process handling, threads been changed to use
an object oriented approach.
o The 'varargs' keyword has been removed.
o You can now 'import "dirname"'.
o The module system has been modified so that the current
directory is no longer searched for modules. To use a module
in the current directory, you must either use 'import "."'
or specify the module as '.module' instead of just 'module'.
o lots of bugs has been fixed. :)
o implicit blocks has been implemented around if, switch, for,
do-while and foreach, this means that the scope of variables
such as 'if(string x)' are invalid after the if construct.
Binaries
There will be no binary distributions of this release because of some
of the problems mentioned above. I will instead concentrate on making
another release within a few days.
/Fredrik Hübinette