* 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.
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
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
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)
+ * fixed a compiler bug: MV-LET convertion did not check references
+ to the "max args" entry point. (reported by Brian Downing)
planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles