2.47 (2008-10-23)
=================
Important notes
---------------
* New module DBUS interfaces to the D-Bus message bus system.
See <http://clisp.cons.org/impnotes/dbus.html> for details.
* New function EXT:PROBE-PATHNAME can figure out whether the existing
pathname refers to a file or a directory.
See <http://clisp.cons.org/impnotes/files.html#probe-path> for details.
* New function EXT:CANONICALIZE lets you easily canonicalize a value
before processing it.
See <http://clisp.cons.org/impnotes/macros3.html#canonicalize> for details.
* New user variable CUSTOM:*REOPEN-OPEN-FILE* controls CLISP behavior
when opening an already open file.
See <http://clisp.cons.org/impnotes/open.html#reopen> for details.
* New SETFable function OS:FILE-SIZE extends FILE-LENGTH to pathname
designators and lets you change file size.
See <http://clisp.cons.org/impnotes/syscalls.html#file-size> for details.
New function OS:USER-SHELLS returns the list of legal user shells.
See <http://clisp.cons.org/impnotes/syscalls.html#user-shells> for details.
New SETFable functions OS:HOSTID and OS:DOMAINNAME.
See <http://clisp.cons.org/impnotes/syscalls.html#hostid> for details.
* Module readline has been upgraded to readline 5.2
(older versions 5.0 and 5.1 are, of course, still supported).
See <http://clisp.cons.org/impnotes/readline-mod.html> for details.
* LOAD now uses DIRECTORY only for wild *LOAD-PATHS* components, thus
speeding up the most common cases and preventing the denial-of-service
attack whereas CLISP would not start if a file with a name
incompatible with *PATHNAME-ENCODING* is present in USER-HOMEDIR-PATHNAME.
* ROOM now prints some GC statistics and returns the same values as GC.
See <http://clisp.cons.org/impnotes/environment-enq.html#room> for details.
* New user variable CUSTOM:*HTTP-LOG-STREAM* controls EXT:OPEN-HTTP logging.
See <http://clisp.cons.org/impnotes/macros3.html#http-log-stream> for details.
* Bug fixes:
+ Comparison of floats and rationals never underflows. [ 2014262 ]
+ When failing to convert a huge LONG-FLOAT to a RATIONAL, signal an
ARITHMETIC-ERROR instead of blowing the stack. [ 2015118 ]
+ Restored TYPECODES g++ compilation [ 2015118 ], which allowed fixing
a few GC-safety bugs.
+ Fixed a segfault when signaling some UNBOUND-VARIABLE errors in some
interpreted code on MacOS X (introduced in 2.46). [ 2020784 ]
Thanks to Vladimir Tzankov <vtzankov@gmail.com>.
+ Fixed input after switching a :DOS stream to binary. [ 2022362 ]
+ Support circular objects in EQUAL and EQUALP hash-tables. [ 2029069 ]
+ Avoid C namespace pollution. [ 2146126 ]
+ Fix timeout precision in NEW-CLX. [ 2188102 ]
* ANSI compliance:
+ The sets of declaration and type names are disjoint.
+ FLET, LABELS and MACROLET respect declarations.
User visible changes:
* CLISP built natively on 64-bit platforms (i.e., with 64-bit pointers)
now has :WORD-SIZE=64 in *FEATURES*.
See <http://clisp.cons.org/impnotes/features.html> for details.
* Module syscalls now offers OS:ERRNO and OS:STRERROR (for the sake of
FFI modules).
See <http://clisp.cons.org/impnotes/syscalls.html#errno> for details.
* Modules MIT-CLX and NEW-CLX export a new macro XLIB:WITH-OPEN-DISPLAY.
* Module netica has been upgraded to the Netica C API version 3.25 (from 2.15).
See <http://clisp.cons.org/impnotes/netica.html> for details.
* Module libsvm has been upgraded to the upstream version 2.86.
See <http://clisp.cons.org/impnotes/libsvm.html> for details.
* Bug fixes:
+ Work around the absence of tgamma() on solaris.
+ Avoid a rare segfault on SIGHUP.
+ Improve module portability to systems with non-GNU make.
+ Fix GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE.
+ Fix the remaining bugs in special bindings in evaluated code on
TYPECODES (64-bit) platforms.
+ Fix SOCKET:SOCKET-CONNECT with timeout to a dead port.
* CLISP does not come with GNU libffcall anymore.
* CLOS now issues warnings of type CLOS:CLOS-WARNING.
* The AFFI (simple ffi, originally for Amiga) code has been removed.
* Speed up list and sequence functions when :TEST is EQ, EQL, EQUAL or EQUALP.
* Rename EXT:DELETE-DIR, EXT:MAKE-DIR, and EXT:RENAME-DIR to
EXT:DELETE-DIRECTORY, EXT:MAKE-DIRECTORY, and EXT:RENAME-DIRECTORY,
respectively, for consistency with EXT:PROBE-DIRECTORY,
EXT:DEFAULT-DIRECTORY and CL:PATHNAME-DIRECTORY.
The old names are still available, but deprecated.
* The :VERBOSE argument to SAVEINITMEM defaults to a new user variable
*SAVEINITMEM-VERBOSE*, intial value T.
* Bug fixes