X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=6032c17653186fe47d20d7d5eb953a1b3b9230a5;hb=4ac6cacd9348b4c568106f82c3a0a4294f49b44e;hp=faea9195a78da925cfa3f149153029c4a489064e;hpb=42765fe1c5c3ae34ad199ffdead00c2fc4e8cddb;p=sbcl.git diff --git a/NEWS b/NEWS index faea919..6032c17 100644 --- 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) @@ -2018,6 +2028,11 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3: (reported by Rainer Joswig) * bug fix: ASH on an (UNSIGNED-BYTE 32) with a shift of -32 or lower no longer ever returns 1 instead of 0. (thanks to Lars Brinkhoff) + * 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. @@ -2026,10 +2041,38 @@ 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). * 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 @@ -2039,6 +2082,22 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3: ** optimizer for (EXPT X 0) did not work for X not of type FLOAT. ** (GCD 0 ) returned . ** LCM should return a non-negative integer. + ** PARSE-INTEGER returned the index of a terminator instead of the + 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