0.8.10.36:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 3c50624..1a13633 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1949,12 +1949,12 @@ changes in sbcl-0.8.3 relative to sbcl-0.8.2:
     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
+    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.
+    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
@@ -1968,6 +1968,14 @@ changes in sbcl-0.8.3 relative to sbcl-0.8.2:
   * 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
@@ -1975,12 +1983,491 @@ changes in sbcl-0.8.3 relative to sbcl-0.8.2:
   * 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:
+  * 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)
+  * The system can now be dynamically linked on the MIPS platform,
+    which enables dynamic loading of foreign code from Lisp.  (thanks
+    to Ralf Baechle for discussions on the MIPS ABI)
+  * The system now records debugging information for its own source
+    files in a filesystem-position-independent manner, relative to 
+    the "SYS" logical host.
+  * fixed a compiler bug: MV-LET convertion did not check references
+    to the "max args" entry point.  (reported by Brian Downing)
+  * tweaked disassembly notes to be less confident about proclaiming
+    some instruction as an LRA.  (thanks to Brian Downing)
+  * contrib update: SB-ACLREPL is now threadsafe; multiple listeners
+    now each have their own history, command character, and other
+    characteristics.  (thanks to David Lichteblau)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** compiler failure in compiling LOGAND expressions including a
+       constant 0
+    ** Implementation of ASH-MOD32 on X86 and PPC did not work for the
+       shift greater than 32.
+    ** FLUSH-DEST did not mark blocks for type check regeneration.
+    ** HANDLER-CASE failed to accept declarations in handler clauses
+       in some circumstances.
+
+changes in sbcl-0.8.7 relative to sbcl-0.8.6:
+  * When built with the :SB-FUTEX feature, threaded builds now take 
+    advantage of the "fast userspace mutex" facility in Linux kernel 2.6
+    for faster/more reliable mutex and condition variable support.
+  * Incompatible change (but one you probably shouldn't have been using
+    anyway): the interface and code for arbitrating between multiple
+    threads in the same user session has been redesigned.
+  * bug fix: GET-SETF-EXPANSION no longer throws an internal type
+    error when called without an explicit environment argument.
+    (thanks to Nikodemus Siivola)
+  * bug fix: buffered :DIRECTION :IO streams are less likely to become
+    confused about their position.  (thanks to Adam Warner and Gerd 
+    Moellmann)
+  * bug fix: Pretty printing backquoted forms with unquotations in the
+    argument list position of various code constructs such as LAMBDA
+    now works correctly.  (reported by Paul Dietz)
+  * bug fix: Pretty printing unquotations no longer loses all
+    stream position information.
+  * optimization: performance of string output streams is now less
+    poor for multiple small sequence writes.
+  * optimization: performance of CSUBTYPEP in the presence of complex
+    expressions involving CONS and NOT many times has been improved.
+    (reported by Paul Dietz)
+  * ASDF-INSTALL bug fix: now parses *PROXY* properly.  (thanks to
+    Sean Ross)
+  * SB-SIMPLE-STREAMS enhancement: simple-streams can now be used as
+    streams for the REPL, for the debugger, and so on.  (thanks to
+    David Licteblau)
+  * DEFINE-CODITION is more efficient.  (thanks to Brian Mastenbrook)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** the value of the :REHASH-THRESHOLD argument to MAKE-HASH-TABLE
+       is ignored if it is too small, rather than propagating through
+       to cause DIVIDE-BY-ZERO or FLOATING-POINT-OVERFLOW errors.
+    ** extremely complex negations of CONS types were not being
+       sufficiently canonicalized, leading to inconsistencies in
+       SUBTYPEP.
+    ** VALUES tranformer lost derived type.
+
+changes in sbcl-0.8.8 relative to sbcl-0.8.7:
+  * minor incompatible change: parsing of namestrings on a physical
+    (Unix) host has changed; numbers after the final #\. in a
+    namestring are no longer interpreted as a version field.  This is
+    intented to be largely invisible to the user, except that the
+    meaning of the namestring "*.*.*" has changed: it now refers to a
+    pathname with :TYPE :WILD :NAME #<pattern "*.*">.  This namestring
+    should usually be replaced by 
+      (make-pathname :name :wild :type :wild :version :wild)
+    with the added benefit that this is more likely to be portable.
+    As a consequence of this change, the :IF-EXISTS :NEW-VERSION
+    option to OPEN now signals an error if the file being opened
+    exists; this may have an impact on existing code.
+  * fixed bug 190: RUN-PROGRAM should now work properly, respecting
+    signals received, on the PowerPC platforms (both Linux and
+    Darwin).  (thanks to Pierre Mai for pointing out the location of
+    the error)
+  * several fixes on OS X: The system now builds and runs cleanly on
+    Panther (10.3), and works around sigreturn bug (no more SIGFPEs).
+    (thanks to Brian Mastenbrook)
+  * bug fix: DECODE-UNIVERSAL-TIME now accepts timezone arguments with
+    second-resolution: integer multiples of 1/3600 between -24 and 24.
+    (thanks to Vincent Arkesteijn)
+  * bug fix: functions =, /=, <, <=, >, >= did not check the argument
+    type when called with 1 argument; PEEK-CHAR checked type of
+    PEEK-TYPE only after having read first character from a
+    stream.  (reported by Peter Graves)
+  * bug fix: the garbage collector now has much better locality
+    behaviour, and in particular no longer treats all memory as being
+    exhausted when many small objects point to each other in a deeply
+    recursive manner.
+  * bug fix: arrays specialized on (UNSIGNED-BYTE 15) are now
+    recognized as being TYPEP their class.
+  * bug fix: the PUSHNEW documentation string has been corrected.
+    (thanks to Vincent Arkesteijn)
+  * bug fix: defaulting of the value for the last of an atypically
+    large number of multiple values being bound was not being
+    performed correctly on the Alpha or PPC platforms
+  * optimization: implemented multiplication as a modular
+    (UNSIGNED-BYTE 32) operation on the x86 backend.
+  * optimization: SEARCH on simple-base-strings can now be open-coded.
+    (see also contrib/compiler-extras.lisp for inspiration for
+    teaching the compiler about the Boyer-Moore algorithm).
+  * value, returned by MAX (and MIN) called with several EQUALP, but
+    not EQL, arguments now does not depend on compiler settings.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** in stack analysis liveness information is propagated from
+       non-local entry points.
+    ** pathwise CAST removing failed when the CAST node did not start
+       a block.
+    ** INPUT-STREAM-P, OUTPUT-STREAM-P, STREAM-ELEMENT-TYPE and
+       OPEN-STREAM-P signal a TYPE-ERROR if their argument is not a
+       stream.
+    ** LOAD-LOGICAL-PATHNAME-TRANSLATIONS returns NIL if the logical
+       host is already defined.
+    ** RENAME-FILE works on streams instead of signalling an internal
+       type error.
+    ** PEEK-CHAR uses the current readtable when determining whether
+       or not a character is whitespace.
+    ** MERGE-PATHNAMES handles the case when the pathname does not
+       specify a name while the default-pathname specifies a version.
+    ** Pathnames now stand a better chance of respecting print/read
+       consistency.
+    ** Attempting to use standardized file system operators with a
+       pathname with invalid :DIRECTORY components signals a
+       FILE-ERROR.
+    ** OPEN :DIRECTION :IO no longer fails to work on non-existent
+       files.
+    ** DIRECTORY on logical pathnames is more correct.
+    ** CLEAR-INPUT, CLEAR-OUTPUT, FINISH-OUTPUT and FORCE-OUTPUT
+       signal a TYPE-ERROR if their argument is not a stream.
+    ** READ-BYTE and WRITE-BYTE signal a TYPE-ERROR if their stream
+       designator argument does not designate a stream.
+    ** OPEN-STREAM-P and INPUT-STREAM-P on synonym streams work by
+       examining the synonym.
+    ** STREAM-ELEMENT-TYPE and FRESH-LINE on broadcast-streams now
+       work as specified.
+    ** OPEN and WITH-OPEN-STREAM allow opening streams with
+       element-type larger than ([UN]SIGNED-BYTE 32).
+
+changes in sbcl-0.8.9 relative to sbcl-0.8.8:
+  * deprecation of old extension: *DEBUG-PRINT-LEVEL* and
+    *DEBUG-PRINT-LENGTH* are now deprecated in favor of the new, more
+    general SB-DEBUG:*DEBUG-PRINT-VARIABLE-ALIST* mechanism. (This
+    should matter to you only if you rebind the printer control
+    variables and then find you want different bindings in the 
+    debugger than in the ordinary execution of your program.)
+  * The runtime build system has been tweaked to support building
+    (on SPARC/SunOS) using a C compiler which invokes Sun's own
+    assembler and linker.  (thanks to Nikodemus Siivola)
+  * Unbound, undefined, undeclared variables now trigger full
+    WARNINGs, not just STYLE-WARNINGs, on the assumption that this is
+    more often programmer error than deliberate exploitation of undefined
+    behaviour.
+  * optimization: the hash algorithm for strings has changed to one
+    that is less vulnerable to spurious collisions.  (thanks to Juho
+    Snellman)
+  * optimization: VECTOR-POP, VECTOR-PUSH-EXTEND and REPLACE do less
+    needless bounds checking.  (thanks to Juho Snellman)
+  * optimization: implemented multiplication as a modular
+    (UNSIGNED-BYTE 32) operation on the PPC backend.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** ADJUST-ARRAY now copies the datum in a zero rank array if
+       required.
+    ** ADJUST-ARRAY no longer adjusts non-adjustable arrays.
+    ** MAKE-STRING-INPUT-STREAM accepts NIL as a value for :END.
+    ** MAKE-STRING-INPUT-STREAM functions correctly for strings with
+       element-type NIL.
+    ** CLEAR-INPUT accepts NIL and T for its (optional) stream
+       argument.
+    ** Ratios can now be printed correctly with *PRINT-BASE* bound to
+       2, 8 or 16.
+    ** ECHO-STREAMs no longer attempt to echo the end of file value to
+       their output stream on EOF from read.
+    ** CONCATENATED-STREAM-STREAMS discards constituent streams which
+       have been read to end-of-file.
+    ** CLOSE works as expected on the null CONCATENATED-STREAM, and on
+       STRING-STREAMS.
+    ** Printing symbols with *PRINT-CASE* :CAPITALIZE respects the
+       description of determination of which consecutive characters
+       constitute a word.
+    ** Printing the "Space" character with escaping on now yields "#\\ ", 
+       rather than "#\\Space", as mandated by ANSI 22.1.3.2.
+    ** Reading floating-point numbers with *READ-BASE* set to a number
+       less than 10 works correctly.
+    ** Reading floating-point numbers with *READ-BASE* set to a number
+       more than 10 works correctly.
+    ** Printing with *PRINT-READABLY* targets the standard readtable, not
+       the readtable currently in effect.
+
+changes in sbcl-0.8.10 relative to sbcl-0.8.9:
+  * Support for the forthcoming 2.0 version of the NetBSD kernel
+    running on x86 hardware has been added.  (thanks to Perry
+    E. Metzger most immediately, and others for their past work)
+  * SBCL now runs on OpenBSD 3.4. (Thanks to Scott Parish; 3.4 is the
+    current release version; SBCL's OpenBSD support had been broken 
+    since about the time of OpenBSD's switch to ELF binary format.)
+  * [placeholder for DX summary]
+    ** user code with &REST lists declared dynamic-extent, under high
+       speed or space and low safety and debug optimization policy.
+  * The manual has been converted to Texinfo format and the debugger
+    chapter from the cmucl manual has been added.
+  * A facility has been added to extract documentation strings from
+    sbcl and store them as Texinfo-formatted snippets for inclusion in
+    the manual (via Texinfo's @include directive)
+  * bug fix: compiler emitted division in optimized DEREF.  (thanks for
+    the test case to Dave Roberts)
+  * bug fix: multidimensional simple arrays loaded from FASLs had fill
+    pointers.  (reported by Sean Ross)
+  * bug fix: PROFILE output is printed nicely even for large numerical
+    values.  (thanks to Zach Beane)
+  * bug fix: streams with element-type (SIGNED-BYTE <N>) for <N>
+    greater than 32 handle EOF correctly.
+  * bug fix: on X86 an immediate argument of the IMUL instruction is
+    correctly printed in disassembly. (thanks to Lutz Euler)
+  * bug fix: class slots in redefined classes preserve their old
+    values.  (thanks to Bruno Haible and Nikodemus Siivola)
+  * bug fix: compilation of funcalls of CXX+R (e.g. CDDR) now
+    succeeds.  (reported by Marco Baringer)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** READ-SEQUENCE now works on ECHO-STREAMs.
+    ** RATIONALIZE works more according to its specification.  (thanks
+       to Bruno Haible)
+
+changes in sbcl-0.8.11 relative to sbcl-0.8.10:
+  * new feature: the SB-EXT:MUFFLE-CONDITIONS declaration should be
+    used to control emission of compiler diagnostics, rather than the
+    SB-EXT:INHIBIT-WARNINGS OPTIMIZE quality.  See the manual for
+    documentation on this feature.  The SB-EXT:INHIBIT-WARNINGS
+    quality should be considered deprecated.
+  * fixed bug 320: Shared to local slot value transfers in class 
+    redefinitions now happen corrently from superclasses as
+    well. (reported by Bruno Haible)
+  * fixed bug 316: SHIFTF now accepts VALUES forms. (reported by Bruno
+    Haible)
+  * fixed bug 322: DEFSTRUCT :TYPE LIST type predicates now handle
+    improper lists correctly. (reported by Bruno Haible)
+  * fixed bug 313: source-transform for <fun-name> was erroneously
+    applied to a call of a value of a variable with name <fun-name>.
+    (reported by Antonio Menezes Leitao)
+  * fixed bug 307: The obsolete instance protocol ensures that
+    subclasses are properly obsoleted.  (thanks to Nikodemus Siivola)
+  * on X86 and Alpha fixed bug 298, revealed by Paul F. Dietz' test
+    suite: SBCL can remove dead unknown-values globs from the middle
+    of the stack.
+  * added a new restart to *BREAK-ON-SIGNALS* handling to make it
+    easier to resume long computations after using *BREAK-ON-SIGNALS*
+    to diagnose and fix failures.  (thanks to Nikodemus Siivola)
+  * fixed bug reported by PFD in lisppaste #747 (and Bruno Haible from
+    CLISP test suite): WRITE-TO-STRING is not constant-foldable.
+  * fixed bugs in COMPLEX type specifier: UPGRADED-COMPLEX-PART-TYPE
+    is now consistent with (COMPLEX <x>); bugs in treatment of COMPLEX
+    MEMBER and UNION types have likewise been fixed.  (thanks to Bruno
+    Haible)
+  * fixed a (fairly theoretical) bug in string printing: if
+    *PRINT-READABLY* is true, signal PRINT-NOT-READABLE if the string
+    does not have array-element-type equal to the most general string
+    type.
+  * fixed bug: SET-PPRINT-DISPATCH does not immediately resolve
+    function name. (thanks to Nikodemus Siivola)
+  * fixed bug: compile-time format string checker failed on
+    non-closed ~{.  (reported by Thomas F Burdick)
+  * fixed bug: as reported by Kalle Olavi Niemitalo on #lisp IRC,
+    don't warn on legal loop code involving more than one aggregate
+    boolean.  (thanks to Nikodemus Siivola)
+  * fixed bug: as reported by Peter Graves on #lisp IRC, passing a NIL
+    in keyword position to MAKE-PACKAGE was not being reported as
+    invalid.
+  * fixed bug: as reported by Juan Ripoll on cmucl-imp,
+    MULTIPLE-VALUE-BIND should be able to lexically bind lambda list
+    keywords.
+  * optimization: rearranged the expansion of various defining macros
+    so that each expands into only one top-level form in a
+    :LOAD-TOPLEVEL context; this appears to decrease fasl sizes by
+    approximately 10%.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** MAKE-INSTANCES-OBSOLETE returns the class name when called with 
+       a symbol.
+    ** Fixed an optimization bug related to inheritance of initforms
+       from local to shared slots.
+    ** FILE-POSITION works as specified on BROADCAST-STREAMs.
+    ** CAST optimizer forgot to flush argument derived type.
+    ** print/read consistency on floats is now orders of magnitude
+       more likely.  (thanks also to Bruno Haible for a similar report
+       and discussions)
+    ** removed stack cleaning in the cleanup part of UNWIND-PROTECT.
+    ** IMAGPART is specified (infelicitously) to return (* 0 <thing>)
+       for objects of type REAL.  Make it so.
+    ** SXHASH is specified (infelicitously) to respect similarity,
+       which means that (SXHASH 0.0) must equal (SXHASH -0.0).  Make
+       it so.  (thanks to Markus Ziegler)
+    ** on the Alpha, the compiler succeeds in compiling functions
+       returning a known number of arguments greater than 63.
+    ** fixed handling of invalid NIL arguments in keyword position
+       in local calls.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles