to Bruno Haible)
changes in sbcl-0.8.11 relative to sbcl-0.8.10:
+ * minor incompatible change: the sb-grovel contrib now treats C
+ structures as alien (in the sense of SB-ALIEN) objects rather than
+ as undistinguished (simple-array (unsigned-byte 8) (*))s. This
+ has implications for memory management of client code
+ (sb-grovel-returned objects must now be manually managed) and for
+ type safety (alien objects now have full types).
* new feature: the SB-EXT:MUFFLE-CONDITIONS declaration should be
used to control emission of compiler diagnostics, rather than the
SB-EXT:INHIBIT-WARNINGS OPTIMIZE quality. See the manual for
documentation on this feature. The SB-EXT:INHIBIT-WARNINGS
quality should be considered deprecated.
+ * install.sh now installs the user manual as well
+ * (not quite a new documentable feature, but worth considering in
+ the light of the new SB-EXT:MUFFLE-CONDITIONS declaration): the
+ beginnings of a semantically meaningful condition hierarchy is
+ under development, for use in SB-EXT:MUFFLE-CONDITIONS and by
+ IDEs.
+ * fixed bug: PARSE-NAMESTRING now accepts any valid pathaname
+ designator as the defaults argument.
+ * fixed bug: Displaced arrays whose displaced-to array has become
+ too small now cause ARRAY-DIMENSION to signal an error, providing
+ for safer bounds-checking. (reported by Bruno Haible)
+ * fixed bug: DEFCLASS slot definitions with identical :READER and
+ :WRITER names now signal a reasonable error. (reported by Thomas
+ Burdick)
+ * fixed bug: CLOSE :ABORT T on appending stream no longer causes
+ file deletion.
+ * fixed bug: Invalid slot specification errors now print correctly.
+ (thanks to Zach Beane)
* fixed bug 320: Shared to local slot value transfers in class
redefinitions now happen corrently from superclasses as
well. (reported by Bruno Haible)
(reported by Antonio Menezes Leitao)
* fixed bug 307: The obsolete instance protocol ensures that
subclasses are properly obsoleted. (thanks to Nikodemus Siivola)
- * on X86 fixed bug 298, revealed by Paul F. Dietz' test suite: SBCL
- can remove dead unknown-values globs from the middle of the stack.
+ * fixed bug 298, revealed by Paul F. Dietz' test suite: SBCL can
+ remove dead unknown-values globs from the middle of the stack.
* added a new restart to *BREAK-ON-SIGNALS* handling to make it
easier to resume long computations after using *BREAK-ON-SIGNALS*
to diagnose and fix failures. (thanks to Nikodemus Siivola)
* fixed bug: as reported by Kalle Olavi Niemitalo on #lisp IRC,
don't warn on legal loop code involving more than one aggregate
boolean. (thanks to Nikodemus Siivola)
+ * fixed bug: as reported by Peter Graves on #lisp IRC, passing a NIL
+ in keyword position to MAKE-PACKAGE was not being reported as
+ invalid.
+ * fixed bug: as reported by Juan Ripoll on cmucl-imp,
+ MULTIPLE-VALUE-BIND should be able to lexically bind lambda list
+ keywords.
+ * fixed bugs 280 and 312: the checking for multiple definitions in a
+ file is less likely to become confused by uses of inline
+ functions.
+ * fixed bug: the #S reader macro performs the keyword coercion
+ specified for slot names. (reported by Kalle Niemitalo)
+ * fixed bug: lambda lists may contain symbols whose names start with
+ & but are not lambda-list-keywords; their occurrence triggers a
+ STYLE-WARNING.
+ * fixed bug 321: define-method-combination argument lambda lists do
+ not cause invalid code to be generated when &optional or &aux
+ variables have default values. (reported by Bruno Haible)
+ * fixed bug 327: system subclasses of STRUCTURE-OBJECT or CONDITION
+ have CLOS classes; this appears also to have fixed reported
+ instability in stack exhaustion detection.
+ * fixed bug: the CONTROL-ERROR from ABORT, CONTINUE and
+ MUFFLE-WARNING when no associated restart is present is now
+ printable.
* optimization: rearranged the expansion of various defining macros
so that each expands into only one top-level form in a
:LOAD-TOPLEVEL context; this appears to decrease fasl sizes by
approximately 10%.
+ * optimization: used a previously little-used slot in symbols to
+ cache SXHASH values, yielding a 5-10% compiler speedup. (thanks
+ to Juho Snellman)
* fixed some bugs revealed by Paul Dietz' test suite:
+ ** MAKE-INSTANCES-OBSOLETE returns the class name when called with
+ a symbol.
+ ** Fixed an optimization bug related to inheritance of initforms
+ from local to shared slots.
** FILE-POSITION works as specified on BROADCAST-STREAMs.
** CAST optimizer forgot to flush argument derived type.
** print/read consistency on floats is now orders of magnitude
** SXHASH is specified (infelicitously) to respect similarity,
which means that (SXHASH 0.0) must equal (SXHASH -0.0). Make
it so. (thanks to Markus Ziegler)
+ ** on the Alpha, the compiler succeeds in compiling functions
+ returning a known number of arguments greater than 63.
+ ** fixed handling of invalid NIL arguments in keyword position
+ in local calls.
+ ** fixed non-pretty printing of arrays with *PRINT-RADIX* being
+ true.
+ ** provided a readably-printable representation for RANDOM-STATE
+ objects.
+ ** ensured that pathnames, where they have a namestring, always
+ print using #P"..." syntax.
+
+changes in sbcl-0.8.12 relative to sbcl-0.8.11:
+ * minor incompatible change: the system no longer provides
+ optimization hints (conditions which are TYPEP
+ SB-EXT:COMPILER-NOTE) for conforming code in default compilation
+ mode; these hints are still emitted when higher SPEED optimization
+ is requested.
+ * new contrib module: a sampling profiler (profiling by statistical
+ sampling, rather than by instrumenting functions) is available as
+ the SB-SPROF contrib. (thanks to Gerd Moellmann and Juho Snellman)
+ * the behaviour of the standard function ED is now customizeable by
+ third parties through a hook variable: see ED's documentation
+ string for information on the protocol.
+ * the compiler no longer emits efficiency notes for (FUNCALL X)
+ when the type of X is uncertain under default optimization
+ settings.
+ * fixed bug 276: mutating a binding of a specialized parameter to a
+ method to something that is not TYPEP the specializer is now
+ possible.
+ * fixed bugs 45d and 118: DOUBLE-FLOAT[-NEGATIVE]-EPSILON now
+ exhibit the required behaviour on the x86 platform. (thanks to
+ Peter van Eynde, Eric Marsden and Bruno Haible)
+ * fixed bug 335: ATANH now computes the inverse hyperbolic tangent
+ even for difficult arguments. (reported by Peter Graves)
+ * fixed bug 141a: the backquote printer now descends quoted
+ structure.
+ * fixed another bug in backquote printing: no more destructive
+ modification of the form's list structure. (reported by Brian
+ Downing)
+ * fixed bug in INTERRUPT-THREAD: pin the function, so that it cannot
+ move between its address being taken and the call to
+ interrupt_thread, fixing a crashing race condition.
+ * the SB-POSIX contrib implementation has been adjusted so that it
+ no longer exhibits ridiculously poor performance when constructing
+ instances corresponding to C structs.
+
+changes in sbcl-0.8.13 relative to sbcl-0.8.12:
+ * new feature: SB-PACKAGE-LOCKS. See the "Package Locks" section of
+ the manual for details; add :SB-PACKAGE-LOCKS in
+ customize-target-features.lisp to enable them.
+ * minor incompatible change: as threatened around sbcl-0.8.0, the
+ home package of MOP-related symbols is now SB-MOP, not SB-PCL.
+ The symbols are also exported from SB-PCL for backwards
+ compatibility, but more so than before SB-PCL should be treated as
+ an implementation-internal package.
+ * the SB-SPROF contrib now works on (most) non-x86 architectures.
+ It is known as of this release not to work on the Alpha, however.
+ * fixed bug #338: instances of EQL-SPECIFIER are now valid type
+ designators and can hence be used with TYPEP.
+ * fixed bug #333: CHECK-TYPE now ensures that the type error
+ signalled, if any, has the right object to be accessed by
+ TYPE-ERROR-DATUM. (reported by Tony Martinez)
+ * fixed bug #340: SETF of VALUES obeys the specification in ANSI
+ 5.1.2.3 for multiple-value place subforms. (reported by Kalle
+ Olavi Niemetalo)
+ * fixed bug #334: programmatic addition of slots using specialized
+ methods on SB-MOP:COMPUTE-SLOTS works for :ALLOCATION :INSTANCE
+ and :ALLOCATION :CLASS slots.
+ * fixed a bug: #\Space (and other whitespace characters) are no
+ longer considered to be macro characters in standard syntax by
+ GET-MACRO-CHARACTER.
planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles