STRING-INPUT-STREAMs. (thanks to Nikodemus Siivola)
* bug fix: (SIGNED-BYTE 8) streams no longer return (UNSIGNED-BYTE
8) data. (thanks to David Lichteblau)
+ * bug fix: it is possible to add a method to a generic function
+ without lambda list.
+ * bug fix: reader failed to signal END-OF-FILE inside an
+ object representation. (reported by Nikodemus Siivola)
* fixed some bugs revealed by Paul Dietz' test suite:
** LAST and [N]BUTLAST should accept a bignum.
** condition slot accessors are methods.
** (VECTOR NIL) is a subtype of STRING.
+changes in sbcl-0.8.3 relative to sbcl-0.8.2:
+ * SBCL now builds and runs on MacOS X (version 10.2), or perhaps
+ more accurately, on the Darwin kernel running on PowerPC hardware.
+ (thanks to Brian Mastenbrook, Pierre Mai and Patrik Nordebo)
+ * Compiler code deletion notes now signal a condition of type
+ 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, 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)
+ * bug fix: MAKE-ARRAY ignored :INITIAL-CONTENTS NIL. (reported by
+ Kalle Olavi Niemitalo)
+ * bug fix: the CLASS-PROTOTYPE of the GENERIC-FUNCTION class is now
+ 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 <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).
+
+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 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)
+ * compiler enhancement: SIGNUM is now better able to derive the type
+ of its result.
+ * 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.
+
planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles
down, it might impact TRACE. They both encapsulate functions, and