Changes since Pike 7.4.10: ---------------------------------------------------------------------- o Bugfix in Parser.C. "!=" is now considered one token instead of two. o Bugfixed loop over-optimization caused by faulty dependency analysis. o Postgres 7.3+ correctly detected. o Now function_object behaves as in Pike 7.2 again, returning zero if the argument is a constant in the parent class. In that case function_program() can be used to get the parent program. o Added System.dumpable() which can be used on Linux to enable coredumping even for seteuid/setegid processes. o Image.FreeType now selects the hopefully best character map when loading a font, instead of just picking a random one. o Fixed a bug that made searching for 8 bit strings in wider strings fail. o Fixed fencepost bug on overflow of the sprintf format info stack. o Fixed bugs in float parsing code, preventing very large positive or negative floats from being turned into 1.0 or -1.0. o More robustness has been added to dlinit() and __alldiv(), which fixes some start up crashes in Microsoft Windows when invoking Pike with the wrong path. o Process.create_process()->set_priority now works on Microsoft Windows. o SDL and GL now compile, link and work on Microsoft Windows. o Produce real zeroes and not false function pointers when a local function with only a prototype is referenced. This was a compatibility problem; there's code that assumes that false values can't be function references. o Fixed GTK issue where the new and old signal callback signature were randomly used for signals connected with signal_autoconnect(). This method now always uses the old method while a new method, signal_autoconnect_new() uses the new interface. o Added missing GTK method set_style. o Fixed a compatibility problem with Getopt, which caused Pike 7.4 to behave slightly different from previous versions when running in posix-me-harder mode. o Fixed a bug in the code handling boundaries in multipart messages in the MIME module. o Multiline tokens are now handled better in Parser.Pike when running in streaming mode. o Fixed a bug in sscanf when using %[] with wide characters. o Fixed a bug in low_backtrace where the backtrace itself could be reported as an argument to the top function if it was of varargs type. o Fixed security hole with running next_object in a Pike with security. o Fixes to make dumping work in a fakeroot environment. o Line numbers for C programs are now shown in backtraces even without having to compile with rtldebug. o It is possible to turn on only gc debug with trace(1,"gc"). o The aim for 20% garbage between gc runs was calculated on the wrong total amount of objects, so in effect the gc aimed for 16.7% instead. o The decaying average calculation in the gc had a bug that caused the last reading (i.e. the last gc run) to be weighted very heavily. Thus a single "abnormal" gc run could cause the gc to schedule a fairly short or long gc interval the next time which might make it erratic. o More solutions to new and fresh autoconf compatibility problems, willfully introduced by the autoconf team. o Threads are disabled by default on OpenBSD/alpha <= 3.x. o Java module now supports native method registration on alpha. o Fixed floating point argument handling with native calls in Java module for Linux/PPC. o Pike will now look for the master path in SOFTWARE\Pike\ in the registry on Microsoft Windows. o Fixed icon transparency on Microsoft Windows. o Fixed a bug that could cause wrong line numbers in backtraces when ia32 machine code is used. o Fixed bug that could cause the stack to get out of synch when large 64 bit negative integers were converted to bignum objects. o Fixed bug in trampoline objects so that they can be indexed and printed as normal objects. o Accesses from child objects to symbols in their parent objects will no longer pass through LFUN::`[]() and LFUN::`[]=(). o The object identifier index sorting order is no longer locale-dependent. o The opcodes F_{INC,DEC}{,_NEQ}_LOOP are now aware that the upper limit not neccessarily is an integer. o Fixed a bug in the dependency analyser. It didn't check arguments to side-effect free functions for written variables, which could cause overoptimization breakage. o The initialization code no longer calls fpsetmask(0) on operating systems where this API call is broken (eg OpenBSD 3.2/alpha). o Stdio.Stat()->size is now LARGEFILE aware. o Clearing a read-callback on operating systems that use select(2) no longer leaves it active in the read fd set if there is a read out-of-band data callback. o Fixed bug in Image.Image()->scale(0.5) where it could generate zero- size image objects. o Fixed rounding bug in Image.Colortable that caused it to disregard exact matches near cubicle boundaries. o Fixed Mac OS X memory allocation error when creating new threads. o Fixed opcode level trace and debug (when compiled with --with-rtldebug). o The Image module can now be compiled on SunOS 4.1.1_U1, whose assembler doesn't like long strings. o The pseudo random sequences generated by random() should now be the same on 32 bit and 64 bit machines, given the same random_seed(). o Fixed handling of 64 bit file pointers on NT. o Fixed handling of 64 bit file pointers in Stdio.File.truncate and file_truncate. o Calendar.parse() now understands %f for sub-second precision. This was documented but unimplemented. o Calendar.parse() no longer fails to generate times after 23:00 on dates lacking an hour due to a DST shift. o map() could previously have been misoptimised when run on functions with external dependencies. o configure no longer lies about Java being enabled when it is not under Microsoft Windows. o Fixes to compile with --without-bignums. Not recommended, but it should work again now. o Fixes to make the Mysql module load under Microsoft Windows even when compiled as a dynamically loadable module. o Fixed a threading bug in Image.Image()->box(). o Added more consistency checks to detect thread problems. This is enabled with the new -dT argument (--with-rtldebug is not necessary). Enjoy! The Pike Team