For those of you not following the discussion of versioning issues on
the sbcl-devel list, or just recovering from such a great party^W24/7
hacking session that you can't remember things like that, there's
nothing particularly magical about this release, despite its
less-fractional-than-usual release number. In particular, we didn't
use 0.9-ness as a flag day to introduce dramatic new changes or
policies; we have just agreed that it has more than enough progress to
justify stop calling it 0.8. Thus, 0.9.0 is different from
sbcl-0.8.21, but only about as different as you might expect from some
0.8.x to 0.8.x+1.
From the NEWS file in the distribution:
changes in sbcl-0.9.0 relative to sbcl-0.8.21:
* incompatible change: the --noprogrammer option, deprecated since
version 0.7.5, has been removed. Please use the equivalent
--disable-debugger option instead.
* incompatible change: finalizers and *AFTER-GC-HOOKS* are now run with
* incompatible change: support for *BEFORE-GC-HOOKS* (that have been
inoperational for a while now) has been completely removed.
* null lexical environments are now printed as #<NULL-LEXENV>,
significantly reducing the amount of clutter in typical backtraces.
* documentation on weak pointers, finalization, and after GC hooks
has been added to the manual.
* optimization: REPLACE on declared (UNSIGNED-BYTE 8) vectors, as well
as other specialized array types, is much faster. SUBSEQ and
COPY-SEQ on such arrays have also been sped up.
* optimization: EQL is now more efficient when at least other argument
is known to be of type (OR FIXNUM (NOT NUMBER)).
* fixed bug: the runtime is now less vulnerable to changes in the
size of the SBCL object on OS X, and virtual memory is reserved for
all spaces that need to be at a fixed address.
* fixed bug: finalizers are now thread-safe. (thanks to Gabor Mellis)
* fixed bug: finalizers and after GC hooks that cause consing are now
* fixed bug: compiler error messages and summaries are now printed to
*ERROR-OUTPUT*, not *STANDARD-OUTPUT*.
* fixed inference of the upper bound of an iteration variable.
(reported by Rajat Datta).
* fixed bug 211e: calling local functions with duplicated constant
keyword argument no longer causes a bogus style warning about an
* fixed bug 305: INLINE/NOTINLINE declaration no longer causes local
ftype declaration to be disregarded. (reported by Dave Roberts)
* fixed bug 373: caused by erronous compilation of references to alien
variables in the runtime on ppc/darwin.
* fixed bug 376: CONJUGATE type deriver.
* fixed infinite looping of ALIEN-FUNCALL, compiled with high DEBUG.
(reported by Baughn on #lisp)
* a cross-compiler bug on non-x86 platforms has been identified and
fixed. (thanks to Bruno Haible)
* improvements to the MIPS runtime code for increased stability.
(thanks to Thiemo Seufer)
* increased the maximimum compact environment size to allow
purify on images with large amounts of functions. (thanks to Cyrus Harmon)
* partial workaround for bug 135: don't name the function we're
calling for hairy cases of EVAL, so as not to accumulate one environment
entry per call to EVAL. (reported by Kevin Reid)
* improvements to the x86-64 disassembler. (thanks to Lutz Euler)
* optimization: type testing for non-vector arrays should be faster.
* fixed TRACE :ENCAPSULATE NIL, added support for :ENCAPSULATE NIL
* bug fix: setting 31st element of a bit vector to zero did not work
* bug fix: redefining a class definition which failed due to a
previous accessor / function clash now works (but see BUGS entry
#380 for more problems in this area). (thanks to Zach Beane)
* the long form of DEFINE-METHOD-COMBINATION disables method group
checking when given a single method group with pattern *. (thanks
to Wendall Marvel)
* on x86 compiler supports stack allocation of results of simple
calls of MAKE-ARRAY, bound to variables, declared DYNAMIC-EXTENT.
* support for building and running on Mac OS X 10.4 "Tiger" has been added
** Binaries built on Tiger will not run on 10.2 "Jaguar" currently
* fixed some bugs related to Unicode integration:
** the restarts for recovering from input and output encoding
errors only appear when there is in fact such an error to
* fixed some bugs revealed by Paul Dietz' test suite:
** MISC.549 and similar: late transformation of unsafe type
assertions into derived types caused unexpected code
** SCALE-FLOAT type deriver is less wrong.
** type derivers for EXP, LOG and similar functions compute result
types for complex arguments better.
** (MISC.563) CONJUGATE type deriver works for very restricted
** out-of-line type testers for character strings are available.
** EQUAL compiler transform understands specialness of objects
of type BIT-VECTOR.
** accessing double-floats stored on the stack now works on x86-64.
** debugger internals could sometimes create invalid lispobjs,
resulting in GC crashes.
** MISC.548: type check weakening can convert required type into
** initialization forms for bindings are not in scope of free special
William Harold Newman <william.newman@...>
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C
Ubi saeva indignatio ulterius cor lacerare nequit. -- Jonathan Swift's epitaph