X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=729dd09cd3e234e4a97e52ddbe7fa5ce5a6c7ced;hb=61c18727668ff0c3263a3d363e609d4522d545cc;hp=d43a6a37a6e5e484b6feca3b51f4674d7efc71fe;hpb=f6c58711c58ee05502fefc6c176a2533b18021bb;p=sbcl.git diff --git a/NEWS b/NEWS index d43a6a3..729dd09 100644 --- a/NEWS +++ b/NEWS @@ -1945,10 +1945,17 @@ changes in sbcl-0.8.3 relative to sbcl-0.8.2: SB-EXT:CODE-DELETION-NOTE (a subtype of SB-EXT:COMPILER-NOTE) with an associated MUFFLE-WARNING restart. * The compiler now performs limited argument count validation of - constant format strings in FORMAT. (thanks to Gerd Moellmann) - * bug fix: WITH-OUTPUT-TO-STRING (and MAKE-STRING-OUTPUT-STREAM) now - accept and act upon their :ELEMENT-TYPE keyword argument. - (reported by Edi Weitz) + constant format strings in FORMAT, and where appropriate in ERROR, + CERROR and WARN. (thanks to Gerd Moellmann) + * New ASDF-INSTALL contrib can be used for automatic download and + installation of third-party Lisp code from CCLAN or other sites + via CLiki. + * Threaded builds (:SB-THREAD) now support SB-THREAD:INTERRUPT-THREAD, + which forces another thread to execute a function supplied by the + caller. + * bug 75 fix: WITH-OUTPUT-TO-STRING (and MAKE-STRING-OUTPUT-STREAM) + now accept and act upon their :ELEMENT-TYPE keyword argument. + (reported by Martin Atzmueller, Edi Weitz) * bug fix: FILE-POSITION now accepts position designators up to ARRAY-DIMENSION-LIMIT or the extreme of the off_t range, whichever is the greater. (thanks to Patrik Nordebo) @@ -1958,12 +1965,164 @@ changes in sbcl-0.8.3 relative to sbcl-0.8.2: printable. (reported by Eric Marsden) * bug fix in sb-posix: mmap() now works on systems with a 64-bit off_t, including Darwin and FreeBSD. (thanks to Andreas Fuchs) + * x86 bug fix in control stack exhaustion checking: now shows backtrace * bug fix in WITH-TIMEOUT: now the body can have more than one form. (thanks to Stig Sandoe) + * bug fix in READ-SEQUENCE: READ-SEQUENCE following PEEK-CHAR or + UNREAD-CHAR now correctly includes the unread character in the + target sequence. (thanks to Gerd Moellmann) + * bug fix in threaded builds: the system can now be suspended and + resumed by shell job control with minimal disruption. + * bug fixes in times and timezones >2038AD + * better handling of "where is GNU make?" problem in build scripts + (thanks to Nikodemus Siivola) + * new optimization: inside a named function any reference to a + function with the same name is considered to be a self-reference; + this behaviour is controlled with SB-C::RECOGNIZE-SELF-CALLS + optimization quality. + * new optimization on x86: logical functions and + now have + optimized (UNSIGNED-BYTE 32) versions, which are automatically + used when the result is truncated to 32 bits. + * VALUES declaration is partially enabled. + * fixes in SB-GROVEL (thanks to Andreas Fuchs) * fixed some bugs revealed by Paul Dietz' test suite: ** The system now obeys the constraint imposed by UPGRADED-ARRAY-ELEMENT-TYPE that the upgraded array element types form a lattice under type intersection. + ** FFLOOR, FTRUNCATE, FCEILING and FROUND work with integers. + ** ASSOC now ignores NIL elements in an alist. + ** CEILING now gives the right answer with MOST-NEGATIVE-FIXNUM + and (1+ MOST-POSITIVE-FIXNUM) answers. + ** The addition of a method with invalid qualifiers to a generic + function does not cause an error to be signalled immediately; + a warning is signalled, and the error is generated only on + calling the generic function. + * changed .fasl file version number, in part to add type codes for + new array subtypes UNSIGNED-BYTE 7, 15, 29, and 31 mandated by + 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) + support has been systematized, and now supports the methods + specified by ANSI, along with a default method and a method for + slot documentation. (reported by Nathan Froyd) + * bug fix: effective methods associated with a generic function are + no longer cached over a change of that generic function's method + 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: + * in full calls compiler does not generate checks for declared + argument types for all arguments. + * fix bug 282: compiler does not trust type assertions while passing + arguments to a full call. + * fix 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 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. planned incompatible changes in 0.8.x: * (not done yet, but planned:) When the profiling interface settles