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)
* 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 returs 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
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)
* 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
** 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.
+ 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.
+ * builds on SuSE AMD64, although still generates a 32-bit binary.
planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles