New build that I hope to release as a stable towards the end of the week:
http://pike.ida.liu.se/download/pub/pike/beta/7.8.346/
Windows build avilable.
Changes since Pike 7.8.316 (second stable 7.8 release): -------------------------------------------------------
General -------
o ADT.Heap The compat functions top() and size() are now marked as deprecated.
Extensions and New Functions ----------------------------
o Image.Image
Added support for sending Color objects to the color() function.
o Sql.Sql
Added support for fetching result sets as JSON-encoded strings.
o Calendar
Updated timezone data to 2009j.
o Added "pike -x httpserver" that implements a minimal HTTP-server exporting the current directory.
Optimizations -------------
o Lowered startup time by extending encode_value() and MasterCodec so that master.pike can be precompiled.
o Lowered startup time by reducing the number of MEMSET() calls done on startup.
o Allow threads while calling SWL_GL_SwapBuffers.
o Added optimization of has_value() and search() for single-character strings.
o Added optimization when combining two arrays where the second array contains a single item.
Bug fixes ---------
o Fixed casting of floats to strings to again work more like in Pike 7.6 and earlier: The string will always contain either a "." or an "e" to signify that it is a float, and it will no longer display so many digits that the binary/decimal conversion errors become visible.
o Protocols.HTTP.Server.HeaderParser will now discard parts of a header value if the header value contains a newline (like "Host: google.com\n.hax.net\r\n") and headers without colon.
o file_open_socket() now attepts to set SO_REUSEPORT on the socket. Potentially fixes issues on FreeBSD 7.x where ports aren't reused.
o Calendar.TimeRanges now knows that `+() and `-() can get any number of arguments.
o The experimental extended ZFS support is disabled since it pulled in unwanted dependencies.
o Fixed propagation of changed module directories for joinnodes by zapping the joinnode cache.
o Fixed memory leak in Image.WBF.
o Fixed potential NULL-deref in Image.XWD.
o Fixed potential NULL-deref in Image.PNG.
Building and installing -----------------------
o Nettle 2.0 is now supported.
I noticed the optimizations for the single-element array and has_value() en search() in the list of optimizations (Nice!). I noticed has_suffix() and has_prefix() were not mentioned. I guess those could have a similar optimization, but it'd be less worthwhile, because those doesn't have to cycle through many characters (and likely therefor have a negative effect in performance even?)
One other candidate that I was wondering about, is String.count(). (In pike 7.4) it doesn't seem to accept a character for the second parameter, but I wonder if it might be possible, and worthwhile optimizing there as well?
Regards,
Arjan
It's looking resonably good for a release. The changes that has gone in the last few days don't look like they must be included, so my aim is to release this beta as the stable this weekend.
import GLU; fails with 7.8.346, 316 and 116 on my machine (so it's not a regression at least), but not with 7.8.201 from pikefarm on another machine
it might be an issue with foresight linux, but i don't see why, since GLU.pmod is a pike script and i don't see any errors trying to load GLU.
somehow this error also affects the parsing of code that follows. this parsing wierdness also happens with all pike 7.8 versions i tested it also occurs when there is more code between the import line and the function.
============ import GLU; void special(int k, int x, int y) { switch (k) { default: return; } }
void main() { special(1,2,3); }
------------ test.mini:1:Module is neither mapping nor object test.mini:5:Must return a value for a non-void function. test.mini:5:Expected: mixed. test.mini:5:Got : void. Pike: Failed to compile script.
Works here (Debian/testing, amd64):
zhuwuneng:/tmp> pike --version Pike v7.8 release 346 Copyright © 1994-2008 Linköping University Pike comes with ABSOLUTELY NO WARRANTY; This is free software and you are welcome to redistribute it under certain conditions; read the files COPYING and COPYRIGHT in the Pike distribution for more details. zhuwuneng:/tmp> cat foo.pike import GLU; void special(int k, int x, int y) { switch (k) { default: return; } }
void main() { special(1,2,3); } zhuwuneng:/tmp> pike foo.pike zhuwuneng:/tmp> uname -a Linux zhuwuneng 2.6.30-1-amd64 #1 SMP Sat Aug 15 18:09:19 UTC 2009 x86_64 GNU/Linux zhuwuneng:/tmp>
By the way, shouldn't the copyright be updated to contain the current year?
Release checks for Pike v7.8 release 346
Consider increasing the size of the builtin_constants mapping to 315 entries (currently 300/287). The year in the copyright message in master.pike.in needs an update. The year in the copyright message in install.pike needs an update. The year in the copyright message in unbug needs an update. lib/modules/Protocols.pmod/IPv6.pmod is missing a #pike directive. lib/modules/Sql.pmod/null.pike is missing a #pike directive.
not sure how that relates to the problem...
greetings, martin.
This only relates to my a propos that the year in the copyright message given by "pike --version" ought to be updated.
So, with some minor modifications*, none worthy of changelog entries:
http://pike.ida.liu.se/download/pub/pike/beta/7.8.350/
Unless I hear protests this will go out as new stable monday evening.
* http://pike.ida.liu.se/development/cvs/pike.xml?v=7.8&between=2009-09-13...
A nice and round number. Binaries for Solaris and Linux (32bit) uploaded.
On Sun, Sep 20, 2009 at 10:35:02PM +0000, Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum wrote:
A nice and round number. Binaries for Solaris and Linux (32bit) uploaded.
foresight linux packages now updated at pike=embee.rpath.org@fl:2-devel
greetings, martin.
So, with some minor modifications*, none worthy of changelog entries:
I just fixed a fatal triggered by sprintf("%O") on mappings under some circumstances. There also seems to be an issue with the machine-code generation on sparc in combination with gcc 4.3.4.
So, with some minor modifications*, none worthy of changelog entries:
I just fixed a fatal triggered by sprintf("%O") on mappings under some circumstances.
That's bad, and good that it's fixed. Are those circumstances things that has happened in the real world? Is it a regression?
There also seems to be an issue with the machine-code generation on sparc in combination with gcc 4.3.4.
Annoying, but less of a massive failure.
Now, 7.8.350 really was released yesterday. I was just to lazy to convert the changes to XML and write the announcement. So lets have another release tomorrow:
pike-devel@lists.lysator.liu.se