;;;; -*- coding: utf-8; -*-
+changes in sbcl-0.9.16 relative to sbcl-0.9.15:
+ * feature: implemented the READER-METHOD-CLASS and
+ WRITER-METHOD-CLASS portion of the Class Initialization Protocol
+ as specified by AMOP.
+ * optimization: faster LOGCOUNT implementation on x86 and x86-64
+ (thanks to Lutz Euler)
+ * optimization: hashing of general arrays and vectors has been
+ improved. (reported by Any Fingerhut)
+ * enhancement: SB-INTROSPECT is now able to find definitions of
+ profiled functions. (thanks to Troels Henriksen)
+ * enhancement: compiler-macro expansion applies now to FUNCALL forms
+ as well.
+ * fixed bug #337: use of MAKE-METHOD in method combination now works
+ even in the presence of user-defined method classes. (reported by
+ Bruno Haible and Pascal Costanza)
+ * fixed bug #339(c): if there are applicable methods not part of any
+ long-form method-combination group, call INVALID-METHOD-ERROR.
+ (reported by Bruno Haible)
+ * bug fix: improved the handling of type declarations and the
+ detection of violations for keyword arguments with non-constant
+ defaults.
+ * bug fix: potentially erronous calls to PATHNAME and
+ MERGE-PATHNAMES were being flushed in some cases.
+ (reported by Richard Kreuter)
+ * bug fix: compiled calls to TYPEP were mishandling obsolete
+ instances. (reported by James Bielman and Attila Lendvai)
+ * bug fix: format strings with ~> without matching ~< no longer
+ trigger an AVER, but signal an understandable error instead.
+ (reported by Antonio Martinez)
+ * bug fix: specifying an output-file without a pathname-type for
+ COMPILE-FILE or COMPILE-FILE-PATHNAME resulted in using the type
+ of input-file instead of "fasl". (reported by Robert Dodier)
+ * bug fix: compiler-macro lambda-list parsing of FUNCALL forms.
+ (reported by James Y Knight).
+ * bug fix: compiler-macros-function did not consider the environment
+ argument for shadowing by local functions.
+ * bug fix: compiler-macros expansion was inhibited by local INLINE
+ declarations.
+
+changes in sbcl-0.9.15 relative to sbcl-0.9.14:
+ * added support for the ucs-2 external format. (contributed by Ivan
+ Boldyrev)
+ * minor incompatible change: pretty printing of objects of type
+ (cons symbol) is, in the default pprint-dispatch-table, now
+ sensitive to whether the symbol satisfies FBOUNDP. (thanks to
+ Marcus Pearce)
+ * minor incompatible change: SB-MOP:FINALIZE-INHERITANCE is now
+ called later in a class's lifetime, possibly as late as when the
+ first instance of the class is created. Previously,
+ SB-MOP:FINALIZE-INHERITANCE was called by the system as soon as a
+ class became finalizeable.
+ * fixed bug: FILE-POSITION sometimes returned inconsistent results
+ for multibyte external-format streams. (thanks to "vbzoli")
+ * fixed bug: CHANGE-CLASS would fail to preserve the values of slots
+ with :ALLOCATION :CLASS inherited from superclasses of the
+ original class.
+ * fixed bug: anonymous classes can now be created using the :NAME
+ initarg and MAKE-INSTANCE / REINITIALIZE-INSTANCE, as specified by
+ AMOP. (reported by Leonid Slobodov on comp.lang.lisp)
+ * fixed bug: core-files saved with :EXECUTABLE T can again be
+ executed when SBCL_HOME isn't set. (reported by James Knight)
+ * fixed bug: toplevel LOCALLY forms with declarations could
+ occasionally get miscompiled. (reported by Yaroslav Kavenchuk)
+ * fixed bug: printing from several different threads using different
+ values of *print-case* could cause invalid output, due to
+ some internal special variables of the printer not being bound
+ thread-locally (reported by Max Mikhanosha)
+ * fixed bug: SPECIALIZER metaobjects (including anonymous classes
+ and EQL-SPECIALIZERs) can be used as specializers to DEFMETHOD.
+ (reported by Pascal Costanza)
+ * fixed bug: FINALIZE-INHERITANCE is called from
+ REINITIALIZE-INSTANCE on classes when the class has previously
+ been finalized, as required by AMOP.
+ * minor code generation optimizations:
+ ** better register allocation in CLOS dispatching functions
+ ** overflow detection when coercing signed bytes to fixnums on x86-64
+ ** is now implemented with one IMUL instruction instead of three shifts
+ ** more efficient bit-vector access on x86 and x86-64
+ ** more efficient access to raw structure slots on x86 and x86-64
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** ENSURE-DIRECTORIES-EXIST.8: ENSURE-DIRECTORIES-EXIST must
+ return its argument.
+
+changes in sbcl-0.9.14 relative to sbcl-0.9.13:
+ * feature: thread support on Solaris/x86, and experimental thread support
+ on OS X/x86.
+ * feature: SBCL now tries to signal a STORAGE-CONDITION when running out
+ of heap.
+ * feature: SBCL now provides USE-VALUE and STORE-VALUE restarts in the
+ default method for SLOT-UNBOUND.
+ * minor incompatible change: prevent the user from specializing the
+ new-value argument to SB-MOP:SLOT-VALUE-USING-CLASS. It's
+ somewhat counter to the intent of the protocol, I (CSR) think, and
+ additionally it just doesn't work in SBCL as currently
+ implemented, thanks to optimizations (that are always valid for
+ the other three SLOT-VALUEish functions, but not for the setter).
+ * minor incompatible change: the :SB-LDB feature is now enabled by
+ default, and DISABLE-DEBUGGER and ENABLE-DEBUGGER also affect
+ the low-level debugger.
+ * enchancement: RUN-PROGRAM is now able to extract the file-descriptor
+ from SYNONYM-STREAM and TWO-WAY-STEAMS provided they can be decomposed
+ down to an SB-SYS:FD-STREAM, allowing direct communication in
+ more cases. Temporary files and pipes are still used as a fallback
+ strategy.
+ * thread-safety: DECODE-UNIVERSAL-TIME & GET-DECODED-TIME depended
+ on the non-reentrant C functions localtime(3) and gmtime(3).
+ * bug fix: global optimization policy was not visible in LOCALLY and
+ MACROLET forms.
+ * bug fix: class objects can be used as specializers in methods.
+ (reported by Pascal Costanza)
+ * bug fix: native unparsing of pathnames with :DIRECTORY NIL failed
+ with a type error. (reported by blitz_ on #lisp)
+ * bug fix: unparsing logical pathnames with :NAME :WILD :TYPE NIL
+ failed with a type error. (reported by Pascal Bourguignon)
+ * bug fix: merging pathnames against defaults with :DIRECTORY
+ starting with '(:RELATIVE :BACK) should preserve the :BACK.
+ (reported by James Y Knight)
+ * bug fix: saving large (>2GB) cores on x86-64 now works
+ * bug fix: a x86-64 backend bug when compiling (setf aref) with a
+ constant index and a (simple-array (signed-byte 32)) array
+ * bug fix: NAME-CHAR on an invalid symbol no longer signals an
+ error (patch by Robert J. Macomber)
+ * feature: TIME now displays the amount of run-time spent in GC
+ * bug fix: The debugger now does a better job of respecting
+ (PUSH '(*PRINT-CIRCLE* . T) SB-DEBUG:*DEBUG-PRINT-VARIABLE-ALIST*)
+ when printing SB-DEBUG:*DEBUG-CONDITION*. (This is a debugger-only
+ workaround for bug 403.)
+ * bug fix: floating point exception handling now works on FreeBSD
+ (thanks to NIIMI Satoshi)
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** MISC.641: LET-conversion were not supposed to work in late
+ compilation stages.
+ * improvements to the Win32/x86 port:
+ ** GET-INTERNAL-RUN-TIME implemented, thanks to Frank Buss.
+ ** improved SB-BSD-SOCKETS support, thanks to Timothy Ritchey.
+
+changes in sbcl-0.9.13 relative to sbcl-0.9.12:
+ * new feature: source path information is generated for macro-expansion
+ errors for use in IDE's like Slime (thanks to Helmut Eller)
+ * bug fix: calls to the compiler no longer modify *RANDOM-STATE*
+ * bug fix: compiler does not loop forever on an invalid type in
+ TYPEP.
+ * improvement: compilation of most CLOS applications is significantly
+ faster
+ * optimization: added a limited bytecode compiler for simple toplevel
+ forms, speeding up compilation and FASL loading
+
+changes in sbcl-0.9.12 relative to sbcl-0.9.11:
+ * minor incompatible change: in sbcl-0.9.11 (but not earlier
+ versions) SB-MOP:FINALIZE-INHERITANCE would recursively descend
+ into subclasses of the finalized class. Now user calls to
+ FINALIZE-INHERITANCE finalize just the one class, and calls by the
+ system return before any subclasses are finalized.
+ * minor incompatible change: The reader no longer ignores errors
+ regarding non-existent packages in #+ and #- feature tests.
+ * new feature: command line options --no-sysinit, --no-userinit to
+ inhibit loading the corresponding init files
+ * new feature: add a generic function SOCKET-SEND to SB-BSD-SOCKETS,
+ for sending data through UDP sockets (thanks to François-René Rideau)
+ * minor incompatible change: SIGPIPE is ignored and "Broken pipe"
+ error is signalled instead (thanks to François-René Rideau)
+ * minor incompatible change: Error signalling behaviour of lexical
+ operations violating package locks has changed slightly. Refer to
+ documentation on package locks for details.
+ * enhancement: EVAL can process IF-expressions without resorting to the
+ compiler.
+ * bug fix: Some operations involving SIN, COS, or TAN weren't being
+ constant-folded properly due to missing out-of-line functions.
+ (reported by Mika Pihlajamäki)
+ * bug fix: LISTEN sometimes returned T even in cases where no data was
+ immediately available from the stream
+ * fixed bug: types of the last two arguments to SET-SYNTAX-FROM-CHAR
+ were reversed. (reported by Levente Mészáros)
+ * fixed bug: Tests for the (VECTOR T) type gave the wrong answer
+ when given a vector displaced to an adjustable array. (reported
+ by Utz-Uwe Haus)
+ * bug fix: derivation of float boundaries from numbers outside the
+ appropriate float range (reported by John Wiseman)
+ * bug fix: MAKE-LOAD-FORM-SAVING-SLOTS accepts en empty slot name
+ list.
+ * bug fix: precomputing cache entries for generic functions with
+ some subclasses of specializers as yet invalid does not attempt to
+ fill a cache line with a negative offset. (reported by Levente
+ Mészároz)
+ * improvements to DOCUMENTATION for TYPE and STRUCTURE doc-types:
+ allow condition class objects as arguments to DOCUMENTATION and
+ (SETF DOCUMENTATION); only find and set documentation for
+ structure names for the STRUCTURE doc-type. (suggested by Gary
+ King)
+ * improvements to the Win32/x86 port:
+ ** (user-homedir-pathname) and default initialization file
+ locations now know about the user's "Documents and Settings"
+ directory (thanks to Yaroslav Kavenchuk)
+ ** run-program is implemented (thanks to Mike Thomas)
+ ** sockets support (thanks to Timothy Ritchey)
+ ** better backtrace support (thanks to Alastair Bridgewater)
+ ** sb-grovel supported
+ ** asdf-install and sb-posix work somewhat
+ ** capable of running Slime using SWANK:*COMMUNICATION-STYLE* NIL
+ * improvements to the Solaris/x86 port:
+ ** works on Solaris 11/Solaris Express
+ ** floating-point exception handling support
+ ** support for the breakpoint-based TRACE :ENCAPSULATE NIL facility
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** REMOVE-METHOD returns its generic function argument even when
+ the method is not one of the generic functions' methods.
+ ** objects declared as MEMBER types can be admissible arguments to
+ structure accessors.
+ ** printing characters should simply be printed by the FORMAT ~:C
+ directive.
+ ** compiler failure when compiling functions with hairy constant
+ defaults for optional parameters.
+ ** compiler produces wrong code when MAYBE-INLINE-expanding a
+ function, which is already optimized.
+
changes in sbcl-0.9.11 relative to sbcl-0.9.10:
+ * new platform: experimental support for SBCL x86/Darwin, including
+ MacOS X 10.4.5 on Intel.
* new feature: Unicode character names are now known to the system
(through CHAR-NAME and NAME-CHAR).
+ * new feature: the filesystem location of SBCL's core file is
+ exposed to lisp through the variable SB-EXT:*CORE-PATHNAME*.
+ * minor incompatible change: the contrib modules SB-POSIX and
+ SB-BSD-SOCKETS no longer depend on stub C libraries; the intent of
+ this change is to make it easier to distribute
+ location-independent binaries.
* bug fix: as implied by AMOP, standardized classes no longer have
slots named by external symbols of public packages. (reported by
Pascal Costanza)
* optimization: calling functions via constant symbols -- as in
(FUNCALL 'FOO) -- is now roughly as efficient as calling them
via the function object as in (FUNCALL #'FOO).
+ * optimization: on x86 and x86-64, the calling convention for the
+ case of dealing with an unknown number of values has been altered
+ to be friendlier to the prediction heuristics implemented,
+ particularly with reference to CALL and RET pairing. (thanks to
+ Alastair Bridgewater)
+ * optimization: on x86, the code for access to thread-local symbol
+ values and binding/unbinding of thread-local symbols is smaller.
+ (thanks to Alastair Bridgewater)
* enhancement: CONSTANTP is now able to determine constantness of
more complex forms, including calls to constant-foldable standardized
functions and some special forms beyond QUOTE.
* fixed bug: occasional GC crashes on Solaris/x86
+ * optimization: x86-64 supports stack allocation of results of simple
+ calls of MAKE-ARRAY, bound to variables, declared DYNAMIC-EXTENT
+ * enchancement: the PROCESS-INPUT and -OUTPUT streams created by
+ SB-EXT:RUN-PROGRAM can be used for both character and byte IO
+ (thanks to James Knight)
+ * fixed bug: CL:LISTEN always returns NIL at end of file, as required
+ by the standard (thanks to Stephen Compall)
changes in sbcl-0.9.10 relative to sbcl-0.9.9:
* new feature: new SAVE-LISP-AND-DIE keyword argument :EXECUTABLE can