roxen.lists.pike.general

Subject Author Date
Pike 7.8.292 beta Peter Bortas @ Pike importmöt <6341[at]lyskom[dot]lysator[dot]liu[dot]se> 09-06-2009
Roughly six months (on normal par, but double the time I'd like to
see) after the first 7.8 release here is the first 7.8 update: 7.8.292
beta. Users and developers alike are encouraged to test this beta and
report problems so we can have a final release as soon as possible.

The source can downloaded here:

  http://pike.ida.liu.se/pub/pike/beta/7.8.292/Pike-v7.8.292.tar.gz

A Windows binary might show up tomorrow.


Changes since Pike 7.8.116 (initial 7.8 release):
----------------------------------------------------------------------

General
-------

o Sql.pgsql:
  - Substantial documentation improvements.

o Stdio.Fd_ref is deprecated and in the process of being eliminated. 
  You have never used it before, so don't start using it now.


Bugfixes
--------

o Fixed bug in AGGR_ARR_EPILOGUE() (aka END_AGGREGATE_ARRAY()) that
  caused the empty array to always be returned if there were no
  unaggregated elements on the stack at END_AGGREGATE_ARRAY.

  You are encouraged to upgrade just for this fix since the bug
  creates very rare but (seemingly) random occurances of empty arrays.

o Fixed multiset_delete_node to work with destructed indices. This
  fixes occasional bugs in various functions when there are destructed
  objects in indices. 

  You are encouraged to upgrade just for this fix since the bug creates
  (seemingly) random crashes that are hard to reproduce and track down.

o Fixed bug in the Odbc module on WIN32 where it would fail for some
  field-types with the error "22003:Numeric value out of range".

o Sql.pgsql:
  - Various small fixes and performance improvements.
  - Fixed fully transparent UTF8/Unicode/wide string/character set support.
  - Fixed formatting errors in error().

o Fixed bug when seeking backwards in Gz.File.

o Fixed bug in fd_stat on windows when used on a file system with a
  long name.

o Fixed off-by-one bug in Stdio.Readline that caused a space in the
  last column to disappear instead of being converted to a linefeed 
  when word wrapping is used.

o Fix bug in FakeFile.read()
  Replaced the broken-in-multiple-ways implementation by something that
  actually works (hence the original enlightnening description: "fixed a bug",
  there is really no concise way to classify this level of brokenness).

o Image.TIFF: Fixed memory leak on OOM.

o Fixed crash bug in Fixed core-dump typo in yyexplain_not_implements().

o LysKOM.ProtocolTypes: Bugfix of LocalToGlobalBlock

o Protected Pike_fatal() against the risk of hanging on mutexes.

o Added 7.6 compat versions for RegGet,KeyNames}().

o Fixed memory leak in Image.Colortable.

o Parser.SGML: Reinstated the class as Parser.SGML(). It inadvertedly
  became Parser.SGML()->SGML() in the move to a separate file.
  Parser.SGML.SGML is kept as a compatibility alias.

o Added Pike 7.6 and earlier compat for store_constant(UNDEFINED).

o Fixed race-condition causing "Lost track of child" on pikes compiled
  --without-threads.

o Regexp.PCRE: Do not match the empty string past the end of the input.

o Reduced the risk of throwing out-of-stack errors while formatting an
  out-of-stack backtrace.

o Fixed bug that would cause sprintf's %nH to refuse all strings as too
  long for some values of "n" on some architectures.

o Made Process.search_path() aware if Win32 and AmigaOS specifics.

o Fixed bug in Protocols.HTTP.Query that dropped the last byte of a
  request if the server did not provide a Content-Length header.


Optimizations
-------------

o Fixed Filesystem._Tar.ReadFile to not gobble the whole tar entries
  into memory at once.

o Improve performance of get_cpu_time() on OS X by avoiding a kernel
  trap to get the ID of the underlying system thread.

o Throttle calls to task_info() on OS X since they are quite
  expensive. This gives a significant performance boost (>10%) on
  CPU-intensive applications.


Extensions and New Functions
----------------------------

o Added support for specifying modifiers via a mapping to '*' in sprintf(). 
 
  See the documentation for details.

  This support is detectable by checking for
  String.__HAVE_SPRINTF_STAR_MAPPING__

o Added support for generating little-endian floats with %F in sprintf().

  This support is detectable by checking for
  String.__HAVE_SPRINTF_NEGATIVE_F__

o Sql.Sql now supports NULL values for %s-parameters.

o Timeout support in win32 threads.

o Made FakeFile() support getchar/gets/unread.

o Added option to chown and utime that makes it possible to change the
  symlink instead of the target of the link.

o function_name() now knows how to adjust the names of named lambdas.

o Changed handling of POLLHUP for poll devices, it is now signalled on
  all of the callbacks.

o Updated timezone data to tzdata2009c.

o Added some support for the TIMESTAMP and INTERVAL datatypes to
  Oracle module.


New modules / classes / methods added
-------------------------------------

o Protocols.IPv6

  Helpers for IPv6 related things. This currently only contains tools
  to parse and normalize addresses. (Not much more is necessary since
  the usual I/O interfaces support IPv6 as-is.)

o Added Filesystem._Tar.extract to be able to extract many/all files
  in a reasonably efficient way.

o Added Parser.Tabular
  It provides a flexible yet concise record-description language to parse
  character/column/delimiter-organised records.

o Calendar.YMD.http_time() that knows how to handle dates according to
  HTTP 1.1 (RFC 2616).

o Added support for GTK2 get_window() and get_pixmap().


Building and installing
-----------------------

o Use the #-character as prefix and suffix for placeholders in
  master.pike.in instead of the currency sign, to avoid 8-bit character
  encoding issues.

o Improved support for version bumping via both Subversion and git.

o A recent stable Pike (7.8.116+) is now required to do a "make
  export".

o The win32 installer now removes the generated master.pike on uninstall.