0.7.9.29:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index f8da51f..01fdb25 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1255,6 +1255,8 @@ changes in sbcl-0.7.8 relative to sbcl-0.7.7:
     based on the old CMUCL backend, has been made.  It has been tested
     on a big-endian kernel, and works sufficiently well to be able to
     rebuild itself; it has not been tested in little-endian mode.
+  * fixed an inconsistency between gencgc.c and purify.c which made
+    dumping/loading .core files unreliable
   * fixed bug 120a: The compiler now deals correctly with IFs where
     the consequent is the same as the alternative, instead of
     misderiving the return type. (thanks to Alexey Dejneka)
@@ -1268,15 +1270,115 @@ changes in sbcl-0.7.8 relative to sbcl-0.7.7:
     (thanks to Alexey Dejneka)
   * fixed several bugs in PCL's error checking (thanks to Gerd
     Moellmann)
-  * fixed bug in printing of FILE-ERROR (thanks to Antonio
+  * fixed bug: printing of FILE-ERROR (thanks to Antonio
     Martinez-Shotton)
   * fixed bug in compilation of functions as first class values
     (thanks to Antonio Martinez-Shotton)
   * The compiler's handling TYPE-ERRORs which it can prove will
     inevitably happen at runtime has been cleaned up and corrected
     in several ways. (thanks to Alexey Dejneka)
+  * improved argument type checking for various basic arithmetic
+    operations (MAX, +, LOGXOR, etc.) which have had so much TLC
+    lavished on them in the past that they can be compiled in many
+    ways in different special cases
   * fixed bug 181: compiler checks validity of user supplied type
     specifiers
+  * cleaned up code flushing in optimization: Function calls which
+    should signal errors for safety purposes (e.g. which ANSI says
+    should signal errors when their arguments are of incorrect type)
+    are no longer optimized away.
+  * added new extension: SB-DEBUG:BACKTRACE-AS-LIST
+  * incremented fasl file version number, because changes in the
+    implementation of sequence functions like COERCE caused 
+    internal utility functions like COERCE-TO-SIMPLE-VECTOR (used
+    in old inline expansions) to become undefined. (Actually these
+    changes were later undone, so we might very well be binary
+    compatible with 0.7.7 after all, but leaving the version number
+    incremented seemed like the simplest and most conservative
+    thing to do.)
+
+changes in sbcl-0.7.9 relative to sbcl-0.7.8:
+  * minor incompatible change: The runtime (the Unix executable named
+    "sbcl") is now much pickier about the .core files it will load.
+    Essentially it now requires .core files to descend from the same
+    build (not just the same sources or LISP-IMPLEMENTATION-VERSION)
+    as the runtime does. (The intent is to prevent the crashes which
+    can occur, and which can even be reported as mysterious failures,
+    when people patch the sources or change the build parameters
+    without changing LISP-IMPLEMENTATION-VERSION, then mix and match
+    sbcl and .core files.)
+  * fixed bug: VALUES-LIST is no longer optimized away.
+  * fixed bug 142: The FFI conversion of C string values to Lisp
+    string values no longer conses excessively. (thanks to Nathan
+    Froyd porting Raymond Toy's fix to CMU CL)
+  * began to systematize and improve MOP conformance in PCL (thanks to
+    Nathan Froyd, Gerd Moellman and Pierre Mai):
+    ** SLOT-DEFINITION-ALLOCATION now returns :CLASS, not the class
+       itself;
+    ** GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER is now implemented;
+    ** FINALIZE-INHERITANCE is now called on class finalization;
+    ** DOCUMENTATION and (SETF DOCUMENTATION) now have the correct
+       argument precedence order.
+  * fixed bug 202: The compiler no longer fails on functions whose
+    derived types contradict their declared type.
+  * DEFMACRO is implemented via EVAL-WHEN instead of IR1 translation,
+    so it can be non-toplevel.
+  * The fasl file version number has changed (because of the new
+    implementation of DEFMACRO).
+  * (mostly) fixed bugs 46b and 46c: sequence functions now check, in
+    safe code, that any length requirement by their type-specifier
+    argument is valid.  The exceptions to this are described in bug
+    213.
+  * fixed bugs 46h and 46i: TWO-WAY- and CONCATENATED-STREAM creation
+    functions now check the types of their inputs as required by ANSI.
+  * fixed bug 48c: SYMBOL-MACROLET signals PROGRAM-ERROR when an
+    introduced symbol is DECLAREd to be SPECIAL.
+  * fixed reading of (COMPLEX DOUBLE-FLOAT) literals from fasl files
+  * fixed bug: :COUNT argument to sequence functions may be negative
+  * fixed bug: body of DO-SYMBOLS may contain declarations
+  * fixed bug: PUSHNEW now evaluates its arguments from left to right
+    (reported by Paul F. Dietz, fixed by Gerd Moellman)
+  * fixed bug: PUSH, PUSHNEW and POP now evaluate a place given by a
+    symbol macro only once
+  * fixed printing of call frame when argument list is unavailable
+  * fixed bug: :ALLOW-OTHER-KEYS is an allowed keyword name
+  * compiler no longer signals WARNING on unknown keyword
+    :ALLOW-OTHER-KEYS
+
+changes in sbcl-0.7.10 relative to sbcl-0.7.9:
+  * minor incompatible change: PCL now records the pathname of a file
+    in which methods and the like are defined, rather than its
+    truename.
+  * more systematization and improvement of CLOS and MOP conformance
+    in PCL (thanks to Gerd Moellman and Pierre Mai):
+    ** the standard ANSI CL generic function NO-NEXT-METHOD is now
+       implemented;
+    ** DEFINE-METHOD-COMBINATION no longer signals an error for
+       primary methods with no specializers;
+    ** the MOP generic function GENERIC-FUNCTION-DECLARATIONS is now
+       implemented;
+    ** the Readers for Class Metaobjects methods CLASS-DIRECT-SLOTS
+       and CLASS-DIRECT-DEFAULT-INITARGS have been implemented for
+       FORWARD-REFERENCED-CLASSes; error reporting on
+       CLASS-DEFAULT-INITARGS, CLASS-PRECEDENCE-LIST and CLASS-SLOTS
+       has been improved;
+  * fixed some bugs, shown by Paul Dietz' test suite:
+    ** DOLIST puts its body in TAGBODY
+    ** SET-EXCLUSIVE-OR sends arguments to :TEST function in the
+       correct order
+    ** MULTIPLE-VALUE-SETQ evaluates side-effectful places before
+       value producing form
+    ** if more variables are given to PROGV than values, extra
+       variables are bound and made to have no value
+    ** NSUBSTITUTE on list arguments gets the right answer with
+       :FROM-END
+    ** ELT signals an error of type TYPE-ERROR when the index argument
+       is not a valid sequence index;
+  * fixed bug 166: compiler preserves "there is a way to go"
+    invariant when deleting code.
+  * fixed bug 172: macro lambda lists with required arguments after
+    &REST arguments now cause an error to be signalled.  (thanks to
+    Matthew Danish)
 
 planned incompatible changes in 0.7.x:
 * When the profiling interface settles down, maybe in 0.7.x, maybe