0.8.12.16:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 4cc9d18..b44b189 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2398,13 +2398,49 @@ changes in sbcl-0.8.10 relative to sbcl-0.8.9:
        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)
+  * fixed bug 316: SHIFTF now accepts VALUES forms. (reported by Bruno
+    Haible)
+  * fixed bug 322: DEFSTRUCT :TYPE LIST type predicates now handle
+    improper lists correctly. (reported by Bruno Haible)
   * fixed bug 313: source-transform for <fun-name> was erroneously
     applied to a call of a value of a variable with name <fun-name>.
     (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)
@@ -2425,17 +2461,124 @@ changes in sbcl-0.8.11 relative to sbcl-0.8.10:
   * 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
        more likely.  (thanks also to Bruno Haible for a similar report
        and discussions)
-   
+    ** removed stack cleaning in the cleanup part of UNWIND-PROTECT.
+    ** IMAGPART is specified (infelicitously) to return (* 0 <thing>)
+       for objects of type REAL.  Make it so.
+    ** 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
     down, it might impact TRACE. They both encapsulate functions, and