0.8.21.38: fix bug 211e
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 4caf632..a5f3458 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,80 @@
+changes in sbcl-0.8.22 relative to sbcl-0.8.21:
+  * incompatible change: the --noprogrammer option, deprecated since
+    version 0.7.5, has been removed.  Please use the equivalent
+    --disable-debugger option instead.
+  * incompatible change: finalizers and *AFTER-GC-HOOKS* are now run with
+    interrupts enabled.
+  * incompatible change: support for *BEFORE-GC-HOOKS* (that have been
+    inoperational for a while now) has been completely removed.
+  * null lexical environments are now printed as #<NULL-LEXENV>, 
+    significantly reducing the amount of clutter in typical backtraces.
+  * documentation on weak pointers, finalization, and after GC hooks
+    has been added to the manual.
+  * optimization: REPLACE on declared (UNSIGNED-BYTE 8) vectors, as well
+    as other specialized array types, is much faster.  SUBSEQ and
+    COPY-SEQ on such arrays have also been sped up.
+  * fixed bug: the runtime is now less vulnerable to changes in the
+    size of the SBCL object on OS X, and virtual memory is reserved for
+    all spaces that need to be at a fixed address.
+  * fixed bug: finalizers are now thread-safe. (thanks to Gabor Mellis)
+  * fixed bug: finalizers and after GC hooks that cause consing are now
+    safe.
+  * fixed bug: compiler error messages and summaries are now printed to 
+    *ERROR-OUTPUT*, not *STANDARD-OUTPUT*.
+  * fixed inference of the upper bound of an iteration variable.
+    (reported by Rajat Datta).
+  * fixed bug 211e: calling local functions with duplicated constant
+    keyword argument no longer causes a bogus style warning about an
+    unused variable.
+  * fixed bug 305: INLINE/NOTINLINE declaration no longer causes local
+    ftype declaration to be disregarded. (reported by Dave Roberts)
+  * fixed bug 373: caused by erronous compilation of references to alien
+    variables in the runtime on ppc/darwin.
+  * fixed bug 376: CONJUGATE type deriver.
+  * fixed infinite looping of ALIEN-FUNCALL, compiled with high DEBUG.
+    (reported by Baughn on #lisp)
+  * a cross-compiler bug on non-x86 platforms has been identified and
+    fixed.  (thanks to Bruno Haible)
+  * improvements to the MIPS runtime code for increased stability.
+    (thanks to Thiemo Seufer)
+  * increased the maximimum compact environment size to allow
+    purify on images with large amounts of functions. (thanks to Cyrus Harmon)
+  * partial workaround for bug 135: don't name the function we're
+    calling for hairy cases of EVAL, so as not to accumulate one environment
+    entry per call to EVAL.  (reported by Kevin Reid)
+  * improvements to the x86-64 disassembler. (thanks to Lutz Euler)
+  * optimization: type testing for non-vector arrays should be faster.
+  * fixed TRACE :ENCAPSULATE NIL, added support for :ENCAPSULATE NIL
+    on x86-64
+  * bug fix: setting 31st element of a bit vector to zero did not work
+    on Alpha-32.
+  * fixed some bugs related to Unicode integration:
+    ** the restarts for recovering from input and output encoding
+       errors only appear when there is in fact such an error to
+       handle.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** MISC.549 and similar: late transformation of unsafe type
+       assertions into derived types caused unexpected code
+       transformations.
+    ** SCALE-FLOAT type deriver is less wrong.
+    ** type derivers for EXP, LOG and similar functions compute result
+       types for complex arguments better.
+    ** (MISC.563) CONJUGATE type deriver works for very restricted
+       complex types.
+    ** out-of-line type testers for character strings are available.
+    ** EQUAL compiler transform understands specialness of objects
+       of type BIT-VECTOR.
+    ** accessing double-floats stored on the stack now works on x86-64.
+    ** debugger internals could sometimes create invalid lispobjs, 
+       resulting in GC crashes.
+    ** MISC.548: type check weakening can convert required type into
+       optional.
+
 changes in sbcl-0.8.21 (0.9alpha.1?) relative to sbcl-0.8.20:
+  * incompatible change: thread support for non-NPTL systems has
+    been removed - locking is buggy and unreliable.  A threaded 
+    SBCL build will now warn at startup and refuse to create
+    new threads, unless futex support is detected in the kernel
   * incompatible change: the top level REPL now has only an ABORT
     restart associated with it, not TOPLEVEL and ABORT as it used to.
     TOP and TOPLEVEL are now available as debugger commands for 
@@ -9,6 +85,8 @@ changes in sbcl-0.8.21 (0.9alpha.1?) relative to sbcl-0.8.20:
     no longer processed with LOAD, but by READ and EVAL; hence the
     global optimization policy, startup package, readtable, etc, 
     can be set by them.
+  * The .fasl file format number has been incremented because of 
+    various incompatible changes.
   * internal entry point details and argument counts no longer appear
     in backtraces unless explicitly requested by setting
     SB-DEBUG:*SHOW-ENTRY-POINT-DETAILS*.
@@ -20,6 +98,12 @@ changes in sbcl-0.8.21 (0.9alpha.1?) relative to sbcl-0.8.20:
     are now more amenable to inspection by INSPECT.
   * workaround for bug 354: XEPs no longer appear in backtraces unless
     explicitly requested.
+  * fixed bug: receiving the signal which results from attempting to
+    write to mprotect()ed memory (SIGSEGV on Linux and some *BSDs,
+    SIGBUS on other *BSDs) on architectures where the C stack is also
+    the Lisp stack (x86 and x86-64) from foreign code no longer leads
+    to debugger confusion or wild instability.  (reported by Cheuksan
+    Wang)
   * fixed bug: COUNT and EQUAL no longer issue compiler efficiency
     notes when operating on objects known to be SIMPLE-BIT-VECTORs.
     (reported by Lutz Euler)
@@ -38,9 +122,16 @@ changes in sbcl-0.8.21 (0.9alpha.1?) relative to sbcl-0.8.20:
   * contrib improvement: SB-INTROSPECT handles more of SLIME's needs
     than previously; in addition, its test suite is now run on build.
     (thanks to Luke Gorrie)
-  * a more robust x86-64 disassembler. (thanks to Lutz Euler)    
+  * a more robust x86-64 disassembler. (thanks to Lutz Euler)
+  * optimization: added a immediate representation for single-floats 
+    on x86-64
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** MISC.564: defined out-of-line version of %ATAN2 on x86.
+    ** attempting to create a package with a colliding nickname causes
+       correctable errors to be signalled.
+    ** MISC.572-574: :START1 and :START2 broken for simple-base-strings.
+    ** several x86-64 backend bugs related to sign-extension of immediate
+       operands.
 
 changes in sbcl-0.8.20 (0.9alpha.0?) relative to sbcl-0.8.19:
   * fixed inspection of specialized arrays. (thanks to Simon Alexander)