Pike 7.6.50 Release Notes

Changes in Pike 7.6.50

This document outlines the changes between Pike 7.6.24 and 7.6.50.

Changes in Pike code

  • added Standards.UUID
  • added Standards.XML.Wix, Tools.Standalone.make_wxs
  • Parser.XML: added 7.2 compatibility mode that allows multiple tags at the top level. Also fixed bug where comments and PI:s after the top level element weren't allowed. PIs are allowed at the top level.
  • Parser.XML: Added additional validity checks which may be turned on to get stricter XML parsing.
  • Parser.XML: added compatibility wrapper for 7.2 parse_input()
  • Parser.XML: can pass compat_allow_errors to XML parser in simple_parse_input() and parse_input().
  • Parser.XML: stricter detection of RXML entities.
  • better garbage generation for Remote.
  • SSL.sslfile: added wrapper for Stdio.File.is_open().
  • Protocols.HTTP.Query: keepalive operation fixed when remote has closed.
  • Protocols.HTTP.Quert: added timed_async_fetch().
  • UNDEFINED arguments are better described in backtraces.
  • Protocols.DNS: improved support for T_TXT.
  • Cache.Policy: made some debug output optional.
  • ADT.Relation.Binary: bugfixes, added cast().
  • Hilfe: added result formatter for binary, octal and hexadecimal integers.
  • Protocols.LDAP.client: filter value unescaping function complies more closely to the somewhat peculiar escape method in RFC 1960.
  • Protocols.LDAP.client: The paged result control should be optional in the first search query and critical in the rest, not the other way around. This fixes servers that don't support paged queries in the whole tree.
  • SSL.sslfile: Various fixes: notably the close callback is also called on errors, which is consistent with Stdio.File. Added set_(non)blocking_keep_callbacks. See also Pike.Backend.
  • Stdio: Propogates return values from callbacks properly.
  • Stdio: Always check that the user callbacks are installed before calling them.
  • Protocols.HTTP.Server.Request: allow methods other than POST to send data in the request body, as long as the content-length header is set.
  • Added support for versioned pike -x.
  • Standards.EXIF: bugfix for BIAS.
  • Web.Crawler: bugfix to cope better with non-absolute redirects.

Changes in C code

  • is_eq() works properly with objects now.
  • Improvements made in rtldebug, valgrind and cleanup-on-exit.
  • Searches for 64 bit mysql libraries.
  • Displays errors when the compile time replace() optimizer fails.
  • Zero-type is correctly cleared in a number of opcodes.
  • Fixed leak in Oracle module when Oracle.Date objects are created or cast.
  • Several fixes for improved performance and compatibility with Oracle 9.
  • Fixes for compiling under Solaris 10, AmigaOS4, OpenBSD and Mac OS X.
  • Machine code disabled under FreeBSD 5.x.
  • Preprocessor now handles escaped newlines in ordinary text.
  • #if expressions can now be broken with escaped newlines.
  • sprintf() %f segfaults fixed.
  • Stdio.UDP->wait() now handles EINTR.
  • Stdio.File sockets are properly released when connect() fails.
  • XML parser fixes (see Pike code changes).
  • mktime() works before 1970 now in all situations.
  • gmtime() works for localtime now, and maps to closest valid time when presented with an invalid time.
  • Odbc: configure fixes for modern libiodbc.
  • fixes for modify_shared_string() and rehash_string_backwards()
  • Pike.Backend: Fixed bug in timeout calculation that caused the timeout to be zero (effectively causing busylooping) if one requested infinite timeout to Backend.(). (This doesn't affect the default backend since it has a timeout of 3600.0.)
  • Pike.Backend: proper closing of kqueue descriptors on *BSD systems that use kqueue instead of poll().
  • Pike.Backend: fixed a bug that caused delays when setting callbacks. Fixes bad performance for SSL.sslfile based servers.
  • Sybase: SybaseOpenClient framework on Mac OS X.
  • CMOD precompiler: fixes for polymorphic function overloading and module level functions.
  • Do not decode non-shortest forms in utf8_to_string and _Charset, for security reasons and unicode 3.1 compliance.
  • Image.PNG: fix a memory leak.
  • Image.FreeType: Added support for monochrome pixel fonts.
  • Postgres: Fixes to create() variable 5 parsing.
  • GTK: a number of typos were fixed.
  • A large number of fixes for 64 bit architectures.
  • Significant optimization of sscanf %*s and %*[...].
  • Optimized Mac OS X cache management in machine code generation resulting in better performance in some areas (e.g. startup time).

Other Changes

  • Windows installer fixes
  • Updated Nettle included
  • Bug reports fixed: 3855, 3928, 3941, 3950