X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=9003e89b33df80ae874e11afd38027b31055b85f;hb=f1bdcc53c89cebda2169529111c7f20251a1afec;hp=88027228867cc801075e6a4dab5fadff548ef07f;hpb=eb105cf1d0fdb3769fea9f7a4df29ce82e93189b;p=sbcl.git diff --git a/NEWS b/NEWS index 8802722..9003e89 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) @@ -2013,20 +2023,197 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3: combination. (reported by Andreas Fuchs) * bug fix: RUN-PROGRAM now does not fail if some element in $PATH names a non-existent directory. (thanks to Andreas Fuchs) + * bug fix: ROUND and TRUNCATE could, under certain circumstances on + the PPC platform, lead to stack corruption; this has been fixed. + (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 returns 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. * optimization: compiler-internal data structure use has been reviewed, and changes have been made that should improve the 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. + * 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 small float arguments. + ** (FLOAT X) for X of type DOUBLE-FLOAT now returns X in all + circumstances. + ** 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. + * porting: The system now builds on SuSE AMD64, although it still + generates a 32-bit binary. + * .fasl file incompatibility: The fasl file version number has + been incremented (because of the changes to internal compiler + data structures referred to above). + +changes in sbcl-0.8.5 relative to sbcl-0.8.4: + * New code in contrib/sb-introspect (still probably not entirely + stable yet) provides some support for smart Lisp development + environments like SLIME. + * The conditions signalled for errors occurring when loading .fasl + files have been systematized (inheriting from SB-EXT:INVALID-FASL) + in a way which should help ASDF recover gracefully. + * The REQUIRE/PROVIDE behavior of *MODULE-PROVIDER-FUNCTIONS* + stuff has been cleaned up. If you code contrib/ stuff, this might + affect you, and you can look at contrib/README, contrib/STANDARDS, + and/or the 0.8.4.27 diff to check. + * In full calls the compiler now does not generate checks for declared + argument types for all arguments. + * various threading fixes + ** and some experimental patches which didn't make it into + the main tree for this release, but which are shipped in + contrib/experimental-thread.patch as a possible fix for some + failures (deadlock, spinning...) in GC-intensive multithreaded + applications. + * fixed PPC build problem (source code incompatibility of different + library versions): added offsetof() hackery which attempts to divine + where glibc maintainers put uc_mcontext today + * fixed bug 282: compiler does not trust type assertions while passing + arguments to a full call. + * fixed bug 261: compiler allows NIL or "no value" to be accepted for + &OPTIONAL VALUES type parameter. + * fix bug 214: algorithm for noting rejected templates is now more + similar to that of template seletion. (also reported by rydis on + #lisp) + * fixed bug 141b: printing backquoted information readably and prettily + inserts a space where necessary. + * bug fix: obviously wrong type specifiers such as (FIXNUM 1) or + (CHARACTER 10) are now reported as errors, rather than propagated + as unknown types. (reported by piso on #lisp) + * bug fix: the :IF-EXISTS argument to OPEN now behaves correctly + with values NIL and :ERROR. (thanks to Milan Zamazal) + * fixed bug 191c: CLOS now does proper keyword argument checking as + described in CLHS 7.6.5 and 7.6.5.1. + * bug fix: LOOP forms using NIL as a for-as-arithmetic counter no + longer raise an error; further, using a list as a for-as-arithmetic + counter now raises a meaningful error. + * fixed bug 213a: even fairly unreasonable CONS type specifiers are + now understood by sequence creation functions such as MAKE-SEQUENCE + and COERCE. + * fixed bug 46k: READ-BYTE now signals an error when asked to read from + a STRING-INPUT-STREAM. + * compiler enhancement: SIGNUM is now better able to derive the type + of its result. + * type declarations inside WITH-SLOTS are checked. (reported by + salex on #lisp) + * fixed some bugs revealed by Paul Dietz' test suite: + ** incorrect optimization of TRUNCATE for a positive first + argument and negative second. + ** compiler failure in let-convertion during flushing dead code. + ** compiler failure while deriving type of TRUNCATE on an + interval, containing 0. + ** ASH of a negative bignum by a negative bignum count now returns + -1, not 0. + ** intersection of CONS types now canonicalizes properly, fixing + inconsistencies in SUBTYPEP. + +changes in sbcl-0.8.6 relative to sbcl-0.8.5: + * fixed a bootstrapping bug: the build process no longer assumes + that the various BOOLE-related constants have the same value in + host and target lisps. (noted by Paul Dietz' test suite on an + SBCL binary built from CLISP) + * The system can now be dynamically linked on the MIPS platform, + which enables dynamic loading of foreign code from Lisp. (thanks + to Ralf Baechle for discussions on the MIPS ABI) + * The system now records debugging information for its own source + files in a filesystem-position-independent manner, relative to + the "SYS" logical host. + * fixed a compiler bug: MV-LET convertion did not check references + to the "max args" entry point. (reported by Brian Downing) + * tweaked disassembly notes to be less confident about proclaiming + some instruction as an LRA. (thanks to Brian Downing) + * contrib update: SB-ACLREPL is now threadsafe; multiple listeners + now each have their own history, command character, and other + characteristics. (thanks to David Lichteblau) + * fixed some bugs revealed by Paul Dietz' test suite: + ** compiler failure in compiling LOGAND expressions including a + constant 0 + ** Implementation of ASH-MOD32 on X86 and PPC did not work for the + shift greater than 32. + ** FLUSH-DEST did not mark blocks for type check regeneration. + ** HANDLER-CASE failed to accept declarations in handler clauses + in some circumstances. + +changes in sbcl-0.8.7 relative to sbcl-0.8.6: + * bug fix: GET-SETF-EXPANSION no longer throws an internal type + error when called without an explicit environment argument. + (thanks to Nikodemus Siivola) + * bug fix: buffered :DIRECTION :IO streams are less likely to become + confused about their position. (thanks to Adam Warner and Gerd + Moellmann) + * ASDF-INSTALL bug fix: now parses *PROXY* properly. (thanks to + Sean Ross) + * SB-SIMPLE-STREAMS enhancement: simple-streams can now be used as + streams for the REPL, for the debugger, and so on. (thanks to + David Licteblau) + * fixed some bugs revealed by Paul Dietz' test suite: + ** the value of the :REHASH-THRESHOLD argument to MAKE-HASH-TABLE + is ignored if it is too small, rather than propagating through + to cause DIVIDE-BY-ZERO or FLOATING-POINT-OVERFLOW errors. + ** extremely complex negations of CONS types were not being + sufficiently canonicalized, leading to inconsistencies in + SUBTYPEP. planned incompatible changes in 0.8.x: * (not done yet, but planned:) When the profiling interface settles