0.8.0.78:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index dadddb3..e4f3f18 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1709,31 +1709,25 @@ changes in sbcl-0.8alpha.0 relative to sbcl-0.7.14
     ** :ALLOW-OTHER-KEYS NIL is now accepted in an initarg list.
 
 changes in sbcl-0.8.0 relative to sbcl-0.8alpha.0
     ** :ALLOW-OTHER-KEYS NIL is now accepted in an initarg list.
 
 changes in sbcl-0.8.0 relative to sbcl-0.8alpha.0
-  * SBCL now builds using CLISP (version of late April 2003 from CVS)
-    as cross-compilation host.
-  * a contributed module containing a partial implementation of the
+  * SBCL now builds using CLISP (version of late April 2003 from CVS) as
+    cross-compilation host. As a consequence, we can now bootstrap our
+    way up to SBCL starting with a bare gcc toolchain and human-readable
+    source code (first the source to CLISP, then the source to SBCL).
+  * A contributed module containing a partial implementation of the
     simple-streams interface has been included.  (thanks to Rudi
     Schlatte)
     simple-streams interface has been included.  (thanks to Rudi
     Schlatte)
-  * a contributed module implementing the RFC1321 Message Digest
+  * A contributed module implementing the RFC1321 Message Digest
     Algorithm, known as MD5, has been included.
     Algorithm, known as MD5, has been included.
-  * minor incompatible change: the :NEGATIVE-ZERO-IS-NOT-ZERO feature
+  * minor incompatible change: The :NEGATIVE-ZERO-IS-NOT-ZERO feature
     no longer has any effect, as the code controlled by this feature
     has been deleted.  (As far as we know, no-one has ever built using
     this feature, and its semantics were confused in any case).
     no longer has any effect, as the code controlled by this feature
     has been deleted.  (As far as we know, no-one has ever built using
     this feature, and its semantics were confused in any case).
-  * minor incompatible change: as a consequence of making
-    SLOT-EXISTS-P work on conditions (as required by the ANSI
-    specification), SLOT-VALUE, (SETF SLOT-VALUE) and SLOT-BOUNDP
-    likewise have the expected behaviour on conditions.  Users should
-    note, however, that such behaviour is not required by the ANSI
-    specification, and so use of this behaviour may render their code
-    unportable.
-  * SB-MOP:DIRECT-SLOT-DEFINITION-CLASS and
-    SB-MOP:EFFECTIVE-SLOT-DEFINITION-CLASS now have the
-    specified-by-AMOP lambda list of (CLASS &REST INITARGS).
-  * compiler checks for duplicated variables in macro lambda lists.
-  * fixed bug 47.d: (DEFGENERIC IF (X)) now signals a PROGRAM-ERROR,
-    not a COMPILER-ERROR (followed by some other strange error on
-    choosing the CONTINUE restart).
+  * minor incompatible change: As a consequence of making SLOT-EXISTS-P
+    work on conditions (as required by the ANSI specification),
+    SLOT-VALUE, (SETF SLOT-VALUE) and SLOT-BOUNDP likewise have the
+    expected behaviour on conditions.  Users should note, however,
+    that such behaviour is not required by the ANSI specification,
+    and so use of this behaviour may render their code unportable.
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** the GENERIC-FUNCTION type is no longer disjoint from FUNCTION
        types.
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** the GENERIC-FUNCTION type is no longer disjoint from FUNCTION
        types.
@@ -1751,15 +1745,146 @@ changes in sbcl-0.8.0 relative to sbcl-0.8alpha.0
        STRUCTURE-CLASS).
     ** SLOT-EXISTS-P now works on conditions, as well as structures
        and CLOS instances.
        STRUCTURE-CLASS).
     ** SLOT-EXISTS-P now works on conditions, as well as structures
        and CLOS instances.
+    ** MAKE-LOAD-FORM now has the required methods on
+       STRUCTURE-OBJECT, CONDITION and STANDARD-OBJECT.
+    ** MAKE-LOAD-FORM-SAVING-SLOTS no longer returns a special
+       keyword, and now implements the SLOT-NAMES argument.
+    ** methods with &OPTIONAL arguments no longer allow too many
+       arguments to be passed in the call without error.
+    ** DEFGENERIC now checks that the :ARGUMENT-PRECEDENCE-ORDER
+       option is consistent with the required arguments of the generic
+       function lambda list.
+  * bug fix: REQUIRE accepts a string designator. (Thanks to 
+    Antonio Martinez.)
+  * bug fix: SB-MOP:DIRECT-SLOT-DEFINITION-CLASS and
+    SB-MOP:EFFECTIVE-SLOT-DEFINITION-CLASS now have the
+    specified-by-AMOP lambda list of (CLASS &REST INITARGS).
+  * bug fix: The compiler now checks for duplicated variables in macro
+    lambda lists.
+  * bug fix: SETQ on globals returns the correct value.
+  * fixed bug 47.d: (DEFGENERIC IF (X)) now signals a PROGRAM-ERROR,
+    not a COMPILER-ERROR (followed by some other strange error on
+    choosing the CONTINUE restart).
+  * bug fix: make.sh and friends are now more consistent in the way that
+    they look for GNU "make".
+
+changes in sbcl-0.8.1 relative to sbcl-0.8.0:
+  * minor incompatible change: some nonsensical specialized lambda
+    lists (used in DEFMETHOD) which were previously ignored now signal
+    errors.
+  * minor incompatible change: the system is now aware of the types of
+    variables in the COMMON-LISP package, and will signal errors for
+    most violations of these type constraints (where previously they
+    were silently accepted).
+  * minor incompatible change: COMPILE-FILE now uses the freedom
+    afforded (ANSI 3.2.2.3) to use derived function types for
+    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
+    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:
+    ** 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
+    increased the number of situations when SBCL cannot perform type
+    checking).
+  * fixed bug in DEFSTRUCT: once again, naming structure slots with
+    keywords or constants is permissible.
+  * STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE now have methods
+    defined on the relevant FUNDAMENTAL-BINARY-{INPUT,OUTPUT}-STREAM
+    classes.  (thanks to Antonio Martinez)
+  * improved ANSIness in DESCRIBE: The DESCRIBE function no longer
+    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
+    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
+    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).
+  * 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
+    being compiled no longer causes an unhandled error at compile
+    time, but signals a compile-time warning.
+  * 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)
+  * 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
+       circumstances in LOOP for-as-arithmetic clauses.
+    ** 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
+       five methods all of which return constants no longer return NIL
+       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
+       object.
+    ** DISASSEMBLE works with closures and funcallable instances.
+    ** 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.
+    ** TYPE-OF returns recognizeable subtypes of all built-in-types of
+       which its argument is a member.
+    ** DEFCLASS only redefines the class named by its class-name
+       argument if that name is the proper name of the class;
+       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.
 
 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
-    down, maybe in 0.7.x, maybe later, it might impact TRACE. They both
-    encapsulate functions, and it's not clear yet how e.g. UNPROFILE
-    will interact with TRACE
-    and UNTRACE. (This shouldn't matter, though, unless you are
-    using profiling. If you never profile anything, TRACE should
-    continue to behave as before.)
+    down, it might impact TRACE. They both encapsulate functions, and
+    it's not clear yet how e.g. UNPROFILE will interact with TRACE
+    and UNTRACE. (This shouldn't matter, though, unless you are using
+    profiling. If you never profile anything, TRACE should continue to
+    behave as before.)
   * (not done yet, but planned:) Inlining can now be controlled the
     ANSI way, without MAYBE-INLINE, since the idiom
        (DECLAIM (INLINE FOO))
   * (not done yet, but planned:) Inlining can now be controlled the
     ANSI way, without MAYBE-INLINE, since the idiom
        (DECLAIM (INLINE FOO))