0.8.1.51:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index cda9759..176d786 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1781,12 +1781,21 @@ changes in sbcl-0.8.1 relative to sbcl-0.8.0:
     functions defined in the same file. This also permits the system
     to warn on static type mismatches and function
     redefinition.  (Currently it does not work with high DEBUG level.)
     functions defined in the same file. This also permits the system
     to warn on static type mismatches and function
     redefinition.  (Currently it does not work with high DEBUG level.)
-  * changes in type checking closed the following bugs:
+  * minor incompatible change: VALUES declaration is disabled.
+  * When issuing notes, the compiler now signals a condition of type
+    SB-EXT:COMPILER-NOTE, and provides an associated MUFFLE-WARNING
+    restart for use in user handlers.  It is expected that the
+    COMPILER-NOTE condition will eventually become a condition
+    supertype to a hierarchy of note types, which will then be
+    handleable in a similar fashion. However, at the moment, no such
+    note subtypes yet exist. (SB-INT:SIMPLE-COMPILER-NOTE exists,
+    but it's an implementation detail, not a classification for the
+    purpose above.)
+  * Changes in type checking closed the following bugs:
     ** type checking of unused values (192b, 194d, 203);
     ** template selection based on unsafe type assertions (192c, 236);
     ** type checking in branches (194bc).
     ** type checking of unused values (192b, 194d, 203);
     ** template selection based on unsafe type assertions (192c, 236);
     ** type checking in branches (194bc).
-  * VALUES declaration is disabled.
-  * a short form of VALUES type specifier has ANSI meaning (it has
+  * A short form of VALUES type specifier has ANSI meaning (it has
     increased the number of situations when SBCL cannot perform type
     checking).
   * fixed bug in DEFSTRUCT: once again, naming structure slots with
     increased the number of situations when SBCL cannot perform type
     checking).
   * fixed bug in DEFSTRUCT: once again, naming structure slots with
@@ -1798,59 +1807,63 @@ changes in sbcl-0.8.1 relative to sbcl-0.8.0:
     outputs FRESH-LINE or TERPRI, and no longer converts its stream
     argument to a pretty-print stream. Instead, it leaves any such 
     operations to DESCRIBE-OBJECT methods.
     outputs FRESH-LINE or TERPRI, and no longer converts its stream
     argument to a pretty-print stream. Instead, it leaves any such 
     operations to DESCRIBE-OBJECT methods.
-  * bug fix: APROPOS now respects the EXTERNAL-ONLY flag.  (reported
+  * bug fix: APROPOS now respects the EXTERNAL-ONLY flag. (reported
     by Teemu Kalvas)
   * bug fix: NIL is now a valid destructuring argument in DEFMACRO
     by Teemu Kalvas)
   * bug fix: NIL is now a valid destructuring argument in DEFMACRO
-    lambda lists.  (thanks to David Lichteblau)
-  * bug fix: defining a generic function with a :METHOD-CLASS being a
+    lambda lists. (thanks to David Lichteblau)
+  * bug fix: Defining a generic function with a :METHOD-CLASS being a
     subclass of STANDARD-METHOD no longer causes stack exhaustion.
     (thanks to Gerd Moellmann)
   * fixed bug 246: increased compilation speed of long
     MULTIPLE-VALUE-BIND (and likewise of NTH-VALUE with a constant
     subclass of STANDARD-METHOD no longer causes stack exhaustion.
     (thanks to Gerd Moellmann)
   * fixed bug 246: increased compilation speed of long
     MULTIPLE-VALUE-BIND (and likewise of NTH-VALUE with a constant
-    integer argument).
+    integer argument)
   * a contributed module implementing COMPILER-LET and MACROEXPAND-ALL
     has been included.
   * DEFCONSTANT now throws a condition of type
     SB-EXT:DEFCONSTANT-UNEQL if it is being asked to redefine a
     constant to a non-EQL value; CONTINUE and ABORT restarts
   * a contributed module implementing COMPILER-LET and MACROEXPAND-ALL
     has been included.
   * DEFCONSTANT now throws a condition of type
     SB-EXT:DEFCONSTANT-UNEQL if it is being asked to redefine a
     constant to a non-EQL value; CONTINUE and ABORT restarts
-    respectively change and preserve the value.
-  * fixed bug 63: the code walker, part of the implementation of CLOS,
-    is better at handling symbol macros.
-  * bug fix: there is no longer a type named LENGTH.  (reported by
-    Raymond Toy)
-  * bug fix: in macro-like defining macros/special operators the
-    implicit block does not enclose lambda list.
-  * fixed bugs 10 and 43: VALUES, AND, OR and MEMBER are not suitable as 
-    atomic type specifiers, and their use properly signals an error now.
-  * bug fix: an argument count mismatch for a type specifier in code
+    respectively change and preserve the value. 
+  * fixed bug 63: The code walker, part of the implementation of CLOS,
+    is now better at handling symbol macros.
+  * bug fix: There is no longer an internal implementation type named
+    CL:LENGTH. (reported by Raymond Toy)
+  * bug fix: In macro-like defining macros/special operators the
+    implicit block does not enclose the lambda list.
+  * fixed bugs 10 and 43: Bare VALUES, AND, OR and MEMBER symbols (not
+    enclosed in parentheses) are not suitable as type specifiers, and
+    their use properly signals an error now.
+  * bug fix: An argument count mismatch for a type specifier in code
     being compiled no longer causes an unhandled error at compile
     time, but signals a compile-time warning.
     being compiled no longer causes an unhandled error at compile
     time, but signals a compile-time warning.
-  * fixed simple vector readable printing.
+  * fixed simple vector readable printing
   * bug fix: DESCRIBE takes more care over whether the class
     precedence list slot of a class is bound before accessing it.
     (reported by Markus Krummenacker)
   * bug fix: FORMATTER can successfully compile pretty-printer format
     strings which use variants of the ~* directive inside.
   * bug fix: SEARCH now applies its TEST predicate to the elements of
   * bug fix: DESCRIBE takes more care over whether the class
     precedence list slot of a class is bound before accessing it.
     (reported by Markus Krummenacker)
   * bug fix: FORMATTER can successfully compile pretty-printer format
     strings which use variants of the ~* directive inside.
   * bug fix: SEARCH now applies its TEST predicate to the elements of
-    the arguments in the correct order.  (thanks to Wolfhard Buss)
+    the arguments in the correct order. (thanks to Wolfhard Buss)
+  * fixed bug 235b: The compiler uses return types of MAPCAR and friends
+    in type inference. (thanks to Robert E. Brown)
+  * bug fix: Reading in symbols with an explicit package name of ""
+    (e.g. '||::FOO) now works correctly.  (reported by Henrik Motakef)
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** NIL is now allowed as a structure slot name.
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** NIL is now allowed as a structure slot name.
-    ** arbitrary numbers, not just reals, are allowed in certain
+    ** Arbitrary numbers, not just REALs, are allowed in certain
        circumstances in LOOP for-as-arithmetic clauses.
        circumstances in LOOP for-as-arithmetic clauses.
-    ** multiple class redefinitions before slot access no longer
+    ** Multiple class redefinitions before slot access no longer
        causes a type error.
     ** (SETF FIND-CLASS) now accepts NIL as an argument to remove the
        association between the name and a class.
        causes a type error.
     ** (SETF FIND-CLASS) now accepts NIL as an argument to remove the
        association between the name and a class.
-    ** generic functions with non-standard method-combination and over
+    ** Generic functions with non-standard method-combination and over
        five methods all of which return constants no longer return NIL
        five methods all of which return constants no longer return NIL
-       after the first few invocations.  (thanks to Gerd Moellmann)
+       after the first few invocations. (thanks to Gerd Moellmann)
     ** CALL-NEXT-METHOD with no arguments now passes the original
        values of the arguments, even in the presence of assignment.
     ** CALL-NEXT-METHOD with no arguments now passes the original
        values of the arguments, even in the presence of assignment.
-    ** functions [N]SUBST*, LAST, NRECONC, [N]SUBLIS may return any
+    ** Functions [N]SUBST*, LAST, NRECONC, [N]SUBLIS may return any
        object.
     ** DISASSEMBLE works with closures and funcallable instances.
        object.
     ** DISASSEMBLE works with closures and funcallable instances.
-    ** ADD-METHOD now returns the generic function, not the new
-       method.
+    ** ADD-METHOD now returns the generic function, not the new method.
     ** FIND-METHOD signals an error if the lengths of the specializers
        is incompatible with the generic function, even if the ERRORP
        argument is true.
     ** FIND-METHOD signals an error if the lengths of the specializers
        is incompatible with the generic function, even if the ERRORP
        argument is true.
@@ -1861,6 +1874,66 @@ changes in sbcl-0.8.1 relative to sbcl-0.8.0:
        otherwise, it creates a new class.
     ** SLOT-UNBOUND now correctly initalizes the CELL-ERROR-NAME slot
        of the UNBOUND-SLOT condition to the name of the slot.
        otherwise, it creates a new class.
     ** SLOT-UNBOUND now correctly initalizes the CELL-ERROR-NAME slot
        of the UNBOUND-SLOT condition to the name of the slot.
+    ** (SETF (AREF bv 0) ...) did not work for bit vectors.
+    ** SLOT-UNBOUND and SLOT-MISSING now have their return values
+       treated by SLOT-BOUNDP, SLOT-VALUE, (SETF SLOT-VALUE) and
+       SLOT-MAKUNBOUND in the specified fashion.
+
+changes in sbcl-0.8.2 relative to sbcl-0.8.1:
+  * fixed bug 148: failure to inline-expand a local function left
+    garbage, confusing the compiler.
+  * fixed bugs 3cd: structure slot readers perform type check if the
+    slot can have an invalid value (i.e. it is either not initialized
+    or can be written with a less specific slot writer).
+  * bug fix: the compiler now traps array references to elements off
+    the end of an array; previously, the bounds checking in some
+    circumstances could go off-by-one.
+  * improved MACHINE-VERSION, especially on Linux (thanks to Lars
+    Brinkhoff)
+  * type declarations for array element types now obey the description
+    on the CLHS page "Declaration TYPE", as per discussions on
+    sbcl-help around 2003-05-08.  This means that a declaration 
+    (TYPE (ARRAY FOO) BAR) means that, within the scope of the
+    declaration, all references to BAR will be asserted or assumed
+    (with THE, so dependent on compiler policy) to involve objects of
+    type FOO.  Note that no such declaration is implied in 
+    (MAKE-ARRAY .. :ELEMENT-TYPE 'FOO).
+  * declared types of functions from the "Conditions"
+    chapter. (reported by Paul Dietz)
+  * bug fix: CERROR accepts a function as its first argument.
+  * bug fix: NTH an NTHCDR accept a bignum as index
+    arguments. (reported by Adam Warner)
+  * optimization: character compare routines now optimize comparing
+    against a constant character. (reported by Gilbert Baumann)
+  * bug fix: (SETF AREF) on byte-sized-element arrays with constant index
+    argument now works properly on the MIPS platform.
+  * fixed compiler failure on (TYPEP x '(NOT (MEMBER 0d0))).
+  * repeated evaluation of the same DEFSTRUCT, a slot of which is
+    declared to have a functional type, does not cause an error
+    anymore.
+  * fixed bug: sometimes MAKE-INSTANCE did not work with classes with
+    many :DEFAULT-INITARGS. (reported by Istvan Marko)
+  * fixed bug: if last continuation of a deleted block has a
+    destination, this destination should be deleted too. (reported by
+    ohler on #lisp)
+  * fixed a bug in the bootstrap process: the host compiler's values
+    of ARRAY-DIMENSION-LIMIT and ARRAY-TOTAL-SIZE-LIMIT no longer leak
+    into the newly-built SBCL. (reported by Eric Marsden on #lisp,
+    test case from Patrik Nordebo)
+  * improved the ability of the disassembler on the PPC platform to
+    provide helpful disassembly notes.
+  * SB-MOP:CLASS-PROTOTYPE on built-in-classes returns an instance of
+    the class in more cases than previously.
+  * bug fix: FILE-POSITION now understands :START and :END for
+    STRING-INPUT-STREAMs.  (thanks to Nikodemus Siivola)
+  * bug fix: (SIGNED-BYTE 8) streams no longer return (UNSIGNED-BYTE
+    8) data.  (thanks to David Lichteblau)
+  * bug fix: it is possible to add a method to a generic function
+    without lambda list.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** LAST and [N]BUTLAST should accept a bignum.
+    ** condition slot accessors are methods.
+    ** (VECTOR NIL) is a subtype of STRING.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles