0.8.3.89:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index a6c9ad7..3c801ad 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2002,6 +2002,16 @@ changes in sbcl-0.8.3 relative to sbcl-0.8.2:
     obscure ANSI requirements
 
 changes in sbcl-0.8.4 relative to sbcl-0.8.3:
+  * incompatible change: The --disable-debugger command line
+    option now clobbers the debugger at a more fundamental
+    level, by redefining #'INVOKE-DEBUGGER instead of by 
+    rebinding *DEBUGGER-HOOK*. The main difference is that BREAK
+    is specified by ANSI to ignore *DEBUGGER-HOOK* and
+    INVOKE-DEBUGGER regardless. Under the old system, BREAK would
+    enter the debugger REPL and then suffer recursive errors
+    because *DEBUG-IO* is also messed up in --disable-debugger mode;
+    while under the new system, BREAK in --disable-debugger mode
+    terminates the system just as an unhandled error would.
   * fixed compiler performance when processing loops with a step >1;
   * bug fix: DOCUMENTATION now retrieves generic function
     documentation.  Also, DOCUMENTATION and (SETF DOCUMENTATION)
@@ -2021,6 +2031,8 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3:
   * fixed bug 285: TRUNCATE on bignum arguments, and indeed bignum
     arithmetic in general, is now much more reliable on the PPC
     platform.
+  * bug fix: LOGCOUNT on (UNSIGNED-BYTE 64) objects on the Alpha platform
+    now returs the right answer.
   * optimization: restored some effective method precomputation in
     CLOS (turned off by an ANSI fix in sbcl-0.8.3); the amount of
     precomputation is now tunable.
@@ -2029,12 +2041,42 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3:
     performance of the compiler by about 20%.
   * optimization: performance of FILL (and :INITIAL-ELEMENT) on
     simple-base-strings and simple-bit-vectors is improved.
+  * optimization: the optimization of 32-bit logical and arithmetic
+    functions introduced in version 0.8.3 on the x86 has been
+    implemented on the mips, ppc and sparc platforms; an
+    implementation of the same facility, but for 64-bit arithmetic,
+    has been added for the alpha.
   * microoptimization: the compiler is better able to make use of the
     x86 LEA instruction for multiplication by constants.
   * bug fix: in some situations compiler did not report usage of
     generic arithmetic in (SPEED 3) policy.
   * bug 145b fix: compiler used wrong type specifier while converting
     MEMBER-types to numeric.
+  * bug fix: COMPILE-FILE must bind *READTABLE*. (reported by Doug
+    McNaught)
+  * bug fix: (SETF AREF) on byte-sized-element arrays with constant index
+    argument now works properly on the Alpha platform.
+  * bug fix: floating point exception treatment on the Alpha platform
+    is improved.
+  * bug fix: FILE-POSITION works much better on string input and output
+    streams.  (thanks to Nikodemus Siivola)
+  * bug fix: many threading/garbage collection symptoms sorted.  
+    SB-THREAD:INTERRUPT-THREAD now safe to call on a thread that might
+    be pseudo-atomic  
+  * internal change: Stopping for GC is now done with signals not ptrace.
+    GC is now done in whichever thread wanted it, instead of in the parent.  
+    This permits a
+  * bug fix: GC hooks (missing since 0.8) reinstated, so finalizers 
+    work again.
+  * bug fix: result form in DO is not contained in the implicit
+    TAGBODY.
+  * incompatible change: ICR structure is changed; the value part of
+    CONTINUATION is now called LVAR; corresponding functions are
+    renamed (e.g. SB-C::CONTINUATION-TYPE has become SB-C::LVAR-TYPE).
+  * added type deriver for ISQRT (thanks to Robert E. Brown).
+  * bug fix: better support for loading from the command line when an
+    initialization file sets (READTABLE-CASE *READTABLE*).  (thanks to
+    Adam Warner)
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** the RETURN clause in LOOP is now equivalent to DO (RETURN ...).
     ** ROUND and FROUND now give the right answer when given very
@@ -2048,6 +2090,18 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3:
        upper bounding index of a substring in case :JUNK-ALLOWED NIL.
     ** PARSE-INTEGER returned an incorrect index being applied to a
        displaced string.
+    ** LCM with two arguments of 0 returns 0 rather than signalling
+       DIVISION-BY-ZERO.
+    ** unsigned addition of a 32-bit constant with the high bit set no
+       longer causes an internal compiler error on the x86.
+    ** LOGBITP accepts a non-negative bignum as its INDEX argument.
+    ** compiler incorrectly derived types of DPB and DEPOSIT-FIELD
+       with negative last argument.
+    ** byte specifiers with zero size and position no longer cause
+       an error during type derivation.
+    ** bignum multiplication on the Alpha platform now returns the
+       right answer.
+  * builds on SuSE AMD64, although still generates a 32-bit binary.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles