0.8.12.10: Fix bug 338: "MOP specializers as type specifiers"
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index f364f8b..9844abc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2250,6 +2250,9 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7:
     signals received, on the PowerPC platforms (both Linux and
     Darwin).  (thanks to Pierre Mai for pointing out the location of
     the error)
     signals received, on the PowerPC platforms (both Linux and
     Darwin).  (thanks to Pierre Mai for pointing out the location of
     the error)
+  * several fixes on OS X: The system now builds and runs cleanly on
+    Panther (10.3), and works around sigreturn bug (no more SIGFPEs).
+    (thanks to Brian Mastenbrook)
   * bug fix: DECODE-UNIVERSAL-TIME now accepts timezone arguments with
     second-resolution: integer multiples of 1/3600 between -24 and 24.
     (thanks to Vincent Arkesteijn)
   * bug fix: DECODE-UNIVERSAL-TIME now accepts timezone arguments with
     second-resolution: integer multiples of 1/3600 between -24 and 24.
     (thanks to Vincent Arkesteijn)
@@ -2310,6 +2313,266 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7:
     ** OPEN and WITH-OPEN-STREAM allow opening streams with
        element-type larger than ([UN]SIGNED-BYTE 32).
 
     ** OPEN and WITH-OPEN-STREAM allow opening streams with
        element-type larger than ([UN]SIGNED-BYTE 32).
 
+changes in sbcl-0.8.9 relative to sbcl-0.8.8:
+  * deprecation of old extension: *DEBUG-PRINT-LEVEL* and
+    *DEBUG-PRINT-LENGTH* are now deprecated in favor of the new, more
+    general SB-DEBUG:*DEBUG-PRINT-VARIABLE-ALIST* mechanism. (This
+    should matter to you only if you rebind the printer control
+    variables and then find you want different bindings in the 
+    debugger than in the ordinary execution of your program.)
+  * The runtime build system has been tweaked to support building
+    (on SPARC/SunOS) using a C compiler which invokes Sun's own
+    assembler and linker.  (thanks to Nikodemus Siivola)
+  * Unbound, undefined, undeclared variables now trigger full
+    WARNINGs, not just STYLE-WARNINGs, on the assumption that this is
+    more often programmer error than deliberate exploitation of undefined
+    behaviour.
+  * optimization: the hash algorithm for strings has changed to one
+    that is less vulnerable to spurious collisions.  (thanks to Juho
+    Snellman)
+  * optimization: VECTOR-POP, VECTOR-PUSH-EXTEND and REPLACE do less
+    needless bounds checking.  (thanks to Juho Snellman)
+  * optimization: implemented multiplication as a modular
+    (UNSIGNED-BYTE 32) operation on the PPC backend.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** ADJUST-ARRAY now copies the datum in a zero rank array if
+       required.
+    ** ADJUST-ARRAY no longer adjusts non-adjustable arrays.
+    ** MAKE-STRING-INPUT-STREAM accepts NIL as a value for :END.
+    ** MAKE-STRING-INPUT-STREAM functions correctly for strings with
+       element-type NIL.
+    ** CLEAR-INPUT accepts NIL and T for its (optional) stream
+       argument.
+    ** Ratios can now be printed correctly with *PRINT-BASE* bound to
+       2, 8 or 16.
+    ** ECHO-STREAMs no longer attempt to echo the end of file value to
+       their output stream on EOF from read.
+    ** CONCATENATED-STREAM-STREAMS discards constituent streams which
+       have been read to end-of-file.
+    ** CLOSE works as expected on the null CONCATENATED-STREAM, and on
+       STRING-STREAMS.
+    ** Printing symbols with *PRINT-CASE* :CAPITALIZE respects the
+       description of determination of which consecutive characters
+       constitute a word.
+    ** Printing the "Space" character with escaping on now yields "#\\ ", 
+       rather than "#\\Space", as mandated by ANSI 22.1.3.2.
+    ** Reading floating-point numbers with *READ-BASE* set to a number
+       less than 10 works correctly.
+    ** Reading floating-point numbers with *READ-BASE* set to a number
+       more than 10 works correctly.
+    ** Printing with *PRINT-READABLY* targets the standard readtable, not
+       the readtable currently in effect.
+
+changes in sbcl-0.8.10 relative to sbcl-0.8.9:
+  * Support for the forthcoming 2.0 version of the NetBSD kernel
+    running on x86 hardware has been added.  (thanks to Perry
+    E. Metzger most immediately, and others for their past work)
+  * SBCL now runs on OpenBSD 3.4. (Thanks to Scott Parish; 3.4 is the
+    current release version; SBCL's OpenBSD support had been broken 
+    since about the time of OpenBSD's switch to ELF binary format.)
+  * [placeholder for DX summary]
+    ** user code with &REST lists declared dynamic-extent, under high
+       speed or space and low safety and debug optimization policy.
+  * The manual has been converted to Texinfo format and the debugger
+    chapter from the cmucl manual has been added.
+  * A facility has been added to extract documentation strings from
+    sbcl and store them as Texinfo-formatted snippets for inclusion in
+    the manual (via Texinfo's @include directive)
+  * bug fix: compiler emitted division in optimized DEREF.  (thanks for
+    the test case to Dave Roberts)
+  * bug fix: multidimensional simple arrays loaded from FASLs had fill
+    pointers.  (reported by Sean Ross)
+  * bug fix: PROFILE output is printed nicely even for large numerical
+    values.  (thanks to Zach Beane)
+  * bug fix: streams with element-type (SIGNED-BYTE <N>) for <N>
+    greater than 32 handle EOF correctly.
+  * bug fix: on X86 an immediate argument of the IMUL instruction is
+    correctly printed in disassembly. (thanks to Lutz Euler)
+  * bug fix: class slots in redefined classes preserve their old
+    values.  (thanks to Bruno Haible and Nikodemus Siivola)
+  * bug fix: compilation of funcalls of CXX+R (e.g. CDDR) now
+    succeeds.  (reported by Marco Baringer)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** READ-SEQUENCE now works on ECHO-STREAMs.
+    ** RATIONALIZE works more according to its specification.  (thanks
+       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)
+  * 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 reported by PFD in lisppaste #747 (and Bruno Haible from
+    CLISP test suite): WRITE-TO-STRING is not constant-foldable.
+  * fixed bugs in COMPLEX type specifier: UPGRADED-COMPLEX-PART-TYPE
+    is now consistent with (COMPLEX <x>); bugs in treatment of COMPLEX
+    MEMBER and UNION types have likewise been fixed.  (thanks to Bruno
+    Haible)
+  * fixed a (fairly theoretical) bug in string printing: if
+    *PRINT-READABLY* is true, signal PRINT-NOT-READABLE if the string
+    does not have array-element-type equal to the most general string
+    type.
+  * fixed bug: SET-PPRINT-DISPATCH does not immediately resolve
+    function name. (thanks to Nikodemus Siivola)
+  * fixed bug: compile-time format string checker failed on
+    non-closed ~{.  (reported by Thomas F Burdick)
+  * 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:
+  * 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.
+  * new feature: SB-PACKAGE-LOCKS. See the fine manual for details,
+    add :SB-PACKAGE-LOCKS in customize-target-features.lisp to
+    enable them.
+  * 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 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
 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