0.8.1.51:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index d349adc..176d786 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1781,20 +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.)
-  * when issuing notes, the compiler now signals a condition of type
+  * 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; other than
-    SB-INT:SIMPLE-COMPILER-NOTE, an implementation detail, no such
-    note subtypes yet exist.
-  * changes in type checking closed the following bugs:
+    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).
-  * 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
@@ -1806,63 +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.
-  * 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
-    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
-    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
-    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.
-  * 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
-    the arguments in the correct order.  (thanks to Wolfhard Buss)
-  * fixed bug 235b: 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 corectly.  (reported by Henrik Motakef)
+    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.
-    ** 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.
-    ** 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.
-    ** 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
-       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.
-    ** 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.
-    ** 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.
@@ -1874,6 +1875,65 @@ changes in sbcl-0.8.1 relative to sbcl-0.8.0:
     ** 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