sbcl-0.8.4 released

William Harold Newman <[email protected]> Fri, 3 Oct 2003 11:15:29 -0500
Newsgroups gmane.lisp.steel-bank.announce
Message-ID <[email protected]>
I have just succeeded in putting sbcl-0.8.4 into the SourceForge file
release system. (It was tagged in CVS yesterday, but then I had
connection problems which kept me from doing the file release.)

The developers (as opposed to, say, release managers) were busy last
month. From the NEWS file in the distribution:
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 <negative-integer>) returned <negative-integer>.
    ** 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).

-- 
William Harold Newman <[email protected]>
"There's nothing an agnostic can't do as long as he doesn't know
whether he believes in anything or not." - Monty Python
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C  B9 25 FB EE E0 C3 E5 7C


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf