0.8.0.64
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index b140ecf..02d68b4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1766,7 +1766,7 @@ changes in sbcl-0.8.0 relative to sbcl-0.8alpha.0
     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 for GNU "make".
+    they look for GNU "make".
 
 changes in sbcl-0.8.1 relative to sbcl-0.8.0:
   * minor incompatible change: some nonsensical specialized lambda
@@ -1776,19 +1776,55 @@ changes in sbcl-0.8.1 relative to sbcl-0.8.0:
     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.)
   * 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.
+  * 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 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
@@ -1797,6 +1833,24 @@ changes in sbcl-0.8.1 relative to sbcl-0.8.0:
        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
+       six 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.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles