0.8.12.23: Signs of mellowing out in SBCL? Reversed NEWS file
authorNikodemus Siivola <nikodemus@random-state.net>
Mon, 5 Jul 2004 16:27:47 +0000 (16:27 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Mon, 5 Jul 2004 16:27:47 +0000 (16:27 +0000)
           to lastest-first order, and moved planned changes bit
           to TODO.

NEWS
TODO
version.lisp-expr

diff --git a/NEWS b/NEWS
index b44b189..730e1d1 100644 (file)
--- a/NEWS
+++ b/NEWS
-changes in sbcl-0.6.0 relative to sbcl-0.5.0:
-
-* tidied up "make.sh" script
-* tidied up system directory structure
-* better "clean.sh" behavior
-* added doc/FOR-CMUCL-DEVELOPERS
-* many many small tweaks to output format, e.g. removing possibly-confusing
-  trailing #\. character in DESCRIBE-INSTANCE
-* (EQUALP #\A 'A) no longer signals an error.
-* new hashing code, including EQUALP hashing
-* tidied up Lisp initialization and toplevel
-* initialization files (e.g. /etc/sbclrc and $HOME/.sbclrc)
-* command line argument processing
-* added POSIX-GETENV function to deal with Unix-ish environment variables
-* more-Unixy handling of *STANDARD-INPUT* and other Lisp streams, e.g.
-  terminating SBCL on EOF
-* non-verbose GC by default
-* There is no more "sbcl" shell script; the sbcl file is now the C
-  runtime executable (just like CMU CL).
-* removed some unused fops, e.g. FOP-UNIFORM-VECTOR, FOP-CHARACTER, and 
-  FOP-POP-FOR-EFFECT
-* tweaked debug-info.lisp and debug-int.lisp to make the debugger store
-  symbol and package information as Lisp native symbol and package objects
-  instead of strings naming symbols and strings naming packages. This way,
-  whenever packages are renamed (as in warm init), debug information is
-  transformed along with everything else.
-* tweaked the optimization policy declarations which control the building
-  of SBCL itself. Now, among other things, the system no longer saves
-  source location debugging information. (This helps two problems at once
-  by reducing SBCL size and by keeping SBCL from trying to look for its
-  sources -- which may not exist -- when reporting errors.)
-* added src/cold/chill.lisp, to let SBCL read its own cold sources for
-  debugging and testing purposes
-* cleaned up printing, making the printer call PRINT-OBJECT for
-  instances, and using PRINT-UNREADABLE-OBJECT for most PRINT-OBJECT
-  methods, giving nearly-ANSI behavior
-* converted almost all special variables to use *FOO* naming convention
-* deleted PARSE-TIME functionality, since it can be done portably
-* moved some files out of cold init into warm init
-* deleted DEFUN UNDEFINED-VALUE, replaced (UNDEFINED-VALUE) forms
-  with (VALUES) forms
-* regularized formatting of source files
-* added an install.sh script
-* fixed ridiculous memory usage of cross-compiler by making
-  compiler/alloc.lisp not try to do pooling unless it can hook
-  itself into the GC of the cross-compilation host. Now the system
-  builds nicely on my old laptop.
-* added :SB-ALLOC in target-features.lisp-expr
-* deleted mention of :ANSI-DOC from target-features.lisp-expr (since it
-  was not implemented)
-* re-did condition handling and note reporting in the compiler. Notes
-  are no longer handled by signalling conditions. Style warnings
-  and warnings are handled more correctly and reported in such a way
-  that it's easy to find one or the other in your output (so that you
-  can e.g. figure out which of many problems caused COMPILE-FILE to 
-  return FAILURE-P).
-* changed the severity of several compiler warnings from full WARNING
-  to STYLE-WARNING in order to conform with the ANSI spec; also changed
-  compiler note reporting so that it doesn't use the condition system
-  at all (and hence affects neither FAILURE-P nor WARNINGS-P in the 
-  COMPILE-FILE command)
-* made PROCLAIM and DECLAIM conform to ANSI. PROCLAIM is now an ordinary
-  function. As a consequence, START-BLOCK and END-BLOCK declarations are
-  no longer supported, since their implementation was deeply intertwingled
-  with the magical, non-ANSI treatment that PROCLAIM received in CMU CL.
-* removed bogus "support" for compiler macros named (SETF FOO), and
-  removed the compiler macro for SETF INFO (but only after making a fool
-  of myself on the cmucl-imp mailing list by posting a bogus patch for
-  DEFINE-COMPILER-MACRO..)
-* Compiled files containing forms which have side effects on the Lisp
-  reader (such as DEFPACKAGE forms) are now handled more correctly.
-  (Compiler queuing of top level lambdas has been suppressed by setting
-  *TOP-LEVEL-LAMBDA-MAX* to 0. )
-* deleted various currently-unused source files, e.g. gengc.lisp. They
-  may be added back at some point e.g. when porting to other architectures,
-  but until they are it's distracting to distribute them and to try to
-  maintain them.
-* deleted "UNCROSS couldn't recurse through.." style warnings, since 
-  there were so many of them they're just distractions, and UNCROSS is
-  known to be able to handle the current sources
-* moved PROFILE functionality into TRACE, so that it will be clear
-  how the wrapping and unwrapping of functions when you profile them
-  interacts with the wrapping and unwrapping of functions when you
-  trace them. (Actually, the functionality isn't there yet, but at least
-  the interface specification is there. Hopefully, the functionality will
-  arrive with some future maintenance release.)
-* removed host-oops.lisp
-* changed signature of QUIT function to allow UNIX-CODE argument
-* fixed READ-SEQUENCE bug
-* tweaked verbose GC output so that it looks more like the progress
-  output that ANSI specifies for functions like LOAD
-* set up the system on sourceforge.com, with home pages, mailing lists, etc.
-* added <http://sbcl.sourceforge.com> to the banner information printed by
-  the sbcl executable
-
-changes in sbcl-0.6.1 relative to sbcl-0.6.0:
-
-* changed build optimization from (SAFETY 1) to (SAFETY 3) as a short-term
-  fix for various type-unsafety bugs, e.g. failures with (LENGTH 123) and
-  (MAKE-LIST -1). In the longer term, it ought to become true
-  that declarations are assertions even at SAFETY 1. For now, it's not
-  quite true even at SAFETY 3, but it's at least more nearly true..
-  (Note that this change seems to increases the size of the system by
-  O(5%) and to decrease the speed of the compiler by 20% or more.)
-* changed ALIEN printing to be much more abbreviated, as a short-term fix
-  for the problem of printing dozens of lines of distracting information
-  about low-level system machinery as part of the top stack frame
-  on entry to the debugger when an undefined function was called.
-* tweaked the debugger's use of WITH-STANDARD-IO-SYNTAX so that *PACKAGE*
-  is not reset to COMMON-LISP-USER. 
-* Compilation of stuff related to dyncount.lisp has been made conditional
-  on the :SB-DYNCOUNT target feature, so that the ordinary core system is
-  smaller. The various dyncount-related symbols have been moved into
-  a new "SB-DYNCOUNT" package.
-* tty-inspect.lisp has been renamed to inspect.lisp.
-* unix-glibc2.lisp has been renamed to unix.lisp, and the :GLIBC2
-  feature has gone away. (When we eventually port to other flavors of 
-  libc and/or Unix, we'll try to make the differences between flavors
-  invisible at the user level.)
-* Various other *FEATURES* tags, and/or their associated conditionals,
-  have been removed if obsolescent, or given better documentation, or
-  sometimes given more-mnemonic names.
+changes in sbcl-0.8.13 relative to sbcl-0.8.12:
+  * new feature: SB-PACKAGE-LOCKS. See the "Package Locks" section of
+    the manual for details; add :SB-PACKAGE-LOCKS in
+    customize-target-features.lisp to enable them.
+  * minor incompatible change: as threatened around sbcl-0.8.0, the
+    home package of MOP-related symbols is now SB-MOP, not SB-PCL.
+    The symbols are also exported from SB-PCL for backwards
+    compatibility, but more so than before SB-PCL should be treated as
+    an implementation-internal package.
+  * the SB-SPROF contrib now works on (most) non-x86 architectures.
+    It is known as of this release not to work on the Alpha, however.
+  * fixed bug #338: instances of EQL-SPECIFIER are now valid type
+    designators and can hence be used with TYPEP.
+  * fixed bug #333: CHECK-TYPE now ensures that the type error
+    signalled, if any, has the right object to be accessed by
+    TYPE-ERROR-DATUM.  (reported by Tony Martinez)
+  * fixed bug #340: SETF of VALUES obeys the specification in ANSI
+    5.1.2.3 for multiple-value place subforms.  (reported by Kalle
+    Olavi Niemetalo)
+  * fixed bug #334: programmatic addition of slots using specialized
+    methods on SB-MOP:COMPUTE-SLOTS works for :ALLOCATION :INSTANCE
+    and :ALLOCATION :CLASS slots.
+  * fixed a bug: #\Space (and other whitespace characters) are no
+    longer considered to be macro characters in standard syntax by
+    GET-MACRO-CHARACTER.
 
-changes in sbcl-0.6.2 relative to sbcl-0.6.1:
+changes in sbcl-0.8.12 relative to sbcl-0.8.11:
+  * minor incompatible change: the system no longer provides
+    optimization hints (conditions which are TYPEP
+    SB-EXT:COMPILER-NOTE) for conforming code in default compilation
+    mode; these hints are still emitted when higher SPEED optimization
+    is requested.
+  * new contrib module: a sampling profiler (profiling by statistical
+    sampling, rather than by instrumenting functions) is available as
+    the SB-SPROF contrib.  (thanks to Gerd Moellmann and Juho Snellman)
+  * the behaviour of the standard function ED is now customizeable by
+    third parties through a hook variable: see ED's documentation
+    string for information on the protocol.
+  * the compiler no longer emits efficiency notes for (FUNCALL X)
+    when the type of X is uncertain under default optimization
+    settings.
+  * fixed bug 276: mutating a binding of a specialized parameter to a
+    method to something that is not TYPEP the specializer is now
+    possible.
+  * fixed bugs 45d and 118: DOUBLE-FLOAT[-NEGATIVE]-EPSILON now
+    exhibit the required behaviour on the x86 platform.  (thanks to
+    Peter van Eynde, Eric Marsden and Bruno Haible)
+  * fixed bug 335: ATANH now computes the inverse hyperbolic tangent
+    even for difficult arguments.  (reported by Peter Graves)
+  * fixed bug 141a: the backquote printer now descends quoted
+    structure.
+  * fixed another bug in backquote printing: no more destructive
+    modification of the form's list structure.  (reported by Brian
+    Downing)
+  * fixed bug in INTERRUPT-THREAD: pin the function, so that it cannot
+    move between its address being taken and the call to
+    interrupt_thread, fixing a crashing race condition.
+  * the SB-POSIX contrib implementation has been adjusted so that it
+    no longer exhibits ridiculously poor performance when constructing
+    instances corresponding to C structs.
 
-* (Note that the way that the PCL macroexpansions were rewritten
-  to accommodate the change in DEFGENERIC below breaks binary
-  compatibility. That is, fasl files compiled under sbcl-0.6.1 may
-  not run under sbcl-0.6.2. Once we get out of alpha releases,
-  i.e. hit release 1.0.0, we'll probably try to maintain binary
-  compatibility between maintenance releases, e.g. between sbcl-1.4.3
-  and sbcl-1.4.4. Until then, however, it might be fairly common
-  for maintenance releases to break binary compatibility.)
-* A bug in the calculation of WARNINGS-P and FAILURE-P in COMPILE-FILE
-  has been fixed.
-* The reporting of unhandled signals has been changed to print some
-  explanatory text as well as the report form. (Previously only
-  the report form was printed.)
-* The macroexpansion for DEFGENERIC now DECLAIMs the function that
-  it defines, so that the compiler no longer issues undefined function
-  warnings for compiled-but-not-yet-loaded generic functions. 
-* The CLTL-style "LISP" and "USER" nicknames for the "COMMON-LISP"
-  and "COMMON-LISP-USER" packages have been removed. Now only the "CL"
-  and "CL-USER" standard nicknames from the "11.1.2 Standardized Packages"
-  section of the ANSI spec are supported.
-* The "" nickname for the "KEYWORD" package has been removed. 
-  The reader still handles symbol tokens which begin with a package marker
-  as keywords, but it doesn't expose its mechanism for doing so in the
-  (PACKAGE-NICKNAMES (FIND-PACKAGE "KEYWORD")) list.
-* The system now issues STYLE-WARNINGs for contradictory TYPE 
-  proclamations. (Warnings for contradictory FTYPE proclamations would
-  be nice too, but those can't be done usefully unless the type system
-  is made smarter about FUNCTION types.)
-* The names of source files "*host-*.lisp" and "*target-*.lisp" have been 
-  systematized, so that "*target-*.lisp is supposed to exist only on the
-  target and imply that there's a related file which exists on the
-  host, and *host-*.lisp is supposed to exist only on the host and imply
-  that there's a related file which exists on the target. This involves a
-  lot of renaming. Hopefully the acute confusion caused by the renaming
-  will be justified by the reduction in chronic confusion..
-  ** runtime-type.lisp    -> early-target-type.lisp
-  ** target-type.lisp     -> late-target-type.lisp
-  ** early-host-format.lisp -> early-format.lisp
-  ** late-host-format.lisp -> late-format.lisp
-  ** host-error.lisp      -> misc-error.lisp
-  ** early-error.lisp     -> early-target-error.lisp
-  ** late-error.lisp      -> late-target-error.lisp
-  ** host-defboot.lisp    -> early-defboot.lisp
-  ** code/misc.lisp       -> code/target-misc.lisp
-  ** code/host-misc.lisp  -> code/misc.lisp
-  ** code/numbers.lisp    -> code/target-numbers.lisp
-  ** code/early-numbers.lisp -> numbers.lisp
-  ** early-host-type.lisp -> early-type.lisp
-  ** late-host-type.lisp  -> late-type.lisp
-  ** host-typep.lisp      -> typep.lisp
-  ** load.lisp            -> target-load.lisp
-  ** host-load.lisp       -> load.lisp
-  ** host-disassem.lisp   -> disassem.lisp
-  ** host-insts.lisp      -> insts.lisp
-  ** byte-comp.lisp       -> target-byte-comp.lisp
-  ** host-byte-comp.lisp  -> byte-comp.lisp
-  ** host-signal.lisp     -> signal.lisp
-  ** host-defstruct.lisp  -> defstruct.lisp
-  ** late-target-type.lisp -> deftypes-for-target.lisp
-  Furthermore, several other previously target-only files foo.lisp (e.g.
-  hash-table.lisp and random.lisp) have been split into a target-and-host
-  foo.lisp file and a target-only target-foo.lisp file, with their key type
-  definitions in the target-and-host part, so that the cross-compiler will
-  know more about target types.
-* DEFSTRUCT BACKEND, and the BACKEND-valued *BACKEND* variable, have 
-  gone away. In their place are various *BACKEND-FOO* variables
-  corresponding to the slots of the old structure.
-* A bug which caused the SB-COLD bootstrap-time package to be propagated
-  into the target SBCL has been fixed.
-* The chill.lisp system for loading cold code into a running SBCL
-  now works better.
-* Support for the CMU CL "scavenger hook" extension has been removed.
-  (It was undocumented and unused in the CMU CL sources that SBCL was
-  derived from, and stale in sbcl-0.6.1.)
-* Various errors in the cross-compiler type system were detected
-  by running the cross-compiler with *TYPE-SYSTEM-INITIALIZED*
-  (enabling various consistency checks). Many of them were fixed,
-  but some hard problems remain, so the compiler is back to 
-  running without *TYPE-SYSTEM-INITIALIZED* for now.
-* As part of the cross-compiler type system cleanup, I implemented
-  DEF!TYPE and got rid of early-ugly-duplicates.lisp.
-* I have started adding UNCROSS calls throughout the type system
-  and the INFO database. (Thus perhaps eventually the blanket UNCROSS
-  on cross-compiler input files will be able to go away, and various
-  kludges with it).
-* CONSTANTP now returns true for quoted forms (as explicitly required
-  by the ANSI spec).
-
-changes in sbcl-0.6.3 relative to sbcl-0.6.2:
+changes in sbcl-0.8.11 relative to sbcl-0.8.10:
+  * minor incompatible change: the sb-grovel contrib now treats C
+    structures as alien (in the sense of SB-ALIEN) objects rather than
+    as undistinguished (simple-array (unsigned-byte 8) (*))s.  This
+    has implications for memory management of client code
+    (sb-grovel-returned objects must now be manually managed) and for
+    type safety (alien objects now have full types).
+  * 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.
+  * install.sh now installs the user manual as well
+  * (not quite a new documentable feature, but worth considering in
+    the light of the new SB-EXT:MUFFLE-CONDITIONS declaration): the
+    beginnings of a semantically meaningful condition hierarchy is
+    under development, for use in SB-EXT:MUFFLE-CONDITIONS and by
+    IDEs.
+  * fixed bug: PARSE-NAMESTRING now accepts any valid pathaname
+    designator as the defaults argument.
+  * fixed bug: Displaced arrays whose displaced-to array has become
+    too small now cause ARRAY-DIMENSION to signal an error, providing
+    for safer bounds-checking. (reported by Bruno Haible)
+  * fixed bug: DEFCLASS slot definitions with identical :READER and
+    :WRITER names now signal a reasonable error. (reported by Thomas
+    Burdick)
+  * fixed bug: CLOSE :ABORT T on appending stream no longer causes
+    file deletion.
+  * fixed bug: Invalid slot specification errors now print correctly. 
+    (thanks to Zach Beane)
+  * 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)
+  * 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.
+  * fixed bugs 280 and 312: the checking for multiple definitions in a
+    file is less likely to become confused by uses of inline
+    functions.
+  * fixed bug: the #S reader macro performs the keyword coercion
+    specified for slot names.  (reported by Kalle Niemitalo)
+  * fixed bug: lambda lists may contain symbols whose names start with
+    & but are not lambda-list-keywords; their occurrence triggers a
+    STYLE-WARNING.
+  * fixed bug 321: define-method-combination argument lambda lists do
+    not cause invalid code to be generated when &optional or &aux
+    variables have default values.  (reported by Bruno Haible)
+  * fixed bug 327: system subclasses of STRUCTURE-OBJECT or CONDITION
+    have CLOS classes; this appears also to have fixed reported
+    instability in stack exhaustion detection.
+  * fixed bug: the CONTROL-ERROR from ABORT, CONTINUE and
+    MUFFLE-WARNING when no associated restart is present is now
+    printable.
+  * 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%.
+  * optimization: used a previously little-used slot in symbols to
+    cache SXHASH values, yielding a 5-10% compiler speedup.  (thanks
+    to Juho Snellman)
+  * 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.
+    ** fixed non-pretty printing of arrays with *PRINT-RADIX* being
+       true.
+    ** provided a readably-printable representation for RANDOM-STATE
+       objects.
+    ** ensured that pathnames, where they have a namestring, always
+       print using #P"..." syntax.
 
-* The system still can't cross-compile itself with
-  *TYPE-SYSTEM-INITIALIZED* (and all the consistency checks that
-  entails), but at least it can compile more of itself that way
-  than it used to be able to, and various buglets which were uncovered
-  by trying to cross-compile itself that way have now been fixed.
-* This release breaks binary compatibility again. This time 
-  at least I've incremented the FASL file format version to 2, so that the
-  problem can be detected reliably instead of just causing weird errors.
-* various new style warnings:
-  ** using DEFUN, DEFMETHOD, or DEFGENERIC to overwrite an old definition
-  ** using the deprecated EVAL/LOAD/COMPILE situation names in EVAL-WHEN
-  ** using the lexical binding of a variable named in the *FOO* style
-* DESCRIBE has been substantially rewritten. It now calls DESCRIBE-OBJECT
-  as specified by ANSI.
-* *RANDOM-STATE* is no longer automatically initialized from 
-  (GET-UNIVERSAL-TIME), but instead from a constant seed. Thus, the
-  default behavior of the system is to repeat its behavior every time
-  it's run. If you'd like to change this behavior, you can always
-  explicitly set the seed from (GET-UNIVERSAL-TIME); whereas under the 
-  old convention there was no comparably easy way to get the system to 
-  repeat its behavior every time it was run.
-* Support for the pre-CLTL2 interpretation of FUNCTION declarations as
-  FTYPE declarations has been removed, in favor of their ANSI
-  interpretation as TYPE FUNCTION declarations. (See p. 228 of CLTL2.)
-* The quantifiers SOME, EVERY, NOTANY, and NOTEVERY no longer cons when
-  the types of their sequence arguments can be determined at compile time.
-  This is done through a new open code expansion for MAP which eliminates
-  consing for (MAP NIL ..), and reduces consing otherwise, when sequence
-  argument types can be determined at compile time.
-* The optimizer now transforms COERCE into an identity operation when it 
-  can prove that the coerced object is already of the correct type. (This 
-  can be a win for machine generated code, including the output of other
-  optimization transforms, such as the MAP transform above.)
-* Credit information has been moved from source file headers into CREDITS.
-* Source file headers have been made more standard.
-* The CASE macro now compiles without complaining even when it has
-  no clauses.
+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.6.4 relative to sbcl-0.6.3:
+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.
 
-* There is now a partial SBCL user manual (with some new text and some
-  text cribbed from the CMU CL manual). 
-* The beginnings of a profiler have been added (starting with the
-  CMU CL profiler and simplifying and cleaning up). Eventually the
-  main interface should be through the TRACE macro, but for now, 
-  it's still accessed through vaguely CMU-CL-style functions and macros
-  exported from the package SB-PROFILE.
-* Some problems left over from porting CMU CL to the new
-  cross-compilation bootstrap process have been cleaned up:
-  ** DISASSEMBLE now works. (There was a problem in using DEFMACRO
-     instead of SB!XC:DEFMACRO, compounded by an oversight on my 
-     part when getting rid of the compiler *BACKEND* stuff.)
-  ** The value of *NULL-TYPE* was screwed up, because it was
-     being initialized before the type system knew the final
-     definition of the 'NULL type. This screwed up several key
-     optimizations in the compiler, causing inefficiency in all sorts
-     of places. (I found it because I wanted to understand why
-     GET-INTERNAL-RUN-TIME was consing.) 
-* fixed a bug in DEFGENERIC which was causing it to overwrite preexisting
-  PROCLAIM FTYPE information. Unfortunately this broke binary 
-  compatibility again, since now the forms output by DEFGENERIC
-  to refer to functions which didn't exist in 0.6.3.
-* added declarations so that SB-PCL::USE-CACHING-DFUN-P 
-  can use the new (as of 0.6.3) transform for SOME into MAP into 
-  inline code
-* changed (MOD 1000000) type declarations for Linux timeval.tv_usec slot
-  values to (INTEGER 0 1000000), so that the time code will no longer
-  occasionally get blown up by Linux returning 1000000 microseconds
-* PRINT-UNREADABLE-OBJECT has been tweaked to make the spacing of
-  its output conform to the ANSI spec. (Alas, this makes its output
-  uglier in the :TYPE T :IDENTITY NIL case, but them's the breaks.)
-* A full call to MAP NIL with a single sequence argument no longer conses.
-* fixes to problems pointed out by Martin Atzmueller:
-  * The manual page no longer talks about multiprocessing as though
-    it were currently supported.
-  * The ILISP support patches have been removed from the distribution,
-    because as of version 5.10.1, ILISP now supports SBCL without us
-    having to maintain patches.
-* added a modified version of Raymond Toy's recent CMU CL patch for
-  EQUALP comparison of HASH-TABLE
+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.6.5 relative to sbcl-0.6.4:
+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.
 
-* Raymond Wiker's patches to port the system to FreeBSD have been merged.
-* The build process now looks for GNU make under the default name "gmake",
-  instead of "make" as it used to. If GNU make is not available as "gmake"
-  on your system, you can change this default behavior by setting the 
-  GNUMAKE environment variable.
-* Replace #+SB-DOC with #!+SB-DOC in seq.lisp so that the system 
-  can build without error under CMU CL.
+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.6.6 relative to sbcl-0.6.5:
+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.
 
-* DESCRIBE no longer tries to call itself recursively to describe
-  bound/fbound values, so that it no longer fails on symbols which are
-  bound to themselves (like keywords, T, and NIL).
-* DESCRIBE now works on generic functions.
-* The printer now prints less-screwed-up representations of closures
-  (not naively trying to bogusly use the %FUNCTION-NAME accessor on them).
-* A private symbol is used instead of the :EMPTY keyword previously 
-  used to mark empty slots in hash tables. Thus 
-       (DEFVAR *HT* (MAKE-HASH-TABLE))
-       (SETF (GETHASH :EMPTY *HT*) :EMPTY)
-       (MAPHASH (LAMBDA (K V) (FORMAT T "~&~S ~S~%" K V)))
-  now does what ANSI says that it should. (You can still get 
-  similar noncompliant behavior if bang on the hash table
-  implementation with all the symbols you get back from 
-  DO-ALL-SYMBOLS, but at least that's a little harder to do.)
-  This breaks binary compatibility, since tests for equality to 
-  :EMPTY are wired into things like the macroexpansion of 
-  WITH-HASH-TABLE-ITERATOR in FASL files produced by earlier
-  implementations.
-* There's now a minimal placeholder implementation for CL:STEP,
-  as required by ANSI.
-* An obscure bug in the interaction of the normal compiler, the byte
-  compiler, inlining, and structure predicates has been patched
-  by setting the flags for the DEFTRANSFORM of %INSTANCE-TYPEP as
-  :WHEN :BOTH (as per Raymond Toy's suggestion on the cmucl-imp@cons.org
-  mailing list).
-* Missing ordinary arguments in a macro call are now detected even
-  when the macro lambda list contains &KEY or &REST.
-* The debugger no longer complains about encountering the top of the
-  stack when you type "FRAME 0" to explicitly instruct it to go to
-  the top of the stack. And it now prints the frame you request even
-  if it's the current frame (instead of saying "You are here.").
-* As specified by ANSI, the system now always prints keywords
-  as #\: followed by SYMBOL-NAME, even when *PACKAGE* is the
-  KEYWORD package.
-* The default initial SIZE of HASH-TABLEs is now smaller.
-* Type information from CLOS class dispatch is now propagated
-  into DEFMETHOD bodies, so that e.g.
-       (DEFMETHOD FOO ((X SINGLE-FLOAT))
-         (+ X 123.0))
-  is now basically equivalent to 
-       (DEFMETHOD FOO ((X SINGLE-FLOAT))
-         (DECLARE (TYPE SINGLE-FLOAT X))
-         (+ X 123.0))
-  and the compiler can compile (+ X 123.0) as a SINGLE-FLOAT-only
-  operation, without having to do run-time type dispatch.
-* The macroexpansion of DEFMETHOD has been tweaked so that it has
-  reasonable behavior when arguments are declared IGNORE or IGNORABLE.
-* Since I don't seem to be making big file reorganizations very often
-  any more (and since my archive of sbcl-x.y.zv.tar.bz2 snapshots
-  is overflowing my ability to conveniently back them up), I've finally
-  checked the system into CVS. (The CVS repository is on my home system,
-  not at SourceForge -- putting it on SourceForge might come later.)
-* SB-EXT:*GC-NOTIFY-STREAM* has been added, to control where the 
-  high-level GC-NOTIFY-FOO functions send their output. (There's
-  still very little control of where low-level verbose GC functions
-  send their output.) The SB-EXT:*GC-VERBOSE* variable now controls
-  less than it used to -- the GC-NOTIFY-FOO functions are now under
-  the control of *GC-NOTIFY-STREAM*, not *GC-VERBOSE*.
-* The system now stores the version string (LISP-IMPLEMENTATION-VERSION)
-  in only one place in the source code, and propagates it automatically
-  everywhere that it's needed. Thus e.g. when I bump the version from
-  0.6.6 to 0.6.7, I'll only need to modify the sources in one place.
-* The C source files now include boilerplate legalese and documentation
-  at the head of each file (just as the Lisp source files already did).
-* At Dan Barlow's suggestion, the hyperlink from the SBCL website
-  to his page will be replaced with a link to his new CLiki service.
+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.6.7 relative to sbcl-0.6.6:
+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
 
-* The system has been ported to OpenBSD.
-* The system now compiles with a simple "sh make.sh" on the systems
-  that it's supported on. I.e., now you no longer need to tweak 
-  text in the target-features.lisp-expr and symlinks in src/runtime/
-  by hand, the make.sh takes care of it for you.
-* The system is no longer so grossly inefficient when compiling code
-  involving vectors implemented as general (not simple) vectors (VECTOR T),
-  so code which dares to use VECTOR-PUSH-EXTEND and FILL-POINTER, or
-  which dares to use the various sequence functions on non-simple 
-  vectors, takes less of a performance hit.
-  * There is now a primitive type predicate VECTOR-T-P
-    to test for the (VECTOR T) type, so that e.g.
-       (DEFUN FOO (V) (DECLARE (TYPE (VECTOR T) V)) (AREF V 3))
-    can now be compiled with some semblance of efficiency. (The old code
-    turned the type declaration into a full call to %TYPEP at runtime!)
-  * AREF on (VECTOR T) is still not fast, since it's still compiled
-    as a full call to SB-KERNEL:DATA-VECTOR-REF, but at least the
-    ETYPECASE used in DATA-VECTOR-REF is now compiled reasonably
-    efficiently. (The old version made full calls to SUBTYPEP at runtime!)
-  * (MAKE-ARRAY 12 :FILL-POINTER T) is now executed less inefficiently,
-    without making full calls to SUBTYPEP at runtime.
-  (Some analogous efficiency issues for non-simple vectors specialized to
-  element types other than T, or for non-simple multidimensional arrays,
-  have not been addressed. They could almost certainly be handled the
-  same way if anyone is motivated to do so.)
-* The changes in array handling break binary compatibility, so
-  *BACKEND-FASL-FILE-VERSION* has been bumped to 4.
-* (TYPEP (MAKE-ARRAY 12 :FILL-POINTER 4) 'VECTOR) now returns (VALUES T)
-  instead of (VALUES T T).
-* By following the instructions that Dan Barlow posted to sbcl-devel
-  on 2 July 2000, I was able to enable primitive dynamic object
-  file loading code for Linux. The full-blown CMU CL LOAD-FOREIGN
-  functionality is not implemented (since it calls ld to resolve
-  library references automatically, requiring RUN-PROGRAM for its
-  implementation), but a simpler SB-EXT:LOAD-1-FOREIGN (which doesn't
-  try to resolve library references) is now supported.
-* The system now flushes the standard output streams when it terminates,
-  unless QUIT is used with the RECKLESSLY-P option set. It also flushes
-  them at several other probably-convenient times, e.g. in each pass of
-  the toplevel read-eval-print loop, and after evaluating a form given
-  as an "--eval" command-line option. (These changes were motivated by a
-  discussion of stream flushing issues on cmucl-imp in August 2000.) 
-* The source transform for TYPEP of array types no longer assumes
-  that an array whose element type is a not-yet-defined type 
-  is implemented as an array of T, but instead punts, so that the 
-  type will be interpreted at runtime.
-* There is now some support for cross-compiling in make.sh: each of
-  the phases of make.sh has its own script. (This should be transparent
-  to people doing ordinary, non-cross-compile builds.)
-* Since my laptop doesn't have hundreds of megabytes of memory like
-  my desktop machine, I became more motivated to do some items on
-  my to-do list in order to reduce the size of the system a little:
-  ** Arrange for various needed-only-at-cold-init things to be
-     uninterned after cold init. To support this, those things have
-     been renamed from FOO and *FOO* to !FOO and *!FOO* (i.e., all
-     symbols with such names are now uninterned after cold init).
-  ** Bind SB!C::*TOP-LEVEL-LAMBDA-MAX* to a nonzero value when building
-     fasl files for cold load.
-  ** Remove the old compiler structure pooling code (which used to 
-     be conditional on the target feature :SB-ALLOC) completely.
-  ** Redo the representation of some data in cold init to be more compact.
-  (I also looked into supporting byte compiled code at bootstrap time,
-  which would probably reduce the size of the system a lot, but that
-  looked too complicated, so I punted for now.)
-* The maximum signal nesting depth in the src/runtime/ support code has
-  been reduced from 4096 to 256. (I don't know any reason for the very
-  large old value. If the new smaller value turns out to break something,
-  I'll probably just bump it back up.)
-* PPRINT-LOGICAL-BLOCK is now pickier about the types of its arguments,
-  as per ANSI.
-* Many, many bugs reported by Peter Van Eynde have been added to
-  the BUGS list; some have even been fixed.
-* While enabling dynamic object file loading, I tried to make the 
-  code easier to understand, renaming various functions and variables
-  with less ambiguous names, and changing some function calling
-  conventions to be Lispier (e.g. returning NIL instead of 0 for failure).
-* While trying to figure out how to do the OpenBSD port, I tried to 
-  clean up some of the code in src/runtime/. In particular, I dropped
-  support for non-POSIX signal handling, added various comments, 
-  tweaked the code to reduce the number of compilation warnings, and
-  renamed some files to increase consistency.
-* To support the new automatic configuration functionality in make.sh,
-  the source file target-features.lisp-expr has been replaced with the
-  source file base-target-features.lisp-expr and the machine-generated
-  file local-target-features.lisp-expr.
-* fixed a stupid quoting error in make.sh so that using CMU CL
-  "lisp -batch" as cross-compilation host works again
+changes in sbcl-0.8.2 relative to sbcl-0.8.1:
+  * fixed bug 148: failure to inline-expand a local function left
+    garbage, confusing the compiler.
+  * fixed bugs 3cd: structure slot readers perform type check if the
+    slot can have an invalid value (i.e. it is either not initialized
+    or can be written with a less specific slot writer).
+  * bug fix: the compiler now traps array references to elements off
+    the end of an array; previously, the bounds checking in some
+    circumstances could go off-by-one.
+  * improved MACHINE-VERSION, especially on Linux (thanks to Lars
+    Brinkhoff)
+  * type declarations for array element types now obey the description
+    on the CLHS page "Declaration TYPE", as per discussions on
+    sbcl-help around 2003-05-08.  This means that a declaration 
+    (TYPE (ARRAY FOO) BAR) means that, within the scope of the
+    declaration, all references to BAR will be asserted or assumed
+    (with THE, so dependent on compiler policy) to involve objects of
+    type FOO.  Note that no such declaration is implied in 
+    (MAKE-ARRAY .. :ELEMENT-TYPE 'FOO).
+  * declared types of functions from the "Conditions"
+    chapter. (reported by Paul Dietz)
+  * bug fix: CERROR accepts a function as its first argument.
+  * bug fix: NTH an NTHCDR accept a bignum as index
+    arguments. (reported by Adam Warner)
+  * optimization: character compare routines now optimize comparing
+    against a constant character. (reported by Gilbert Baumann)
+  * bug fix: (SETF AREF) on byte-sized-element arrays with constant index
+    argument now works properly on the MIPS platform.
+  * fixed compiler failure on (TYPEP x '(NOT (MEMBER 0d0))).
+  * repeated evaluation of the same DEFSTRUCT, a slot of which is
+    declared to have a functional type, does not cause an error
+    anymore.
+  * fixed bug: sometimes MAKE-INSTANCE did not work with classes with
+    many :DEFAULT-INITARGS. (reported by Istvan Marko)
+  * fixed bug: if last continuation of a deleted block has a
+    destination, this destination should be deleted too. (reported by
+    ohler on #lisp)
+  * fixed a bug in the bootstrap process: the host compiler's values
+    of ARRAY-DIMENSION-LIMIT and ARRAY-TOTAL-SIZE-LIMIT no longer leak
+    into the newly-built SBCL. (reported by Eric Marsden on #lisp,
+    test case from Patrik Nordebo)
+  * improved the ability of the disassembler on the PPC platform to
+    provide helpful disassembly notes.
+  * SB-MOP:CLASS-PROTOTYPE on built-in-classes returns an instance of
+    the class in more cases than previously.
+  * bug fix: FILE-POSITION now understands :START and :END for
+    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.6.8 relative to sbcl-0.6.7:
+changes in sbcl-0.8.1 relative to sbcl-0.8.0:
+  * minor incompatible change: some nonsensical specialized lambda
+    lists (used in DEFMETHOD) which were previously ignored now signal
+    errors.
+  * minor incompatible change: the system is now aware of the types of
+    variables in the COMMON-LISP package, and will signal errors for
+    most violations of these type constraints (where previously they
+    were silently accepted).
+  * minor incompatible change: COMPILE-FILE now uses the freedom
+    afforded (ANSI 3.2.2.3) to use derived function types for
+    functions defined in the same file. This also permits the system
+    to warn on static type mismatches and function
+    redefinition.  (Currently it does not work with high DEBUG level.)
+  * minor incompatible change: VALUES declaration is disabled.
+  * When issuing notes, the compiler now signals a condition of type
+    SB-EXT:COMPILER-NOTE, and provides an associated MUFFLE-WARNING
+    restart for use in user handlers.  It is expected that the
+    COMPILER-NOTE condition will eventually become a condition
+    supertype to a hierarchy of note types, which will then be
+    handleable in a similar fashion. However, at the moment, no such
+    note subtypes yet exist. (SB-INT:SIMPLE-COMPILER-NOTE exists,
+    but it's an implementation detail, not a classification for the
+    purpose above.)
+  * Changes in type checking closed the following bugs:
+    ** type checking of unused values (192b, 194d, 203);
+    ** template selection based on unsafe type assertions (192c, 236);
+    ** type checking in branches (194bc).
+  * A short form of VALUES type specifier has ANSI meaning (it has
+    increased the number of situations when SBCL cannot perform type
+    checking).
+  * fixed bug in DEFSTRUCT: once again, naming structure slots with
+    keywords or constants is permissible.
+  * STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE now have methods
+    defined on the relevant FUNDAMENTAL-BINARY-{INPUT,OUTPUT}-STREAM
+    classes.  (thanks to Antonio Martinez)
+  * improved ANSIness in DESCRIBE: The DESCRIBE function no longer
+    outputs FRESH-LINE or TERPRI, and no longer converts its stream
+    argument to a pretty-print stream. Instead, it leaves any such 
+    operations to DESCRIBE-OBJECT methods.
+  * bug fix: APROPOS now respects the EXTERNAL-ONLY flag. (reported
+    by Teemu Kalvas)
+  * bug fix: NIL is now a valid destructuring argument in DEFMACRO
+    lambda lists. (thanks to David Lichteblau)
+  * bug fix: Defining a generic function with a :METHOD-CLASS being a
+    subclass of STANDARD-METHOD no longer causes stack exhaustion.
+    (thanks to Gerd Moellmann)
+  * fixed bug 246: increased compilation speed of long
+    MULTIPLE-VALUE-BIND (and likewise of NTH-VALUE with a constant
+    integer argument)
+  * a contributed module implementing COMPILER-LET and MACROEXPAND-ALL
+    has been included.
+  * DEFCONSTANT now throws a condition of type
+    SB-EXT:DEFCONSTANT-UNEQL if it is being asked to redefine a
+    constant to a non-EQL value; CONTINUE and ABORT restarts
+    respectively change and preserve the value. 
+  * fixed bug 63: The code walker, part of the implementation of CLOS,
+    is now better at handling symbol macros.
+  * bug fix: There is no longer an internal implementation type named
+    CL:LENGTH. (reported by Raymond Toy)
+  * bug fix: In macro-like defining macros/special operators the
+    implicit block does not enclose the lambda list.
+  * fixed bugs 10 and 43: Bare VALUES, AND, OR and MEMBER symbols (not
+    enclosed in parentheses) are not suitable as type specifiers, and
+    their use properly signals an error now.
+  * bug fix: An argument count mismatch for a type specifier in code
+    being compiled no longer causes an unhandled error at compile
+    time, but signals a compile-time warning.
+  * fixed simple vector readable printing
+  * bug fix: DESCRIBE takes more care over whether the class
+    precedence list slot of a class is bound before accessing it.
+    (reported by Markus Krummenacker)
+  * bug fix: FORMATTER can successfully compile pretty-printer format
+    strings which use variants of the ~* directive inside.
+  * bug fix: SEARCH now applies its TEST predicate to the elements of
+    the arguments in the correct order. (thanks to Wolfhard Buss)
+  * fixed bug 235b: The compiler uses return types of MAPCAR and friends
+    in type inference. (thanks to Robert E. Brown)
+  * bug fix: Reading in symbols with an explicit package name of ""
+    (e.g. '||::FOO) now works correctly.  (reported by Henrik Motakef)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** NIL is now allowed as a structure slot name.
+    ** Arbitrary numbers, not just REALs, are allowed in certain
+       circumstances in LOOP for-as-arithmetic clauses.
+    ** Multiple class redefinitions before slot access no longer
+       causes a type error.
+    ** (SETF FIND-CLASS) now accepts NIL as an argument to remove the
+       association between the name and a class.
+    ** Generic functions with non-standard method-combination and over
+       five methods all of which return constants no longer return NIL
+       after the first few invocations. (thanks to Gerd Moellmann)
+    ** CALL-NEXT-METHOD with no arguments now passes the original
+       values of the arguments, even in the presence of assignment.
+    ** Functions [N]SUBST*, LAST, NRECONC, [N]SUBLIS may return any
+       object.
+    ** DISASSEMBLE works with closures and funcallable instances.
+    ** ADD-METHOD now returns the generic function, not the new method.
+    ** FIND-METHOD signals an error if the lengths of the specializers
+       is incompatible with the generic function, even if the ERRORP
+       argument is true.
+    ** TYPE-OF returns recognizeable subtypes of all built-in-types of
+       which its argument is a member.
+    ** DEFCLASS only redefines the class named by its class-name
+       argument if that name is the proper name of the class;
+       otherwise, it creates a new class.
+    ** SLOT-UNBOUND now correctly initalizes the CELL-ERROR-NAME slot
+       of the UNBOUND-SLOT condition to the name of the slot.
+    ** (SETF (AREF bv 0) ...) did not work for bit vectors.
+    ** SLOT-UNBOUND and SLOT-MISSING now have their return values
+       treated by SLOT-BOUNDP, SLOT-VALUE, (SETF SLOT-VALUE) and
+       SLOT-MAKUNBOUND in the specified fashion.
 
-* The system is now under CVS at SourceForge (instead of the
-  CVS repository on my home machine).
-* The new signal handling code has been tweaked to treat register
-  contents as (UNSIGNED-BYTE 32), as the old CMU CL code did,
-  instead of (SIGNED-BYTE 32), as the C header files have it. (Code 
-  downstream, e.g. in debug-int.lisp, has implicit dependencies
-  on the unsignedness of integer representation of machine words, 
-  and that caused the system to bomb out with infinite regress
-  when trying to recover from type errors involving signed values,
-  e.g. (BUTLAST '(1 2 3) -1).)
-* (BUTLAST NIL) and (NBUTLAST NIL) now return NIL as they should.
-  (This was one of the bugs Peter Van Eynde reported back in July.)
-* The system now uses code inspired by Colin Walters' O(N)
-  implementation of MAP (from the cmucl-imp@cons.org mailing
-  list, 2 September 2000) when it can't use a DEFTRANSFORM to
-  inline the MAP operation, and there is more than one
-  sequence argument to the MAP call (so that it can't just
-  do ETYPECASE once and for all based on the type of the
-  single sequence argument). (The old non-inline implementation
-  of the general M-argument sequence-of-length-N case required
-  O(M*N*N) time when any of the sequence arguments were LISTs.)
-* The QUIT :UNIX-CODE keyword argument has been renamed to 
-  QUIT :UNIX-STATUS. (The old name still works, but is deprecated.)
-* Raymond Wiker's patches to port RUN-PROGRAM from CMU CL to SBCL
-  have been added.
-* Raymond Wiker's patches to port dynamic loading from Linux to
-  FreeBSD have been added.
-* The BUGS file is now more nearly up to date, thanks in large part
-  to Martin Atzmueller's review of it.
-* The debugger now flushes standard output streams before it begins
-  its output ("debugger invoked" and so forth).
-* The core version number and fasl file version number have both
-  been incremented, because of incompatible changes in the layout
-  of static symbols.
-* FINISH-OUTPUT is now called more consistently on QUIT. (It
-  used to not be called for a saved Lisp image.)
-* Martin Atzmueller's version of a patch to fix a compiler crash,
-  as posted on sbcl-devel 13 September 2000, has been installed.
-* Instead of installing Martin Atzmueller's patch for the
-  compiler transform for SUBSEQ, I deleted the compiler transform,
-  and transforms for some similar consing operations.
-* A bug in signal handling which kept TRACE from working on OpenBSD
-  has been fixed.
-* added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized
-  away by constant folding
-* The system now defines its address space constants in one place
-  (in the Lisp sources), and propagates them automatically elsewhere
-  (through GENESIS and the sbcl.h file). Therefore, patching the
-  address map is less unnecessarily tedious and error-prone. The
-  Lisp names of address space constants have also been systematized.
-* CVS tags like dollar-Header-dollar have been removed from
-  the sources, because they have never saved me trouble and
-  they've been source of trouble working with patches and other
-  diff-related operations.
-* fixed the PROG1-vs.-PROGN bug in HANDLER-BIND (reported by 
-  ole.rohne@cern.ch on cmucl-help@cons.org 2000-10-25)
+changes in sbcl-0.8.0 relative to sbcl-0.8alpha.0
+  * SBCL now builds using CLISP (version of late April 2003 from CVS) as
+    cross-compilation host. As a consequence, we can now bootstrap our
+    way up to SBCL starting with a bare gcc toolchain and human-readable
+    source code (first the source to CLISP, then the source to SBCL).
+  * A contributed module containing a partial implementation of the
+    simple-streams interface has been included.  (thanks to Rudi
+    Schlatte)
+  * A contributed module implementing the RFC1321 Message Digest
+    Algorithm, known as MD5, has been included.
+  * minor incompatible change: The :NEGATIVE-ZERO-IS-NOT-ZERO feature
+    no longer has any effect, as the code controlled by this feature
+    has been deleted.  (As far as we know, no-one has ever built using
+    this feature, and its semantics were confused in any case).
+  * minor incompatible change: As a consequence of making SLOT-EXISTS-P
+    work on conditions (as required by the ANSI specification),
+    SLOT-VALUE, (SETF SLOT-VALUE) and SLOT-BOUNDP likewise have the
+    expected behaviour on conditions.  Users should note, however,
+    that such behaviour is not required by the ANSI specification,
+    and so use of this behaviour may render their code unportable.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** the GENERIC-FUNCTION type is no longer disjoint from FUNCTION
+       types.
+    ** &ENVIRONMENT parameter in macro lambda list is bound first.
+    ** SXHASH on condition objects no longer returns NIL.
+    ** :ALLOCATION :CLASS slots are better treated; their values are
+       updated on class redefinition, and initforms inherited from
+       superclasses are applied.
+    ** REMOVE-METHOD returns its generic function argument even when
+       no method was removed.
+    ** SHARED-INITIALIZE now initializes the values of the requested
+       slots, including those with :ALLOCATION :CLASS.
+    ** ALLOCATE-INSTANCE now works on structure classes defined via
+       DEFSTRUCT (and not just by those from DEFCLASS :METACLASS
+       STRUCTURE-CLASS).
+    ** SLOT-EXISTS-P now works on conditions, as well as structures
+       and CLOS instances.
+    ** MAKE-LOAD-FORM now has the required methods on
+       STRUCTURE-OBJECT, CONDITION and STANDARD-OBJECT.
+    ** MAKE-LOAD-FORM-SAVING-SLOTS no longer returns a special
+       keyword, and now implements the SLOT-NAMES argument.
+    ** methods with &OPTIONAL arguments no longer allow too many
+       arguments to be passed in the call without error.
+    ** DEFGENERIC now checks that the :ARGUMENT-PRECEDENCE-ORDER
+       option is consistent with the required arguments of the generic
+       function lambda list.
+  * bug fix: REQUIRE accepts a string designator. (Thanks to 
+    Antonio Martinez.)
+  * bug fix: SB-MOP:DIRECT-SLOT-DEFINITION-CLASS and
+    SB-MOP:EFFECTIVE-SLOT-DEFINITION-CLASS now have the
+    specified-by-AMOP lambda list of (CLASS &REST INITARGS).
+  * bug fix: The compiler now checks for duplicated variables in macro
+    lambda lists.
+  * bug fix: SETQ on globals returns the correct value.
+  * fixed bug 47.d: (DEFGENERIC IF (X)) now signals a PROGRAM-ERROR,
+    not a COMPILER-ERROR (followed by some other strange error on
+    choosing the CONTINUE restart).
+  * bug fix: make.sh and friends are now more consistent in the way that
+    they look for GNU "make".
 
-changes in sbcl-0.6.9 relative to sbcl-0.6.8:
+changes in sbcl-0.8alpha.0 relative to sbcl-0.7.14
+  * experimental native threads support (on x86 Linux >=2.4 only).
+    This is not compiled in by default: you need to add :SB-THREAD to
+    the target features.  See the "Beyond ANSI" chapter of the manual
+    for details.
+  * fix for longstanding nonANSIism: The old distinction between
+    CL:CLASS objects and SB-PCL:CLASS objects has been eliminated.
+    The return value from CL:FIND-CLASS is now a CLOS class, and
+    likewise that of CL:CLASS-OF; CL:BUILT-IN-CLASS,
+    CL:STRUCTURE-CLASS and CL:STANDARD-CLASS name CLOS classes.
+  * An interface to the MetaObject Protocol, as described in Kiczales,
+    des Rivieres and Bobrow's "The Art of the Metaobject Protocol",
+    MIT Press, 1991, is available from the SB-MOP package.
+  * incompatible change: the SB-PCL package should now be considered
+    a private implementation detail, and no longer a semi-private MOP
+    interface.
+  * minor incompatible change: due to rearrangement for threads, the
+    control stack and binding stack are now allocated at arbitrary
+    addresses instead of being hardcoded per-port.  Users affected by
+    this probably have to be doing advanced things with shared
+    libraries, and will know who they are.
+  * minor incompatible change: Previously, all --eval forms used were
+    processed with READ before any of them were processed with EVAL.
+    Now each --eval form is processed with both READ and EVAL before
+    the next --eval form is processed. (Thus package operations like
+    sbcl --eval "(defpackage :foo)" --eval "(print 'foo::bar)" now
+    work as the user might reasonably expect.)
+  * minor incompatible change: *STANDARD-INPUT* is now only an
+    INPUT-STREAM, not a BIDIRECTIONAL-STREAM.  (thanks to Antonio
+    Martinez)
+  * minor incompatible change: Y-OR-N-P is now character-oriented,
+    not line oriented.  Also, YES-OR-NO-P now works without errors.
+    (thanks to Antonio Martinez)
+  * sb-aclrepl module improvements: an integrated inspector, added
+    repl features, and a bug fix to :trace command.
+  * Known functions, which cannot be open coded by the backend, are
+    considered to be able to check types of their arguments. (fixing
+    a bug report by Nathan J. Froyd)
+  * fixed a bug in computing method discriminating functions: It is
+    now possible to define methods specialized on classes which have
+    forward-referenced superclasses. (thanks to Gerd Moellmann)
+  * fixed evaluation order in optional entries (reported by Gilbert
+    Baumann)
+  * SB-MOP:ENSURE-CLASS-USING-CLASS now takes its arguments in the
+    specified-by-AMOP order of (CLASS NAME &REST ARGS &KEY).
+  * SB-MOP:COMPUTE-EFFECTIVE-SLOT-DEFINITION now takes the
+    required-by-AMOP NAME argument, as well as CLASS and
+    DIRECT-SLOT-DEFINITIONS.  (thanks to Kevin Rosenberg)
+  * fixed bug 20: DEFMETHOD can define methods using names that are
+    not the proper names of classes to designate class specializers.
+  * bug fix: INTERACTIVE-STREAM-P now works on streams associated with
+    Unix file descriptors, instead of blowing up. (thanks to Antonio
+    Martinez)
+  * Garbage collection refactoring: user-visible change is that a
+    call to the GC function during WITHOUT-GCING will not do garbage
+    collection until the end of the WITHOUT-GCING.  If you were doing
+    this you were probably losing anyway.
+  * fixed bug in MEMBER type: (MEMBER 0.0) is not the same as
+    (SINGLE-FLOAT 0.0 0.0), because of the existence of -0.0 which is
+    TYPEP the latter but not the former.
+  * The compiler issues a full WARNING for calls to undefined functions
+    with names from the CL package.
+  * MAP-INTO for a vector destination is open coded.  (reported by
+    Brian Downing on c.l.l)
+  * bug fix: the long form of DEFINE-METHOD-COMBINATION now accepts a
+    documentation string.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** COPY-ALIST now signals an error if its argument is a dotted
+       list.
+    ** Condition slots are now accessed more correctly in the presence
+       of multiple initargs for a given slot.
+    ** The USE-VALUE, CONTINUE and STORE-VALUE functions now correctly
+       exclude restarts of the same name associated with a different
+       condition.
+    ** DEFCLASS of forward-referenced classes with another
+       forward-referenced class in the superclasses list no longer
+       causes an error.
+    ** Condition slots are now initialized once each, not multiple
+       times. (thanks to Gerd Moellmann)
+    ** CONVERT-MORE-CALL failed on a lambda list (&KEY). (thanks to
+       Gerd Moellmann)
+    ** &WHOLE and &REST arguments in macro lambda lists are patterns.
+    ** NSET-EXCLUSIVE-OR does not return extra elements when its
+       arguments contain duplicated elements.
+    ** RESTART-CASE understands local macros.
+    ** RESTART-CASE associates exactly its own restarts with a condition.
+    ** ENDP in safe mode checks its argument to be of type LIST.
+    ** COPY-SYMBOL in a threaded build no longer fails when the symbol
+       in question is unbound.
+    ** Optimized MAKE-INSTANCE functions no longer cause internal
+       assertion failures in the presence of duplicate initargs.
+    ** SLOT-MAKUNBOUND returns the instance acted upon, not NIL.
+    ** Side-effectful :DEFAULT-INITARGS have their side-effects
+       propagated even in the ctor optimized implementation of
+       MAKE-INSTANCE.
+    ** :ALLOW-OTHER-KEYS NIL is now accepted in an initarg list.
 
-* DESCRIBE now works on CONDITION objects.
-* The debugger now handles errors which arise when trying to print
-  *DEBUG-CONDITION*, so that it's less likely to fall into infinite
-  regress.
-* The build system now uses an additional file, customize-target-features.lisp,
-  to allow local modifications to the target *FEATURES* list. (The point of
-  this is that now I can set up a custom configuration, e.g. with :SB-SHOW
-  debugging features enabled, without having to worry about propagating it
-  into everyone's system when I do a "cvs update".) When no
-  customize-target-features.lisp file exists, the target *FEATURES* list
-  should be constructed the same way as before.
-* fixed bugs in DEFCONSTANT ANSI-compatibility:
-  ** DEFCONSTANT now tests reassignments using EQL, not EQUAL, in order to 
-     warn about behavior which is undefined under the ANSI spec. Note: This
-     is specified by ANSI, but it's not very popular with programmers.
-     If it causes you problems, take a look at the new SB-INT:DEFCONSTANT-EQX
-     macro in the SBCL sources for an example of a workaround which you
-     might use to make portable ANSI-standard code which does what you want.
-  ** DEFCONSTANT's implementation is now based on EVAL-WHEN instead of on
-     pre-ANSI IR1 translation magic, so it does the ANSI-specified thing
-     when it's used as a non-toplevel form. (This is required in order
-     to implement the DEFCONSTANT-EQX macro.)
-  ** (DEFCONSTANT X 1) (DEFVAR X) (SETF X 2) no longer "works".
-  ** Unfortunately, non-toplevel DEFCONSTANT forms can still do some
-     funny things, due to bugs in the implementation of EVAL-WHEN
-     (bug #IR1-3). This probably won't be fixed until 0.7.x. (Fortunately,
-     non-toplevel DEFCONSTANTs are uncommon.)
-* The core file version number and fasl file version number have been 
-  incremented, because the old noncompliant DEFCONSTANT behavior involved
-  calling functions which no longer exist, and because I also took the
-  opportunity to chop an unsupported slot out of the DEBUG-SOURCE structure.
-* fixed bug 1 (error handling before read-eval-print loop starts), and
-  redid debugger restarts and related debugger commands somewhat while
-  doing so:
-  ** The QUIT debugger command is gone, since it did something
-     rather different than the SB-EXT:QUIT command, and since it never
-     worked properly outside the main toplevel read/eval/print loop.
-     Invoking the new TOPLEVEL restart provides the same functionality.
-  ** The GO debugger command is also gone, since you can just invoke
-     the CONTINUE restart directly instead.
-  ** The TOP debugger command is also gone, since it's redundant with the
-     FRAME 0 command, and since it interfered with abbreviations for the
-     TOPLEVEL restart.
-* The system now recovers better from non-PACKAGE values of the *PACKAGE*
-  variable.
-* The system now understands compound CONS types (e.g. (CONS FIXNUM T))
-  as required by ANSI. (thanks to Douglas Crosher's CMU CL patches, with
-  some porting work by Martin Atzmueller)
-* Martin Atzmueller reviewed the CMU CL mailing lists and came back
-  with a boatload of patches which he ported to SBCL. Now that those
-  have been applied,
-  ** The system tries to make sure that its low-priority messages
-     are prefixed by semicolons, to help people who like to use
-     syntax highlighting in their ILISP buffer. (This patch
-     was originally due to Raymond Toy.)
-  ** The system now optimizes INTEGER-LENGTH better, thanks to more
-     patches originally written by Raymond Toy.
-  ** The compiler understands coercion between single-value and 
-     multiple-VALUES type expressions better, getting rid of some very
-     weird behavior, thanks to patches originally by Robert MacLachlan
-     and Douglas Crosher.
-  ** The system understands ANSI-style non-KEYWORD &KEY arguments in 
-     lambda lists, thanks to a patch originally by Pierre Mai.
-  ** The system no longer bogusly warns about "abbreviated type
-     declarations".
-  ** The compiler gets less confused by inlining and RETURN-FROM,
-     thanks to some patches originally by Tim Moore.
-  ** The system no longer hangs when dumping circular lists to fasl
-     files, thanks to a patch originally from Douglas Crosher.
-* Martin Atzmueller also fixed ROOM, so that it no longer fails with an
-  undefined function error.
-* gave up on fixing bug 3 (forbidden-by-ANSI warning for type mismatch
-  in structure slot initforms) for now, documented workaround instead:-|
-* fixed bug 4 (no WARNING for DECLAIM FTYPE of slot accessor function)
-* fixed bug 5: added stubs for various Gray stream functions called
-  in the not-a-CL:STREAM case, so that even when Gray streams aren't
-  installed, at least appropriate type errors are generated
-* fixed bug 8: better reporting of various PROGRAM-ERRORs
-* fixed bug 9: IGNORE and IGNORABLE now work reasonably and more
-  consistently in DEFMETHOD forms. 
-* removed bug 21 from BUGS, since Martin Atzmueller points out that 
-  it doesn't seem to affect SBCL after all
-* The C runtime system now builds with better optimization and many
-  fewer warnings, thanks to lots of cleanups by Martin Atzmueller.
-
-changes in sbcl-0.6.10 relative to sbcl-0.6.9:
+changes in sbcl-0.7.14 relative to sbcl-0.7.13:
+  * a better implementation of SXHASH on (simple) bit vectors,
+    measured both in execution speed and in distribution of results
+    over the positive fixnums, has been installed.  Likewise, a better
+    implementation of EQUAL for simple bit vectors is now available.
+  * fixed CEILING optimization for a divisor of form 2^k.
+  * fixed bug 240 (emitting extra style warnings "using the lexical
+    binding of the symbol *XXX*" for &OPTIONAL arguments).  (reported
+    by Antonio Martinez)
+  * fixed SXHASH, giving different results for NIL depending on type
+    declarations (SYMBOL or LIST).  (thanks to Gerd Moellmann)
+  * fixed bug in DEFPARAMETER and DEFVAR: they could assign a lexical
+    variable.  (found by Rolf Wester)
+  * SBCL does not ignore type declarations for special
+    variables.  (reported by rif on c.l.l 2003-03-05)
+  * some bug fixes in contrib/sb-aclrepl/
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** a bug in the CONS type specifier, whereby the CAR and CDR
+       types got intertwined, has been fixed;
+    ** the type system is now able to reason about the interaction
+       between INTEGER and RATIO types more completely;
+    ** APPEND, [N]REVERSE and NRECONC check that those their
+       arguments, which must be proper lists, are really so;
+    ** An array specialized to be unable to hold elements has been
+       implemented, as required -- yes, really -- by ANSI;
+    ** GETF and GET-PROPERTIES throw a TYPE-ERROR, not a SIMPLE-ERROR,
+       on malformed property lists;
 
-* A patch from Martin Atzmueller seems to have solved the SIGINT
-  problem, and as far as we know, signal-handling now works cleanly.
-  (If you find any new bugs, please report them!)
-* The system no longer defaults Lisp source file names to types
-  ".l", ".cl", or ".lsp", but only to ".lisp". 
-* The compiler no longer uses special default file extensions for
-  byte-compiled code. (The ANSI definition of COMPILE-FILE-PATHNAME
-  seems to expect a single default extension for all compiled code,
-  and there's no compelling reason to try to stretch the standard
-  to allow two different extensions.) Instead, byte-compiled files
-  default to the same extension as native-compiled files.
-* Fasl file format version numbers have increased again, because
-  a rearrangement of internal implementation packages made some 
-  dumped symbols in old fasl files unreadable in new cores.
-* DECLARE/DECLAIM/PROCLAIM logic is more nearly ANSI in general, with
-  many fewer weird special cases.
-* Bug #17 (differing COMPILE-FILE behavior between logical and 
-  physical pathnames) has been fixed, and some related misbehavior too,
-  thanks to a patch from Martin Atzmueller.
-* Bug #30 (reader problems) is gone, thanks to a CMU CL patch
-  by Tim Moore, ported to SBCL by Martin Atzmueller.
-* Martin Atzmueller fixed several filesystem-related problems,
-  including bug #36, in part by porting CMU CL patches, which were
-  written in part by Paul Werkowski.
-* More compiler warnings in src/runtime/ are gone, thanks to 
-  more patches from Martin Atzmueller.
-* Martin Atzmueller pointed out that bug 37 was fixed by his patches
-  some time ago.
+changes in sbcl-0.7.13 relative to sbcl-0.7.12:
+  * incompatible packaging change: in line with Unix convention, 
+    SBCL now looks for its core file in /usr/{local/,}lib/sbcl/sbcl.core 
+    if it's not in $SBCL_HOME.  It also sets SBCL_HOME to match.
+  * REQUIRE and PROVIDE are now optionally capable of doing something
+    useful. See the documentation string for REQUIRE.
+  * infrastructure for a managed SBCL contrib system: contributed 
+    modules in this release include:
+    ** the ASDF system definition facility;
+    ** an interface to the BSD Sockets API;
+    ** an ACL-like convenience interface to the repl; 
+       (thanks to Kevin Rosenberg)
+    ** an implementation of ROTATE-BYTE, with efficient implementation
+       on x86 hardware;
+  * fixed a bug in LOG, so that LOG of a rational argument near 1 now
+    gives a closer approximation to the right answer than previously.
+    (thanks to Raymond Toy)
+  * fixed bug 157: TYPEP, SUBTYPEP, UPGRADED-ARRAY-ELEMENT-TYPE and
+    UPGRADED-COMPLEX-PART-TYPE now take (ignored, in all situations)
+    optional environment arguments, as required by ANSI.
+  * fixed bugs in other functions taking environment objects, allowing
+    calls with an explicit NIL environment argument to be compiled
+    without error.
+  * fixed bug 228: primary return values from
+    FUNCTION-LAMBDA-EXPRESSION are either NIL or suitable for input to
+    COMPILE or FUNCTION.
+  * fixed a bug in DEFSTRUCT: predicates for :NAMED structures with
+    :TYPE will no longer signal errors on innocuous objects.
+  * fixed bug 231b: SETQ is better at respecting type declarations in
+    the lexical environment.
+  * fixed a bug in DEFCLASS: classes named by symbols with no or
+    unprintable packages can now be defined.
+  * fixed a bug in RESTART-BIND: The :TEST-FUNCTION option had been
+    carelessly renamed to :TEST-FUN.  (thanks to Robert E. Brown)
+  * fixed compiler failure related to checking types of functions.
+    (reported by Robert E. Brown)
+  * the compiler is now much more consistent in its error-checking
+    treatment of bounding index arguments to sequence functions: in
+    (SAFETY 3) code, errors will be signalled in almost all cases if
+    invalid sequence bounding indices are passed to functions defined
+    by ANSI to operate on sequences.
+  * fixed a bug in the build procedure: documentation of SBCL-specific
+    packages is now preserved and available in the final Lisp image.
+  * lifted FDEFINITION lookup out of loops in the implementation of
+    many list operations.  (thanks to Robert E. Brown)
+  * fixed a bug in the reader: the #n# reader macro now works for
+    objects of type STANDARD-OBJECT.  (reported by Tony Martinez)
+  * the compiler is now aware that SYMBOL-FUNCTION returns a FUNCTION
+    and that READ-DELIMITED-LIST returns a LIST.  (thanks to Robert
+    E. Brown and Tony Martinez respectively)
+  * PCL is now smarter about SLOT-VALUE, (SETF SLOT-VALUE) and
+    SLOT-BOUNDP: in particular, it is now able to optimize them much
+    better, and is now not vulnerable to having packages renamed.
+    Furthermore, a compliance bug has been fixed: SLOT-MISSING is now
+    always called when a slot is not present in an instance.  (thanks
+    to Gerd Moellmann)
+  * fixed a bug related to CONCATENATED-STREAMs: PEEK-CHAR will no
+    longer signal an error on unreading a character following EOF on
+    the previous constituent stream.  (thanks to Tony Martinez)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** ARRAY-IN-BOUNDS-P now allows arbitrary integers as arguments,
+       not just nonnegative fixnums;
+    ** the logical bit-array operators such as BIT-AND now accept an
+       explicit NIL for their "opt-arg" argument (to indicate a
+       freshly-consed result bit-array);
+    ** ELT now signals an error on an invalid sequence index in safe
+       code;
+    ** the type system is now cleverer about negations of numeric
+       types, and consequently understands the BIGNUM and RATIO types
+       better;
+    ** the type system is now cleverer about the interaction between
+       INTEGER and RATIO types: while bugs still remain, many more
+       cases are accurately computed;
+    ** in TYPECASE, OTHERWISE now only introduces an otherwise-clause
+       if it is in the last clause;
+    ** CONSTANTLY now correctly returns a side-effect-free function in
+       all cases;
+    ** DECLARE is no longer treated as a special-operator; in
+       particular, SPECIAL-OPERATOR-P no longer returns T for DECLARE;
+  * incremented fasl file version number due to the change in the
+    DEFSTRUCT-SLOT-DESCRIPTION structure.
 
-changes in sbcl-0.6.11 relative to sbcl-0.6.10:
-* Martin Atzmueller pointed out that bugs #9 and #25 are gone in
-  current SBCL.
-* bug 34 fixed by Martin Atzmueller: dumping/loading instances works
-  better
-* fixed bug 40: TYPEP, SUBTYPEP, UPGRADED-ARRAY-ELEMENT-TYPE, 
-  and UPGRADED-COMPLEX-PART-TYPE now work better with of compound
-  types built from undefined types, e.g. '(VECTOR SOME-UNDEF-TYPE).
-* DESCRIBE now works on structure objects again.
-* Most function call argument type mismatches are now handled as
-  STYLE-WARNINGs instead of full WARNINGs, since the compiler doesn't
-  know whether the function will be redefined before the call is
-  executed. (The compiler could flag local calls with full WARNINGs,
-  as per the ANSI spec "3.2.2.3 Semantic Constraints", but right now
-  it doesn't keep track of enough information to know whether calls
-  are local in this sense.)
-* Compiler output is now more verbose, with messages truncated
-  later than before. (There should be some supported way for users
-  to override the default verbosity, but I haven't decided how to 
-  provide it yet, so this behavior is still controlled by the internal
-  SB-C::*COMPILER-ERROR-PRINT-FOO* variables in
-  src/compiler/ir1util.lisp.)
-* Fasl file format version numbers have increased again, because
-  support for the Gray streams extension changes the layout of the
-  system's STREAM objects.
-* The Gray subclassable streams extension now works, thanks to a 
-  patch from Martin Atzmueller.
-* The full LOAD-FOREIGN extension (not just the primitive
-  LOAD-FOREIGN-1) now works, thanks to a patch from Martin Atzmueller.
-* The default behavior of RUN-PROGRAM has changed. Now, unlike CMU CL
-  but like most other programs, it defaults to copying the Unix
-  environment from the original process instead of starting the
-  new process in an empty environment.
-* Extensions which manipulate the Unix environment now support
-  an :ENVIRONMENT keyword option which doesn't smash case or 
-  do other bad things. The CMU-CL-style :ENV option is retained
-  for porting convenience.
-* LOAD-FOREIGN (and LOAD-1-FOREIGN) now support logical pathnames,
-  as per Daniel Barlow's suggestion and Martin Atzmueller's patch
+changes in sbcl-0.7.12 relative to sbcl-0.7.11:
+  * minor incompatible change: code processed by the "interpreter" or
+    EVAL now has a compilation optimization policy of (DEBUG 2)
+    (changed from (DEBUG 1)) to improve debuggability of interactive
+    development, and to allow the use of the debug RETURN command in
+    such code.
+  * an experimental implementation of the RETURN command for the
+    debugger has been included.  (thanks to Frederik Kuivinen)
+  * fixed bug 62: constraints were not propagated into a loop.
+  * fixed bug in embedded calls of SORT (reported and investigated by
+    Wolfgang Jenkner).
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** printing and reading of arrays with some dimensions having
+       length 0 (thanks to Gerd Moellmann);
+    ** BOA constructor with &AUX argument without a default value does
+       not cause a type error;
+    ** CONSTANTP now returns true for all self-evaluating objects.
 
-changes in sbcl-0.6.12 relative to sbcl-0.6.11:
-* incompatible change: The old SB-EXT:OPTIMIZE-INTERFACE declaration
-  is no longer recognized. I apologize for this, because it was
-  listed in SB-EXT as a supported extension, but I found that
-  its existing behavior was poorly specified, as well as incorrectly
-  specified, and it looked like too much of a mess to straighten it
-  out. I have enough on my hands trying to get ANSI stuff to work..
-* many patches ported from CMU CL by Martin Atzmueller, with 
-  half a dozen bug fixes in pretty-printing and the debugger, and
-  half a dozen others elsewhere
-* fixed bug 13: Floating point infinities are now supported again.
-  They might still be a little bit flaky, but thanks to bug reports
-  from Nathan Froyd and CMU CL patches from Raymond Toy they're not
-  as flaky as they were.
-* The --noprogrammer command line option is now supported. (Its
-  behavior is slightly different in detail from what the old man
-  page claimed it would do, but it's still appropriate under the
-  same circumstances that the man page talks about.)
-* The :SB-PROPAGATE-FLOAT-TYPE and :SB-PROPAGATE-FUN-TYPE features
-  are now supported, and enabled by default. Thus, the compiler can
-  handle many floating point and complex operations much less
-  inefficiently. (Thus e.g. you can implement a complex FFT
-  without consing!)
-* The compiler now detects type mismatches between DECLAIM FTYPE 
-  and DEFUN better, and implements CHECK-TYPE more correctly, and
-  SBCL builds under CMU CL again despite its non-ANSI EVAL-WHEN,
-  thanks to patches from Martin Atzmueller.
-* various fixes to make the cross-compiler more portable to
-  ANSI-conforming-but-different cross-compilation hosts (notably
-  Lispworks for Windows, following bug reports from Arthur Lemmens)
-* A bug in READ-SEQUENCE for CONCATENATED-STREAM, and a gross
-  ANSI noncompliance in DEFMACRO &KEY argument parsing, have been
-  fixed thanks to Pierre Mai's CMU CL patches.
-* fixes to keep the system from overflowing internal counters when
-  it tries to use i/o buffers larger than 16M bytes
-* fixed bug 45a: Various internal functions required to support
-  complex special functions have been merged from CMU CL sources.
-  (When I was first setting up SBCL, I misunderstood a compile-time
-  conditional #-OLD-SPECFUN, and so accidentally deleted them.)
-* improved support for type intersection and union, fixing bug 12
-  (e.g., now (SUBTYPEP 'KEYWORD 'SYMBOL)=>T,T) and some other
-  more obscure bugs as well
-* some steps toward byte-compiling non-performance-critical
-  parts of the system, courtesy of patches from Martin Atzmueller
-* Christophe Rhodes has made some debian packages of sbcl at
-  <http://www-jcsu.jesus.cam.ac.uk/ftp/pub/debian/lisp>.
-  From his sbcl-devel e-mail of 2001-04-08 they're not completely
-  stable, but are nonetheless usable. When he's ready, I'd be happy
-  to add them to the SourceForge "File Releases" section. (And if
-  anyone wants to do RPMs or *BSD packages, they'd be welcome too.)
-* new fasl file format version number (because of changes in 
-  internal representation of (OR ..) types to accommodate the new
-  support for (AND ..) types, among other things)
+changes in sbcl-0.7.11 relative to sbcl-0.7.10:
+  * fixed bug 127: DEFSTRUCT now does not clobber old structure
+    accessors that are related by inheritance, as specified in the
+    :CONC-NAME section of the specification of DEFSTRUCT.  (thanks to
+    Valtteri Vuorikoski)
+  * The compiler is now able to inline functions that were defined in
+    a complex lexical environment (e.g. inside a MACROLET).
+  * fixed bug in DESCRIBE, which now works on rank-0 arrays.  (thanks
+    to Lutz Euler)
+  * Support for the upcoming FreeBSD-5.0 release has been included.
+    (thanks to Dag-Erling Smorgrav)
+  * fixed bug 219: DEFINE-COMPILER-MACRO no longer has compile-time
+    effect when it is not in a toplevel context.
+  * fixed bug 222: DEFMETHOD and SYMBOL-MACROLET interactions now
+    stand a better chance of being correct.  (thanks to Gerd
+    Moellmann)
+  * fixed bug in COERCE, which now signals an error on coercing a
+    rational to a bounded real type which excludes the expected
+    answer.
+  * The compiler is now able to derive types more accurately from the
+    COERCE and COMPILE functions.
+  * fixed bug 223: functional binding is considered to be constant
+    only for symbols in the CL package.
+  * fixed bug 231: SETQ did not check the type of a variable being set
+    (reported by Robert E. Brown)
+  * A new optimization for MAKE-INSTANCE has been included, fixing
+    various bugs (including relating to :ALLOCATION :CLASS slots and
+    :DEFAULT-INITARGS over-eager evalueation).  (thanks to Gerd
+    Moellmann)
+  * fixed some LOOP bugs revealed by Paul Dietz' test suite:
+    ** As required by ANSI, LOOP now disallows anonymous collection
+       clauses such as COLLECT I in conjunction with aggregate boolean
+       clauses such as THEREIS (= I 1);
+    ** LOOP now signals an error when any variable is reused in the
+       same loop (including the potentially useful construct analogous
+       to WITH A = 1 WITH A = (1+ A);
+    ** IT is only a special loop symbol within the first clause of a
+       conditional loop clause;
+    ** LOOP with a typed iteration variable over a hashtable now
+       signals a type error iff it should.
+  * fixed some other bugs revealed by Paul Dietz' test suite:
+    ** FILE-STREAM now names the class previously known as FD-STREAM;
+    ** in DEFSTRUCT, a bare :CONC-NAME (or a :CONC-NAME with no
+       argument) no longer signals an error;
+    ** likewise in DEFSTRUCT, :CONC-NAME NIL now respects the package
+       of the slot symbol, rather than using the current package
+       ((:CONC-NAME "") continues to intern the slot's name in the
+       current package);
+  * incremented fasl file version number, because of the incompatible
+    change to the DEFSTRUCT-DESCRIPTION structure, and again because
+    of the new implementation of DEFINE-COMPILER-MACRO.
 
-changes in sbcl-0.6.13 relative to sbcl-0.6.12:
-* a port to the Compaq/DEC Alpha CPU, thanks to Dan Barlow
-* Martin Atzmueller ported Tim Moore's marvellous CMU CL DISASSEMBLE
-  patch, so that DISASSEMBLE output is much nicer.
-* The code in the SB-PROFILE package now seems reasonably stable.
-  I still haven't decided what the final interface should look like
-  (I'd like PROFILE to interact cleanly with TRACE, since both
-  facilities use function encapsulation) but if you have a need
-  for profiling now, you can probably use it successfully with
-  the current CMU-CL-style interface.
-* Pathnames and *DEFAULT-DIRECTORY-DEFAULTS* are much more
-  ANSI-compliant, thanks to various fixes and tests from Dan Barlow.
-  Also, at Dan Barlow's suggestion, TRUENAME on a dangling symbolic
-  link now returns the dangling link itself, and for similar
-  reasons, TRUENAME on a cyclic symbolic link returns the cyclic
-  link itself. (In these cases the old code signalled an error and
-  looped endlessly, respectively.) Thus, DIRECTORY now works even
-  in the presence of dangling and cyclic symbolic links.
-* Compiler trace output (the :TRACE-FILE option to COMPILE-FILE)
-  is now a supported extension again, since the consensus on
-  sbcl-devel was that it can be useful for ordinary development
-  work, not just for debugging SBCL itself.
-* The default for SB-EXT:*DERIVE-FUNCTION-TYPES* has changed to
-  NIL, i.e. ANSI behavior, i.e. the compiler now recognizes
-  that currently-defined functions might be redefined later with 
-  different return types. 
-* Hash tables can be printed readably, as inspired by CMU CL code
-  of Eric Marsden and SBCL code of Martin Atzmueller.
-* better error handling in CLOS method combination, thanks to 
-  Martin Atzmueller porting Pierre Mai's CMU CL patches
-* more overflow fixes for >16Mbyte I/O buffers
-* A bug in READ has been fixed, so that now a single Ctrl-D
-  character suffices to cause end-of-file on character streams.
-  In particular, now you only need one Ctrl-D at the command
-  line (not two) to exit SBCL.
-* fixed bug 26: ARRAY-DISPLACEMENT now returns (VALUES NIL 0) for 
-  undisplaced arrays.
-* fixed bug 107 (reported as a CMU CL bug by Erik Naggum on 
-  comp.lang.lisp 2001-06-11): (WRITE #*101 :RADIX T :BASE 36) now
-  does the right thing.
-* The implementation of some type tests, especially for CONDITION
-  types, is now tidier and maybe faster, due to CMU CL code
-  originally by Douglas Crosher, ported by Martin Atzmueller.
-* Some math functions have been fixed, and there are new
-  optimizers for deriving the types of COERCE and ARRAY-ELEMENT-TYPE,
-  thanks to Raymond Toy's work on CMU CL, ported by Martin Atzmueller.
-* (There are also some new optimizers in contrib/*-extras.lisp. Those
-  aren't built into sbcl-0.6.13, but are a sneak preview of what's
-  likely to be built into sbcl-0.7.0.)
-* A bug in COPY-READTABLE was fixed. (Joao Cachopo's patch to CMU
-  CL, ported to SBCL by Martin Atzmueller)
-* DESCRIBE now gives more information in some cases. (Pierre Mai's
-  patch to CMU CL, ported to SBCL by Martin Atzmueller)
-* Martin Atzmueller and Bill Newman fixed some bugs in INSPECT.
-* There's a new slam.sh hack to shorten the edit/compile/debug
-  cycle for low-level changes to SBCL itself, and a new
-  :SB-AFTER-XC-CORE target feature to control the generation of
-  the after-xc.core file needed by slam.sh.
-* minor incompatible change: The ENTRY-POINTS &KEY argument to 
-  COMPILE-FILE is no longer supported, so that now every function
-  gets an entry point, so that block compilation looks a little
-  more like the plain vanilla ANSI section 3.2.2.3 scheme.
-* minor incompatible change: SB-EXT:GET-BYTES-CONSED now
-  returns the number of bytes consed since the system started,
-  rather than the number consed since the first time the function
-  was called. (The new definition parallels ANSI functions like
-  CL:GET-INTERNAL-RUN-TIME.)
-* minor incompatible change: The old CMU-CL-style DIRECTORY options,
-  i.e. :ALL, :FOLLOW-LINKS, and :CHECK-FOR-SUBDIRS, are no longer
-  supported. Now DIRECTORY always does the abstract Common-Lisp-y
-  thing, i.e. :ALL T :FOLLOW-LINKS T :CHECK-FOR-SUBDIRS T.
-* Fasl file version numbers are now independent of the target CPU,
-  since historically most system changes which required version
-  number changes have affected all CPUs equally. Similarly, 
-  the byte fasl file version is now equal to the ordinary
-  fasl file version.
+changes in sbcl-0.7.10 relative to sbcl-0.7.9:
+  * Support for building SBCL for MIPS platforms running in
+    little-endian mode has now been checked in, and basic
+    functionality on said platforms verified.
+  * minor incompatible change: PCL now records the pathname of a file
+    in which methods and the like are defined, rather than its
+    truename.
+  * minor incompatible change: TRUENAME now considers the truename of
+    a file naming a directory to be the pathname with :DIRECTORY
+    component indicating that directory.
+  * minor incompatible change: a NAMED clause in the extended form of
+    LOOP no longer causes a BLOCK named NIL to surround the LOOP.  The
+    reason for the previous behaviour is unclear.
+  * more systematization and improvement of CLOS and MOP conformance
+    in PCL (thanks to Gerd Moellman and Pierre Mai):
+    ** the standard ANSI CL generic function NO-NEXT-METHOD is now
+       implemented;
+    ** DEFINE-METHOD-COMBINATION no longer signals an error for
+       primary methods with no specializers;
+    ** the MOP generic function GENERIC-FUNCTION-DECLARATIONS is now
+       implemented;
+    ** the Readers for Class Metaobjects methods CLASS-DIRECT-SLOTS
+       and CLASS-DIRECT-DEFAULT-INITARGS have been implemented for
+       FORWARD-REFERENCED-CLASSes; error reporting on
+       CLASS-DEFAULT-INITARGS, CLASS-PRECEDENCE-LIST and CLASS-SLOTS
+       has been improved;
+    ** SXHASH on CLOS instances now uses a slot internal to the
+       instance to return different numbers on distinct instances,
+       while preserving the same return value through invocations of
+       CHANGE-CLASS;
+    ** DEFMETHOD signals errors when methods with longer incongruent
+       lambda lists are added to generic functions;
+    ** COMPUTE-CLASS-PRECEDENCE-LIST now has a method specialized on
+       CLASS, as specified in AMOP;
+    ** COMPUTE-SLOTS :AROUND now assigns locations sequentially based
+       on the order returned by the primary method for classes of
+       class STANDARD-CLASS;
+    ** DEFINE-METHOD-COMBINATION now works with the :ARGUMENTS option.
+  * fixed some bugs shown by Paul Dietz' test suite:
+    ** DOLIST puts its body in TAGBODY;
+    ** SET-EXCLUSIVE-OR sends arguments to :TEST function in the
+       correct order;
+    ** MULTIPLE-VALUE-SETQ evaluates side-effectful places before
+       value producing form;
+    ** if more variables are given to PROGV than values, extra
+       variables are bound and made to have no value;
+    ** NSUBSTITUTE on list arguments gets the right answer with
+       :FROM-END;
+    ** ELT signals an error of type TYPE-ERROR when the index argument
+       is not a valid sequence index;
+    ** LOOP signals (at macroexpansion time) an error of type
+       PROGRAM-ERROR when duplicate variable names are found;
+    ** LOOP supports DOWNTO and ABOVE properly; (thanks to Matthew Danish)
+    ** FUNCALL of special-operators now cause an error of type
+       UNDEFINED-FUNCTION;
+    ** PSETQ now works as required in the presence of side-effecting
+       symbol-macro places;
+    ** NCONC accepts any object as its last argument;
+    ** :COUNT argument to sequence functions may be BIGNUM; (thanks to
+       Gerd Moellman)
+    ** loop-for-as-package does not require a package to be explicitely
+       specified;
+    ** LOOP WITH now treats NIL in the d-var-spec correctly as an
+       ignored binding.
+  * fixed bug 166: compiler preserves "there is a way to go"
+    invariant when deleting code.
+  * fixed bug 172: macro lambda lists with required arguments after
+    &REST arguments now cause an error to be signalled.  (thanks to
+    Matthew Danish)
+  * fixed Entomotomy PEEK-CHAR-WRONGLY-ECHOS-TO-ECHO-STREAM
+    bug. (thanks to Matthew Danish)
+  * fixed bug 225: STRING-STREAM is now a class. (reported by Gilbert
+    Baumann)
+  * fixed bug 136: CALL-NEXT-METHOD no longer gets confused when
+    arguments are lexically rebound. (thanks to Gerd Moellmann and
+    Pierre Mai)
+  * fixed bug 194: error messages are now more informative when there
+    is no primary method applicable in a call to a generic
+    function. (thanks to Gerd Moellmann)
+  * fixed bug in command line argument checking (thanks to Julian
+    Fondren)
+  * fixed bug in COUNT-IF, making it handle :FROM-END correctly
+    (thanks to Matthew Danish)
+  * incremented fasl file version number, because of the
+    SXHASH-related changes in the layout of CLOS data structures
 
-changes in sbcl-0.7.0 relative to sbcl-0.6.13:
-* major incompatible change: The default fasl file extension, i.e. the
-  default extension for files produced by COMPILE-FILE, has changed
-  to ".fasl", for all architectures. (No longer ".x86f" and ".axpf".) 
-* compiler changes:
-  ** There are many changes in the implementation of the compiler.
-     SBCL is now essentially a compiler-only implementation of ANSI
-     Common Lisp. EVAL still "interprets" a few special cases, but 
-     almost all the interesting cases are handled by creating
-     a LAMBDA expression, calling COMPILE on it, then calling 
-     FUNCALL on the result.
-  ** The EVAL-WHEN code has been rewritten to be ANSI-compliant, and
-     various related bugs (IR1-1, IR1-2, IR1-3, IR1-3a) have gone away.
-     Since the code is newer, there might still be some new bugs
-     (though not as many as before Martin Atzmueller's fixes:-). But 
-     the new code is substantially simpler and clearer, and hopefully
-     any remaining bugs will be simpler, less fundamental, and more
-     fixable then the bugs in the old code.
-  ** The revised compiler is still a little unsteady on its feet.
-     In particular,
-     *** The debugging information it produces (particularly the names
-         of FUNCTION objects) is sometimes much less useful than what
-         the old compiler produced.
-     *** The support for inlining FOO when you (DECLAIM (INLINE FOO))
-         then do (DEFUN FOO ..) in a non-null lexical environment (e.g.
-         within a MACROLET) has been temporarily weakened.
-  ** There are new compiler optimizations for various functions:
-     *** the sequence functions FIND, POSITION, FIND-IF, POSITION-IF,
-         FIND-IF-NOT, POSITION-IF-NOT, and FILL
-     *** the math functions TRUNCATE, FLOOR, and CEILING
-     *** the function-of-all-trades COERCE
-     Mostly these should be transparent, but there's one
-     potentially-annoying problem (bug 117): when the compiler
-     inline-expands a function and does type analysis on the result,
-     it can create control paths which have type mismatches, and
-     when it can't prove that those control paths aren't taken,
-     it will issue WARNINGs about the type mismatches. This is 
-     a particular problem in practice for the new sequence functions.
-     It's not clear how this should be fixed, and for now, a
-     workaround is given in the entry for 117 in the BUGS file.
-  ** (Because of the interaction between the two previous items --
-     occasional inlining problems and new inline expansions -- some
-     of the new sequence function optimizations won't really kick in
-     completely until debugging information, and then inlining, are
-     straightened out in some future version.)
-* minor incompatible changes:
-  ** As part of a bug fix by Christophe Rhodes to DIRECTORY behavior,
-     DIRECTORY no longer implicitly promotes NIL slots of its
-     pathname argument to :WILD. In particular, when you ask for the
-     contents of a directory (which you used to be able to do without
-     explicit wildcards, e.g. (DIRECTORY "/tmp/")) you now need to use
-     explicit wildcards, e.g. (DIRECTORY "/tmp/*.*").
-  ** changes in behavior that ANSI explicitly defines to be
-     implementation dependent:
-     *** The new compiler-only implementation still conforms with ANSI,
-         but acts a little different than before. Besides the obvious
-        changes in performance tradeoffs (that the cost per form passed
-        to EVAL has gone up, and the cost per form executed by EVAL
-        has gone down), the behavior of the system changes a little
-        because there are no longer any interpreted function objects.
-         COMPILED-FUNCTION-P is now synonymous with FUNCTIONP, and
-         e.g. doing COMPILE on the output of interactive DEFUN is
-         now a no-op.
-     *** The value of INTERNAL-TIME-UNITS-PER-SECOND has been increased
-         from 100 to 1000.
-     *** The default for the USE list in MAKE-PACKAGE and DEFPACKAGE
-         has changed from (:CL) to NIL.
-     *** The CHAR-NAME of unprintable ASCII characters which, unlike
-         e.g. #\Newline and #\Tab, don't have names specified in the
-         ANSI Common Lisp standard, is now based on their ASCII symbolic
-         names (#\Nul, #\Soh, #\Stx, etc.) The old CMU-CL-style names
-         (#\Null, #\^a, #\^b, etc.) are still accepted by NAME-CHAR, but
-         are no longer used for output.
-  ** changes in internal implementation constants:
-     *** The default value of *BYTES-CONSED-BETWEEN-GCS* has doubled, to
-         4 million. (If your application spends a lot of time GCing and
-         you have a lot of RAM, you might want to experiment with
-         increasing it even more.)
-  ** The SB-C-CALL package has been merged into the SB-ALIEN package.
-     However, almost all old code should still continue to work without
-     immediate update, as SB-C-CALL is now a (deprecated) nickname
-     for SB-ALIEN.
-  ** Old operator names in the style DEF-FOO are now deprecated in
-     favor of new corresponding names DEFINE-FOO, for consistency with
-     the naming convention used in the ANSI standard (DEFSTRUCT, DEFVAR,
-     DEFINE-CONDITION, DEFINE-MODIFY-MACRO..). This mostly affects
-     internal symbols, but a few supported extensions like
-     SB-ALIEN:DEF-ALIEN-FUNCTION are also affected. (So e.g.
-     DEF-ALIEN-FUNCTION becomes DEFINE-ALIEN-FUNCTION.)
-  ** The debugger prompt sequence now goes "5]", "5[2]", "5[3]",
-     etc. as you get deeper into recursive calls to the debugger
-     command loop, instead of the old "5]", "5]]", "5]]]"
-     sequence. (I was motivated to do this when squabbles between
-     ILISP and SBCL left me very deeply nested in the debugger. In the
-     short term, this change will probably provoke more ILISP/SBCL 
-     squabbles, but hopefully it will be an improvement in the long run.)
-  ** SB-ALIEN:DEFINE-ALIEN-FUNCTION (also known by the old deprecated
-     name DEF-ALIEN-FUNCTION) now does DECLAIM FTYPE for the defined
-     function, since declaiming return types involving aliens is
-     (1) annoyingly messy to do by hand and (2) vital to efficient
-     compilation of code which calls such functions.
-  ** SB-ALIEN:LOAD-FOREIGN and SB-ALIEN:LOAD-1-FOREIGN are no
-     longer reexported by the SB-EXT package. They're solely useful
-     for alien code, so it seems more logical that you should get
-     them from the SB-ALIEN package, not in SB-EXT.
-  ** :SB-CONSTRAIN-FLOAT-TYPE, :SB-PROPAGATE-FLOAT-TYPE, and
-     :SB-PROPAGATE-FUN-TYPE are no longer considered to be optional
-     features. Instead, the code that they used to control is always
-     built into the system.
-* many other bug fixes
-  ** DEFSTRUCT and DEFCLASS have been substantially updated to take
-     advantage of the new EVAL-WHEN stuff and to clean them up in 
-     general, and they are now more ANSI-compliant in a number of
-     ways. Martin Atzmueller is responsible for a lot of this.
-  ** Besides the cleanups discussed above, Martin Atzmueller fixed
-     several other bugs:
-     *** fixes in READ-SEQUENCE and WRITE-SEQUENCE
-     *** correct ERROR type for various file operations
-     *** some fixes for Lisp streams
-     *** DEFMETHOD syntax checking
-     *** changing old weird representation of debug information as
-         strings (which, among their other deficiencies, don't transform
-         correctly when you rename packages, and don't change their
-         print representation when you change things like *PACKAGE*
-        and *PRINT-LENGTH*) to symbols and lists of symbols
-     He also made several improvements and fixed several bugs in DESCRIBE.
-  ** Alexey Dejneka fixed many bugs, including classic bugs and bugs he
-     discovered himself:
-     *** misbehavior of WRITE-STRING/WRITE-LINE
-     *** LOOP over keys of a hash table, LOOP bugs 49b and 81 and 103,
-         and several other LOOP problems as well
-     *** DIRECTORY when similar filenames are present
-     *** DEFGENERIC with :METHOD options
-     *** bug 126, in (MAKE-STRING N :INITIAL-ELEMENT #\SPACE))
-     *** bug in the optimization of ARRAY-ELEMENT-TYPE
-     *** argument ordering in FIND with :TEST option
-     *** mishandled package designator argument in APROPOS-LIST
-     *** various problems in the backquote readmacro
-     *** a bug in APROPOS
-     *** probably some others that I'm not describing very well here,
-         since the CVS log documents them by reference to sbcl-devel
-         messages, and the SourceForge archives aren't working well.:-(
-  ** Dan Barlow improved the Alpha port (and is making progress on the
-     PPC port, for those of you who think different).
-  ** Besides the DIRECTORY fixes and changes mentioned elsewhere,
-     Christophe Rhodes cleaned up the system self-test scripts (in tests/*),
-     contributed the optimization of FIND-IF-NOT and POSITION-IF-NOT, and
-     continues to work on the SPARC port (for those of you in a position
-     to look down upon our little PC-compatible boxes from a great height). 
-  ** PPRINT-LOGICAL-BLOCK now copies the *PRINT-LINES* value on entry
-     and uses that copy, rather than the current dynamic value, when
-     it's trying to decide whether to truncate output. Thus e.g.
-       (let ((*print-lines* 50))
-         (pprint-logical-block (stream nil)
-           (dotimes (i 10)
-             (let ((*print-lines* 8))
-               (print (aref possiblybigthings i) stream)))))
-     should now truncate the logical block only at 50 lines, instead of
-     often truncating it at 8 lines, as it did before.
-* The doc/cmucl/ directory, containing old CMU CL documentation
-  from the time of the fork, is no longer part of the base system.
-  SourceForge has shut down its anonymous FTP service, and with it
-  my original plan for distributing the old CMU CL documentation
-  there. For now, if you need these files you can download an old
-  SBCL source release and extract them from it.
-* The fasl file version number changed again, for dozens of reasons,
-  some of which are apparent above.
+changes in sbcl-0.7.9 relative to sbcl-0.7.8:
+  * minor incompatible change: The runtime (the Unix executable named
+    "sbcl") is now much pickier about the .core files it will load.
+    Essentially it now requires .core files to descend from the same
+    build (not just the same sources or LISP-IMPLEMENTATION-VERSION)
+    as the runtime does. (The intent is to prevent the crashes which
+    can occur, and which can even be reported as mysterious failures,
+    when people patch the sources or change the build parameters
+    without changing LISP-IMPLEMENTATION-VERSION, then mix and match
+    sbcl and .core files.)
+  * fixed bug: VALUES-LIST is no longer optimized away.
+  * fixed bug 142: The FFI conversion of C string values to Lisp
+    string values no longer conses excessively. (thanks to Nathan
+    Froyd porting Raymond Toy's fix to CMU CL)
+  * began to systematize and improve MOP conformance in PCL (thanks to
+    Nathan Froyd, Gerd Moellman and Pierre Mai):
+    ** SLOT-DEFINITION-ALLOCATION now returns :CLASS, not the class
+       itself;
+    ** GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER is now implemented;
+    ** FINALIZE-INHERITANCE is now called on class finalization;
+    ** DOCUMENTATION and (SETF DOCUMENTATION) now have the correct
+       argument precedence order.
+  * fixed bug 202: The compiler no longer fails on functions whose
+    derived types contradict their declared type.
+  * DEFMACRO is implemented via EVAL-WHEN instead of IR1 translation,
+    so it can be non-toplevel.
+  * The fasl file version number has changed (because of the new
+    implementation of DEFMACRO).
+  * (mostly) fixed bugs 46b and 46c: sequence functions now check, in
+    safe code, that any length requirement by their type-specifier
+    argument is valid.  The exceptions to this are described in bug
+    213.
+  * fixed bugs 46h and 46i: TWO-WAY- and CONCATENATED-STREAM creation
+    functions now check the types of their inputs as required by ANSI.
+  * fixed bug 48c: SYMBOL-MACROLET signals PROGRAM-ERROR when an
+    introduced symbol is DECLAREd to be SPECIAL.
+  * fixed reading of (COMPLEX DOUBLE-FLOAT) literals from fasl files
+  * fixed bug: :COUNT argument to sequence functions may be negative
+  * fixed bug: body of DO-SYMBOLS may contain declarations
+  * fixed bug: PUSHNEW now evaluates its arguments from left to right
+    (reported by Paul F. Dietz, fixed by Gerd Moellman)
+  * fixed bug: PUSH, PUSHNEW and POP now evaluate a place given by a
+    symbol macro only once
+  * fixed printing of call frame when argument list is unavailable
+  * fixed bug: :ALLOW-OTHER-KEYS is an allowed keyword name
+  * compiler no longer signals WARNING on unknown keyword
+    :ALLOW-OTHER-KEYS
 
-changes in sbcl-0.7.1 relative to sbcl-0.7.0:
-* mostly bug fixes:
-  ** SB-ALIEN:LOAD-FOREIGN and SB-ALIEN:LOAD-1-FOREIGN are set
-     up properly again. (There was a packaging bug in 0.7.0 which
-     left their definitions in SB-SYS::LOAD-FOREIGN and 
-     SB-SYS::LOAD-1-FOREIGN. LOAD-FOREIGN and LOAD-1-FOREIGN are
-     vital for most things which interface to C-level interfaces,
-     like extensions working with sockets or databases or
-     Perl-compatible regexes or whatever, and the need to fix
-     this bug is the main reason that 0.7.1 was released so
-     soon after 0.7.0.)
-  ** DEFGENERIC is now choosier about the methods it redefines, so that
-     reLOADing a previously-LOADed file containing DEFGENERICs does
-     the right thing now. Thus, the Lispy edit/reLOAD-a-little/test
-     cycle now works as it should. (thanks to Alexey Dejneka)
-  ** Bug 106 (types (COMPLEX FOO) where FOO is an obscure type) was
-     fixed by Christophe Rhodes. (He actually submitted this patch
-     months ago, and I delayed until after 0.7.0.)
-  ** Bug 111 (internal compiler confusion about runtime checks on
-     FUNCTION types) was fixed by Alexey Dejneka.
-* Some internal cleanups (getting rid of variables which aren't
-  needed now that the byte interpreter is gone) caused the fasl
-  file format number to change again.
-
-changes in sbcl-0.7.2 relative to sbcl-0.7.1:
-  * incompatible change: The compiler is now less aggressive about
-    tail call optimization, doing it only when (> SPACE DEBUG) or
-    (> SPEED DEBUG). (This is an incompatible change because there are
-    programs which relied on the old CMU-CL-style behavior to optimize
-    away their unbounded recursion which will now die of stack overflow.)
-  * minor incompatible change: The default BYTES-CONSED-BETWEEN-GCS
-    for non-GENCGC systems has been increased to 20M (since that
-    seems much closer to the likely performance optimum for modern
-    systems than the old 4M value was)
-  * minor incompatible change: new larger values for *DEBUG-PRINT-LENGTH*
-    and *DEBUG-PRINT-LEVEL*
-  * SBCL runs on SPARC systems now. (thanks to Christophe Rhodes' port
-    of CMU CL's support for SPARC, and various endianness and other 
-    SBCL portability fixes due to Christophe Rhodes and Dan Barlow)
-  * new syntactic sugar for the Unix command line: --load foo.bar is now
-    an alternate notation for --eval '(load "foo.bar")'.
-  * bug fixes:
-    ** The system now detects stack overflow and handles it gracefully,
-       at least for (OR (> SAFETY (MAX SPEED SPACE)) (= SAFETY 3))
-       optimization settings. (This is a good thing in general, and
-       its introduction in this version should be particularly timely
-       for anyone whose code fails because of suppression of tail
-       recursion!)
-    ** The system now hunts for the C variable "environ" in a more
-       devious way, to avoid segfaults when the C library version differs
-       between compile time and run time. (thanks to Christophe Rhodes)
-    ** INTEGER-valued CATCH tags now work. (thanks to Alexey Dejneka,
-       and also to Christophe Rhodes for porting the fix to non-X86 CPUs)
-    ** The compiler no longer issues bogus style warnings for undefined
-       classes in the same source file as the DEFCLASSes which defined
-       them. (thanks to Stig E Sandoe for reporting and Martin Atzmueller
-       for fixing this)
-    ** fixes in CONDITION class precedence list for undefined function
-       errors (thanks to Alexei Dejneka)
-    ** *DEFAULT-PATHNAME-DEFAULTS* is used more consistently and 
-       correctly. (thanks to Dan Barlow)
-    ** portability fixes aiming at bootstrapping under CLISP (thanks
-       to Dave McDonald and Christophe Rhodes)
-    ** FORMAT fixes (thanks to Robert Strandh and Dan Barlow)
-    ** fixes in type translation and and type inference (thanks to
-       Christophe Rhodes)
-    ** fixes to optimizer internal errors (thanks to Alexei Dejneka)
-    ** various fixes in the new ports (thanks to Dan Barlow)
-  * several changes related to debugging:
-    ** suppression of tail recursion, as noted above
-    ** stack overflow detection, as noted above
-    ** The default implementation of TRACE has changed. :ENCAPSULATE T
-       is now the default. (For some time encapsulation has been more
-       reliable than the breakpoint-based :ENCAPSULATE NIL
-       implementation, at least on X86 systems; and I just noticed that
-       encapsulation also seems closer to the spirit of the ANSI
-       specification.)
-
-changes in sbcl-0.7.3 relative to sbcl-0.7.2:
-  * ANSI's DEFINE-SYMBOL-MACRO is now supported. (thanks to Nathan
-    Froyd porting CMU CL code originally by Douglas Thomas Crosher)
-  * SBCL now runs on the PPC archtiecture under Linux. It actually did
-    this as of 0.7.1.45, but was left out of the previous news section
-    (thanks to Dan Barlow)
-  * SBCL now runs on the Solaris operating system on SPARC architectures
-    (thanks to Christophe Rhodes's port of the CMUCL runtime)
-  * cleanups to the runtime on SPARC, both Linux and Solaris, and for
-    gcc>=3 (thanks to Nathan Froyd and Ingvar Mattsson)
-  * SPARC backend cleanups, allowing builds of cores optimized for V8
-    and V9 SPARCS, and also emission of code targeted to a particular
-    backend chosen at runtime (thanks to Christophe Rhodes and Raymond
-    Toy)
-  * SBCL is closer to bootstrapping under CLISP, thanks to various
-    fixes by Christophe Rhodes.
-  * The fasl file format has changed again, to allow the compiler's
-    INFO database to support symbol macros.
-  * The user manual (in doc/) is formatted into HTML more nicely.
-    (thanks to coreythomas)
-  * The system is smarter about SUBTYPEP relationships, especially
-    those involving NOT types (including types such as ATOM which are
-    represented internally using NOT types). Thus SUBTYPEP is less
-    likely to return (VALUES NIL NIL) in general, and in particular
-    bugs 58 and (the remaining bits of) bug 50 are fixed. (thanks to
-    Christophe Rhodes)
-  * The fasl file format has changed again, because the internal
-    representation of types now includes a new slot to support the new
-    SUBTYPEP-of-NOT-types logic.
-  * (not a change in the main branch of SBCL, but a related prototype
-    which can hopefully be merged into the main branch of SBCL in the
-    future:) Brian Spilsbury has produced a Unicode-enabled variant of
-    sbcl-0.7.0, available as a patch against sbcl-0.7.0 at
-      <http://designix.com.au/brian/SBCL/sbcl-0.7.0-unicode.p0.gz>.
-  * Bug 151 fixed: GET-DISPATCH-MACRO-CHAR now returns NIL for undefined
-    dispatch macro character combinations. (thanks to Alexey Dejneka)
-  * Bugfix in PARSE-NAMESTRING: we now correctly parse unix namestrings 
-    that superficially look like logical namestrings correctly.
-  * USER-HOMEDIR-PATHNAME now returns a (physical) pathname that SBCL
-    can deal with.
-  * Bugfix in DEFSTRUCT: BOA constructor lambda lists now accept (name
-    default supplied-p) for &optional and &key arguments. (thanks to
-    Martin Atzmueller)
-
-changes in sbcl-0.7.4 relative to sbcl-0.7.3:
-  * bug 147 fixed: The compiler preserves its block link/count
-    invariants more correctly now so that it doesn't crash. (thanks
-    to Alexey Dejneka)
-  * Dynamic loading of object files in OpenBSD is now supported. (thanks
-    to Pierre Mai)
-  * COMPILE now works correctly on macros. (thanks to Matthias Hoelzl)
-  * GET-MACRO-CHARACTER and SET-MACRO-CHARACTER now represent
-    no-value-for-this-character as NIL (as specified by ANSI).
-  * HOST-NAMESTRING on physical pathnames now returns a string that is
-    valid as a host argument to MERGE-PATHNAMES and to MAKE-PATHNAME.
-    (thanks to Christophe Rhodes)
-  * The Alpha port handles icache flushing more correctly. (thanks to
-    Dan Barlow)
-  * More progress has been made toward bootstrapping under CLISP. (thanks
-    to Christophe Rhodes)
-  * The fasl file format has changed again, because dynamic loading
-    on OpenBSD (which has non-ELF object files) motivated some cleanups
-    in the way that foreign symbols are transformed and passed around.
-  * minor incompatible change: The ASCII RUBOUT character, (CHAR-CODE 127),
-    is no longer treated as whitespace by the reader, but instead as
-    an ordinary character. Thus e.g. (READ-FROM-STRING "A\7fB") returns
-    |A\7fB|, instead of A as it used to.
-
-changes in sbcl-0.7.5 relative to sbcl-0.7.4:
-  * SBCL now builds with OpenMCL (version 0.12) as the
-    cross-compilation host; also, more progress has been made toward
-    bootstrapping under CLISP.
-  * SBCL now runs on the Tru64 (aka OSF/1) operating system on the
-    Alpha architecture.
-  * bug 158 fixed: The compiler can now deal with integer loop
-    increments different from 1; fixing this turned out also to fix
-    bug 164.
-  * bug 169 fixed: no more bogus warnings about using lexical bindings
-    despite the presence of perfectly good SPECIAL declarations (thanks
-    to David Lichteblau)
-  * bug 175 fixed: CHANGE-CLASS is now more ANSI-conforming,
-    accepting initargs. (thanks to Espen Johnsen and Pierre Mai)
-  * bug 179 fixed: DIRECTORY can now deal with filenames with pattern
-    characters in them.
-  * bug 180 fixed: Method combination specifications no longer ignore
-    the :MOST-SPECIFIC-LAST option. (thanks to Pierre Mai)
-  * bug fix: Structure type predicate functions now check their argument
-    count as they should.
-  * bug fix: Classes with :METACLASS STRUCTURE-CLASS now print
-    correctly. (thanks to Pierre Mai)
-  * minor incompatible change: The --noprogrammer option is deprecated
-    in favor of the new --disable-debugger option, which is very similar.
-    (The major difference is that it takes effect at a slightly different
-    time at startup, causing handling of errors in --sysinit and
-    --userinit files will be affected differently.) The
-    SB-EXT:DISABLE-DEBUGGER and SB-EXT:ENABLE-DEBUGGER functions have
-    been added to allow this functionality to be controlled from ordinary
-    Lisp code. (ENABLE-DEBUGGER should help people like the Debian
-    maintainers, who might want to run non-interactive scripts to
-    build SBCL cores which will later be used interactively.)
-  * minor incompatible change: The LOAD function no longer, when given
-    a wild pathname to load, loads all files matching that pathname.
-    Instead, an error of type FILE-ERROR is signalled.
-
-changes in sbcl-0.7.6 relative to sbcl-0.7.5:
-  * bug fix: Floating point exceptions are treated much more
-    consistently on the x86/Linux and PPC/Linux platforms.
-  * Array initialization with :INITIAL-ELEMENT is now much faster for
-    cases when the compiler cannot open code the array creation, but
-    does know what the UPGRADED-ARRAY-ELEMENT-TYPE will be. General
-    array accesses have also seen a speed increase.
-  * bug fix: LOAD :IF-DOES-NOT-EXIST NIL now works when file type is
-    specified. (This was at the root of some bad interactions between
-    SBCL and ILISP: thanks to Gregory Wright for diagnosing this and
-    reporting the bug.)
-  * bug fix: Internal error arguments for undefined functions are now
-    computed correctly on the PPC/Linux platform.
-  * bug fix: Bad &REST syntax is now checked correctly. (thanks to 
-    Raymond Toy's patch for CMU CL)
-  * Support for the Solaris 9 operating environment has been included
-    (thanks to Daniel Merritt)
-  * A very ugly but hopefully complete draft of the missing FFI chapter
-    of the manual has been created by reformatting the corresponding
-    CMU CL manual chapter into (currently very ugly and incoherent)
-    DocBook and bringing it up to date for SBCL behavior. Thus, the
-    manual is now essentially complete, at least by my extreme
-    once-and-only-once standards, whereby it's acceptable to refer to
-    the doc strings of SB-EXT functions as the primary documentation.
-  * The fasl file version number has changed again, due to cleanup of
-    (user-invisible) bitrotted stuff. (E.g. *!INITIAL-FDEFN-OBJECTS*
-    is no longer a static symbol.)
+changes in sbcl-0.7.8 relative to sbcl-0.7.7:
+  * A beta-quality port to the mips architecture running Linux,
+    based on the old CMUCL backend, has been made.  It has been tested
+    on a big-endian kernel, and works sufficiently well to be able to
+    rebuild itself; it has not been tested in little-endian mode.
+  * fixed an inconsistency between gencgc.c and purify.c which made
+    dumping/loading .core files unreliable
+  * fixed bug 120a: The compiler now deals correctly with IFs where
+    the consequent is the same as the alternative, instead of
+    misderiving the return type. (thanks to Alexey Dejneka)
+  * fixed bug 113: Logical pathnames are now dumpable (the logical
+    host is resolved at load-time, throwing an error if it is not
+    found).
+  * fixed bug 174: FORMAT's error message is slightly clearer when a
+    non-printing character is used in a format directive.
+  * fixed several bugs in compiler checking of type declarations, i.e.
+    violations of the Python "declarations are assertions" principle
+    (thanks to Alexey Dejneka)
+  * fixed several bugs in PCL's error checking (thanks to Gerd
+    Moellmann)
+  * fixed bug: printing of FILE-ERROR (thanks to Antonio
+    Martinez-Shotton)
+  * fixed bug in compilation of functions as first class values
+    (thanks to Antonio Martinez-Shotton)
+  * The compiler's handling TYPE-ERRORs which it can prove will
+    inevitably happen at runtime has been cleaned up and corrected
+    in several ways. (thanks to Alexey Dejneka)
+  * improved argument type checking for various basic arithmetic
+    operations (MAX, +, LOGXOR, etc.) which have had so much TLC
+    lavished on them in the past that they can be compiled in many
+    ways in different special cases
+  * fixed bug 181: compiler checks validity of user supplied type
+    specifiers
+  * cleaned up code flushing in optimization: Function calls which
+    should signal errors for safety purposes (e.g. which ANSI says
+    should signal errors when their arguments are of incorrect type)
+    are no longer optimized away.
+  * added new extension: SB-DEBUG:BACKTRACE-AS-LIST
+  * incremented fasl file version number, because changes in the
+    implementation of sequence functions like COERCE caused 
+    internal utility functions like COERCE-TO-SIMPLE-VECTOR (used
+    in old inline expansions) to become undefined. (Actually these
+    changes were later undone, so we might very well be binary
+    compatible with 0.7.7 after all, but leaving the version number
+    incremented seemed like the simplest and most conservative
+    thing to do.)
 
 changes in sbcl-0.7.7 relative to sbcl-0.7.6:
   * An alpha-quality port to the parisc architecture running Linux,
@@ -1250,1348 +1387,1194 @@ changes in sbcl-0.7.7 relative to sbcl-0.7.6:
   * The fasl file version number has changed again. (because of the
     bug fix involving the names of PCL MAKE-INSTANCE functions)
 
-changes in sbcl-0.7.8 relative to sbcl-0.7.7:
-  * A beta-quality port to the mips architecture running Linux,
-    based on the old CMUCL backend, has been made.  It has been tested
-    on a big-endian kernel, and works sufficiently well to be able to
-    rebuild itself; it has not been tested in little-endian mode.
-  * fixed an inconsistency between gencgc.c and purify.c which made
-    dumping/loading .core files unreliable
-  * fixed bug 120a: The compiler now deals correctly with IFs where
-    the consequent is the same as the alternative, instead of
-    misderiving the return type. (thanks to Alexey Dejneka)
-  * fixed bug 113: Logical pathnames are now dumpable (the logical
-    host is resolved at load-time, throwing an error if it is not
-    found).
-  * fixed bug 174: FORMAT's error message is slightly clearer when a
-    non-printing character is used in a format directive.
-  * fixed several bugs in compiler checking of type declarations, i.e.
-    violations of the Python "declarations are assertions" principle
-    (thanks to Alexey Dejneka)
-  * fixed several bugs in PCL's error checking (thanks to Gerd
-    Moellmann)
-  * fixed bug: printing of FILE-ERROR (thanks to Antonio
-    Martinez-Shotton)
-  * fixed bug in compilation of functions as first class values
-    (thanks to Antonio Martinez-Shotton)
-  * The compiler's handling TYPE-ERRORs which it can prove will
-    inevitably happen at runtime has been cleaned up and corrected
-    in several ways. (thanks to Alexey Dejneka)
-  * improved argument type checking for various basic arithmetic
-    operations (MAX, +, LOGXOR, etc.) which have had so much TLC
-    lavished on them in the past that they can be compiled in many
-    ways in different special cases
-  * fixed bug 181: compiler checks validity of user supplied type
-    specifiers
-  * cleaned up code flushing in optimization: Function calls which
-    should signal errors for safety purposes (e.g. which ANSI says
-    should signal errors when their arguments are of incorrect type)
-    are no longer optimized away.
-  * added new extension: SB-DEBUG:BACKTRACE-AS-LIST
-  * incremented fasl file version number, because changes in the
-    implementation of sequence functions like COERCE caused 
-    internal utility functions like COERCE-TO-SIMPLE-VECTOR (used
-    in old inline expansions) to become undefined. (Actually these
-    changes were later undone, so we might very well be binary
-    compatible with 0.7.7 after all, but leaving the version number
-    incremented seemed like the simplest and most conservative
-    thing to do.)
+changes in sbcl-0.7.6 relative to sbcl-0.7.5:
+  * bug fix: Floating point exceptions are treated much more
+    consistently on the x86/Linux and PPC/Linux platforms.
+  * Array initialization with :INITIAL-ELEMENT is now much faster for
+    cases when the compiler cannot open code the array creation, but
+    does know what the UPGRADED-ARRAY-ELEMENT-TYPE will be. General
+    array accesses have also seen a speed increase.
+  * bug fix: LOAD :IF-DOES-NOT-EXIST NIL now works when file type is
+    specified. (This was at the root of some bad interactions between
+    SBCL and ILISP: thanks to Gregory Wright for diagnosing this and
+    reporting the bug.)
+  * bug fix: Internal error arguments for undefined functions are now
+    computed correctly on the PPC/Linux platform.
+  * bug fix: Bad &REST syntax is now checked correctly. (thanks to 
+    Raymond Toy's patch for CMU CL)
+  * Support for the Solaris 9 operating environment has been included
+    (thanks to Daniel Merritt)
+  * A very ugly but hopefully complete draft of the missing FFI chapter
+    of the manual has been created by reformatting the corresponding
+    CMU CL manual chapter into (currently very ugly and incoherent)
+    DocBook and bringing it up to date for SBCL behavior. Thus, the
+    manual is now essentially complete, at least by my extreme
+    once-and-only-once standards, whereby it's acceptable to refer to
+    the doc strings of SB-EXT functions as the primary documentation.
+  * The fasl file version number has changed again, due to cleanup of
+    (user-invisible) bitrotted stuff. (E.g. *!INITIAL-FDEFN-OBJECTS*
+    is no longer a static symbol.)
 
-changes in sbcl-0.7.9 relative to sbcl-0.7.8:
-  * minor incompatible change: The runtime (the Unix executable named
-    "sbcl") is now much pickier about the .core files it will load.
-    Essentially it now requires .core files to descend from the same
-    build (not just the same sources or LISP-IMPLEMENTATION-VERSION)
-    as the runtime does. (The intent is to prevent the crashes which
-    can occur, and which can even be reported as mysterious failures,
-    when people patch the sources or change the build parameters
-    without changing LISP-IMPLEMENTATION-VERSION, then mix and match
-    sbcl and .core files.)
-  * fixed bug: VALUES-LIST is no longer optimized away.
-  * fixed bug 142: The FFI conversion of C string values to Lisp
-    string values no longer conses excessively. (thanks to Nathan
-    Froyd porting Raymond Toy's fix to CMU CL)
-  * began to systematize and improve MOP conformance in PCL (thanks to
-    Nathan Froyd, Gerd Moellman and Pierre Mai):
-    ** SLOT-DEFINITION-ALLOCATION now returns :CLASS, not the class
-       itself;
-    ** GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER is now implemented;
-    ** FINALIZE-INHERITANCE is now called on class finalization;
-    ** DOCUMENTATION and (SETF DOCUMENTATION) now have the correct
-       argument precedence order.
-  * fixed bug 202: The compiler no longer fails on functions whose
-    derived types contradict their declared type.
-  * DEFMACRO is implemented via EVAL-WHEN instead of IR1 translation,
-    so it can be non-toplevel.
-  * The fasl file version number has changed (because of the new
-    implementation of DEFMACRO).
-  * (mostly) fixed bugs 46b and 46c: sequence functions now check, in
-    safe code, that any length requirement by their type-specifier
-    argument is valid.  The exceptions to this are described in bug
-    213.
-  * fixed bugs 46h and 46i: TWO-WAY- and CONCATENATED-STREAM creation
-    functions now check the types of their inputs as required by ANSI.
-  * fixed bug 48c: SYMBOL-MACROLET signals PROGRAM-ERROR when an
-    introduced symbol is DECLAREd to be SPECIAL.
-  * fixed reading of (COMPLEX DOUBLE-FLOAT) literals from fasl files
-  * fixed bug: :COUNT argument to sequence functions may be negative
-  * fixed bug: body of DO-SYMBOLS may contain declarations
-  * fixed bug: PUSHNEW now evaluates its arguments from left to right
-    (reported by Paul F. Dietz, fixed by Gerd Moellman)
-  * fixed bug: PUSH, PUSHNEW and POP now evaluate a place given by a
-    symbol macro only once
-  * fixed printing of call frame when argument list is unavailable
-  * fixed bug: :ALLOW-OTHER-KEYS is an allowed keyword name
-  * compiler no longer signals WARNING on unknown keyword
-    :ALLOW-OTHER-KEYS
+changes in sbcl-0.7.5 relative to sbcl-0.7.4:
+  * SBCL now builds with OpenMCL (version 0.12) as the
+    cross-compilation host; also, more progress has been made toward
+    bootstrapping under CLISP.
+  * SBCL now runs on the Tru64 (aka OSF/1) operating system on the
+    Alpha architecture.
+  * bug 158 fixed: The compiler can now deal with integer loop
+    increments different from 1; fixing this turned out also to fix
+    bug 164.
+  * bug 169 fixed: no more bogus warnings about using lexical bindings
+    despite the presence of perfectly good SPECIAL declarations (thanks
+    to David Lichteblau)
+  * bug 175 fixed: CHANGE-CLASS is now more ANSI-conforming,
+    accepting initargs. (thanks to Espen Johnsen and Pierre Mai)
+  * bug 179 fixed: DIRECTORY can now deal with filenames with pattern
+    characters in them.
+  * bug 180 fixed: Method combination specifications no longer ignore
+    the :MOST-SPECIFIC-LAST option. (thanks to Pierre Mai)
+  * bug fix: Structure type predicate functions now check their argument
+    count as they should.
+  * bug fix: Classes with :METACLASS STRUCTURE-CLASS now print
+    correctly. (thanks to Pierre Mai)
+  * minor incompatible change: The --noprogrammer option is deprecated
+    in favor of the new --disable-debugger option, which is very similar.
+    (The major difference is that it takes effect at a slightly different
+    time at startup, causing handling of errors in --sysinit and
+    --userinit files will be affected differently.) The
+    SB-EXT:DISABLE-DEBUGGER and SB-EXT:ENABLE-DEBUGGER functions have
+    been added to allow this functionality to be controlled from ordinary
+    Lisp code. (ENABLE-DEBUGGER should help people like the Debian
+    maintainers, who might want to run non-interactive scripts to
+    build SBCL cores which will later be used interactively.)
+  * minor incompatible change: The LOAD function no longer, when given
+    a wild pathname to load, loads all files matching that pathname.
+    Instead, an error of type FILE-ERROR is signalled.
+
+changes in sbcl-0.7.4 relative to sbcl-0.7.3:
+  * bug 147 fixed: The compiler preserves its block link/count
+    invariants more correctly now so that it doesn't crash. (thanks
+    to Alexey Dejneka)
+  * Dynamic loading of object files in OpenBSD is now supported. (thanks
+    to Pierre Mai)
+  * COMPILE now works correctly on macros. (thanks to Matthias Hoelzl)
+  * GET-MACRO-CHARACTER and SET-MACRO-CHARACTER now represent
+    no-value-for-this-character as NIL (as specified by ANSI).
+  * HOST-NAMESTRING on physical pathnames now returns a string that is
+    valid as a host argument to MERGE-PATHNAMES and to MAKE-PATHNAME.
+    (thanks to Christophe Rhodes)
+  * The Alpha port handles icache flushing more correctly. (thanks to
+    Dan Barlow)
+  * More progress has been made toward bootstrapping under CLISP. (thanks
+    to Christophe Rhodes)
+  * The fasl file format has changed again, because dynamic loading
+    on OpenBSD (which has non-ELF object files) motivated some cleanups
+    in the way that foreign symbols are transformed and passed around.
+  * minor incompatible change: The ASCII RUBOUT character, (CHAR-CODE 127),
+    is no longer treated as whitespace by the reader, but instead as
+    an ordinary character. Thus e.g. (READ-FROM-STRING "A\7fB") returns
+    |A\7fB|, instead of A as it used to.
+
+changes in sbcl-0.7.3 relative to sbcl-0.7.2:
+  * ANSI's DEFINE-SYMBOL-MACRO is now supported. (thanks to Nathan
+    Froyd porting CMU CL code originally by Douglas Thomas Crosher)
+  * SBCL now runs on the PPC archtiecture under Linux. It actually did
+    this as of 0.7.1.45, but was left out of the previous news section
+    (thanks to Dan Barlow)
+  * SBCL now runs on the Solaris operating system on SPARC architectures
+    (thanks to Christophe Rhodes's port of the CMUCL runtime)
+  * cleanups to the runtime on SPARC, both Linux and Solaris, and for
+    gcc>=3 (thanks to Nathan Froyd and Ingvar Mattsson)
+  * SPARC backend cleanups, allowing builds of cores optimized for V8
+    and V9 SPARCS, and also emission of code targeted to a particular
+    backend chosen at runtime (thanks to Christophe Rhodes and Raymond
+    Toy)
+  * SBCL is closer to bootstrapping under CLISP, thanks to various
+    fixes by Christophe Rhodes.
+  * The fasl file format has changed again, to allow the compiler's
+    INFO database to support symbol macros.
+  * The user manual (in doc/) is formatted into HTML more nicely.
+    (thanks to coreythomas)
+  * The system is smarter about SUBTYPEP relationships, especially
+    those involving NOT types (including types such as ATOM which are
+    represented internally using NOT types). Thus SUBTYPEP is less
+    likely to return (VALUES NIL NIL) in general, and in particular
+    bugs 58 and (the remaining bits of) bug 50 are fixed. (thanks to
+    Christophe Rhodes)
+  * The fasl file format has changed again, because the internal
+    representation of types now includes a new slot to support the new
+    SUBTYPEP-of-NOT-types logic.
+  * (not a change in the main branch of SBCL, but a related prototype
+    which can hopefully be merged into the main branch of SBCL in the
+    future:) Brian Spilsbury has produced a Unicode-enabled variant of
+    sbcl-0.7.0, available as a patch against sbcl-0.7.0 at
+      <http://designix.com.au/brian/SBCL/sbcl-0.7.0-unicode.p0.gz>.
+  * Bug 151 fixed: GET-DISPATCH-MACRO-CHAR now returns NIL for undefined
+    dispatch macro character combinations. (thanks to Alexey Dejneka)
+  * Bugfix in PARSE-NAMESTRING: we now correctly parse unix namestrings 
+    that superficially look like logical namestrings correctly.
+  * USER-HOMEDIR-PATHNAME now returns a (physical) pathname that SBCL
+    can deal with.
+  * Bugfix in DEFSTRUCT: BOA constructor lambda lists now accept (name
+    default supplied-p) for &optional and &key arguments. (thanks to
+    Martin Atzmueller)
+
+changes in sbcl-0.7.2 relative to sbcl-0.7.1:
+  * incompatible change: The compiler is now less aggressive about
+    tail call optimization, doing it only when (> SPACE DEBUG) or
+    (> SPEED DEBUG). (This is an incompatible change because there are
+    programs which relied on the old CMU-CL-style behavior to optimize
+    away their unbounded recursion which will now die of stack overflow.)
+  * minor incompatible change: The default BYTES-CONSED-BETWEEN-GCS
+    for non-GENCGC systems has been increased to 20M (since that
+    seems much closer to the likely performance optimum for modern
+    systems than the old 4M value was)
+  * minor incompatible change: new larger values for *DEBUG-PRINT-LENGTH*
+    and *DEBUG-PRINT-LEVEL*
+  * SBCL runs on SPARC systems now. (thanks to Christophe Rhodes' port
+    of CMU CL's support for SPARC, and various endianness and other 
+    SBCL portability fixes due to Christophe Rhodes and Dan Barlow)
+  * new syntactic sugar for the Unix command line: --load foo.bar is now
+    an alternate notation for --eval '(load "foo.bar")'.
+  * bug fixes:
+    ** The system now detects stack overflow and handles it gracefully,
+       at least for (OR (> SAFETY (MAX SPEED SPACE)) (= SAFETY 3))
+       optimization settings. (This is a good thing in general, and
+       its introduction in this version should be particularly timely
+       for anyone whose code fails because of suppression of tail
+       recursion!)
+    ** The system now hunts for the C variable "environ" in a more
+       devious way, to avoid segfaults when the C library version differs
+       between compile time and run time. (thanks to Christophe Rhodes)
+    ** INTEGER-valued CATCH tags now work. (thanks to Alexey Dejneka,
+       and also to Christophe Rhodes for porting the fix to non-X86 CPUs)
+    ** The compiler no longer issues bogus style warnings for undefined
+       classes in the same source file as the DEFCLASSes which defined
+       them. (thanks to Stig E Sandoe for reporting and Martin Atzmueller
+       for fixing this)
+    ** fixes in CONDITION class precedence list for undefined function
+       errors (thanks to Alexei Dejneka)
+    ** *DEFAULT-PATHNAME-DEFAULTS* is used more consistently and 
+       correctly. (thanks to Dan Barlow)
+    ** portability fixes aiming at bootstrapping under CLISP (thanks
+       to Dave McDonald and Christophe Rhodes)
+    ** FORMAT fixes (thanks to Robert Strandh and Dan Barlow)
+    ** fixes in type translation and and type inference (thanks to
+       Christophe Rhodes)
+    ** fixes to optimizer internal errors (thanks to Alexei Dejneka)
+    ** various fixes in the new ports (thanks to Dan Barlow)
+  * several changes related to debugging:
+    ** suppression of tail recursion, as noted above
+    ** stack overflow detection, as noted above
+    ** The default implementation of TRACE has changed. :ENCAPSULATE T
+       is now the default. (For some time encapsulation has been more
+       reliable than the breakpoint-based :ENCAPSULATE NIL
+       implementation, at least on X86 systems; and I just noticed that
+       encapsulation also seems closer to the spirit of the ANSI
+       specification.)
+
+changes in sbcl-0.7.1 relative to sbcl-0.7.0:
+* mostly bug fixes:
+  ** SB-ALIEN:LOAD-FOREIGN and SB-ALIEN:LOAD-1-FOREIGN are set
+     up properly again. (There was a packaging bug in 0.7.0 which
+     left their definitions in SB-SYS::LOAD-FOREIGN and 
+     SB-SYS::LOAD-1-FOREIGN. LOAD-FOREIGN and LOAD-1-FOREIGN are
+     vital for most things which interface to C-level interfaces,
+     like extensions working with sockets or databases or
+     Perl-compatible regexes or whatever, and the need to fix
+     this bug is the main reason that 0.7.1 was released so
+     soon after 0.7.0.)
+  ** DEFGENERIC is now choosier about the methods it redefines, so that
+     reLOADing a previously-LOADed file containing DEFGENERICs does
+     the right thing now. Thus, the Lispy edit/reLOAD-a-little/test
+     cycle now works as it should. (thanks to Alexey Dejneka)
+  ** Bug 106 (types (COMPLEX FOO) where FOO is an obscure type) was
+     fixed by Christophe Rhodes. (He actually submitted this patch
+     months ago, and I delayed until after 0.7.0.)
+  ** Bug 111 (internal compiler confusion about runtime checks on
+     FUNCTION types) was fixed by Alexey Dejneka.
+* Some internal cleanups (getting rid of variables which aren't
+  needed now that the byte interpreter is gone) caused the fasl
+  file format number to change again.
+
+changes in sbcl-0.7.0 relative to sbcl-0.6.13:
+* major incompatible change: The default fasl file extension, i.e. the
+  default extension for files produced by COMPILE-FILE, has changed
+  to ".fasl", for all architectures. (No longer ".x86f" and ".axpf".) 
+* compiler changes:
+  ** There are many changes in the implementation of the compiler.
+     SBCL is now essentially a compiler-only implementation of ANSI
+     Common Lisp. EVAL still "interprets" a few special cases, but 
+     almost all the interesting cases are handled by creating
+     a LAMBDA expression, calling COMPILE on it, then calling 
+     FUNCALL on the result.
+  ** The EVAL-WHEN code has been rewritten to be ANSI-compliant, and
+     various related bugs (IR1-1, IR1-2, IR1-3, IR1-3a) have gone away.
+     Since the code is newer, there might still be some new bugs
+     (though not as many as before Martin Atzmueller's fixes:-). But 
+     the new code is substantially simpler and clearer, and hopefully
+     any remaining bugs will be simpler, less fundamental, and more
+     fixable then the bugs in the old code.
+  ** The revised compiler is still a little unsteady on its feet.
+     In particular,
+     *** The debugging information it produces (particularly the names
+         of FUNCTION objects) is sometimes much less useful than what
+         the old compiler produced.
+     *** The support for inlining FOO when you (DECLAIM (INLINE FOO))
+         then do (DEFUN FOO ..) in a non-null lexical environment (e.g.
+         within a MACROLET) has been temporarily weakened.
+  ** There are new compiler optimizations for various functions:
+     *** the sequence functions FIND, POSITION, FIND-IF, POSITION-IF,
+         FIND-IF-NOT, POSITION-IF-NOT, and FILL
+     *** the math functions TRUNCATE, FLOOR, and CEILING
+     *** the function-of-all-trades COERCE
+     Mostly these should be transparent, but there's one
+     potentially-annoying problem (bug 117): when the compiler
+     inline-expands a function and does type analysis on the result,
+     it can create control paths which have type mismatches, and
+     when it can't prove that those control paths aren't taken,
+     it will issue WARNINGs about the type mismatches. This is 
+     a particular problem in practice for the new sequence functions.
+     It's not clear how this should be fixed, and for now, a
+     workaround is given in the entry for 117 in the BUGS file.
+  ** (Because of the interaction between the two previous items --
+     occasional inlining problems and new inline expansions -- some
+     of the new sequence function optimizations won't really kick in
+     completely until debugging information, and then inlining, are
+     straightened out in some future version.)
+* minor incompatible changes:
+  ** As part of a bug fix by Christophe Rhodes to DIRECTORY behavior,
+     DIRECTORY no longer implicitly promotes NIL slots of its
+     pathname argument to :WILD. In particular, when you ask for the
+     contents of a directory (which you used to be able to do without
+     explicit wildcards, e.g. (DIRECTORY "/tmp/")) you now need to use
+     explicit wildcards, e.g. (DIRECTORY "/tmp/*.*").
+  ** changes in behavior that ANSI explicitly defines to be
+     implementation dependent:
+     *** The new compiler-only implementation still conforms with ANSI,
+         but acts a little different than before. Besides the obvious
+        changes in performance tradeoffs (that the cost per form passed
+        to EVAL has gone up, and the cost per form executed by EVAL
+        has gone down), the behavior of the system changes a little
+        because there are no longer any interpreted function objects.
+         COMPILED-FUNCTION-P is now synonymous with FUNCTIONP, and
+         e.g. doing COMPILE on the output of interactive DEFUN is
+         now a no-op.
+     *** The value of INTERNAL-TIME-UNITS-PER-SECOND has been increased
+         from 100 to 1000.
+     *** The default for the USE list in MAKE-PACKAGE and DEFPACKAGE
+         has changed from (:CL) to NIL.
+     *** The CHAR-NAME of unprintable ASCII characters which, unlike
+         e.g. #\Newline and #\Tab, don't have names specified in the
+         ANSI Common Lisp standard, is now based on their ASCII symbolic
+         names (#\Nul, #\Soh, #\Stx, etc.) The old CMU-CL-style names
+         (#\Null, #\^a, #\^b, etc.) are still accepted by NAME-CHAR, but
+         are no longer used for output.
+  ** changes in internal implementation constants:
+     *** The default value of *BYTES-CONSED-BETWEEN-GCS* has doubled, to
+         4 million. (If your application spends a lot of time GCing and
+         you have a lot of RAM, you might want to experiment with
+         increasing it even more.)
+  ** The SB-C-CALL package has been merged into the SB-ALIEN package.
+     However, almost all old code should still continue to work without
+     immediate update, as SB-C-CALL is now a (deprecated) nickname
+     for SB-ALIEN.
+  ** Old operator names in the style DEF-FOO are now deprecated in
+     favor of new corresponding names DEFINE-FOO, for consistency with
+     the naming convention used in the ANSI standard (DEFSTRUCT, DEFVAR,
+     DEFINE-CONDITION, DEFINE-MODIFY-MACRO..). This mostly affects
+     internal symbols, but a few supported extensions like
+     SB-ALIEN:DEF-ALIEN-FUNCTION are also affected. (So e.g.
+     DEF-ALIEN-FUNCTION becomes DEFINE-ALIEN-FUNCTION.)
+  ** The debugger prompt sequence now goes "5]", "5[2]", "5[3]",
+     etc. as you get deeper into recursive calls to the debugger
+     command loop, instead of the old "5]", "5]]", "5]]]"
+     sequence. (I was motivated to do this when squabbles between
+     ILISP and SBCL left me very deeply nested in the debugger. In the
+     short term, this change will probably provoke more ILISP/SBCL 
+     squabbles, but hopefully it will be an improvement in the long run.)
+  ** SB-ALIEN:DEFINE-ALIEN-FUNCTION (also known by the old deprecated
+     name DEF-ALIEN-FUNCTION) now does DECLAIM FTYPE for the defined
+     function, since declaiming return types involving aliens is
+     (1) annoyingly messy to do by hand and (2) vital to efficient
+     compilation of code which calls such functions.
+  ** SB-ALIEN:LOAD-FOREIGN and SB-ALIEN:LOAD-1-FOREIGN are no
+     longer reexported by the SB-EXT package. They're solely useful
+     for alien code, so it seems more logical that you should get
+     them from the SB-ALIEN package, not in SB-EXT.
+  ** :SB-CONSTRAIN-FLOAT-TYPE, :SB-PROPAGATE-FLOAT-TYPE, and
+     :SB-PROPAGATE-FUN-TYPE are no longer considered to be optional
+     features. Instead, the code that they used to control is always
+     built into the system.
+* many other bug fixes
+  ** DEFSTRUCT and DEFCLASS have been substantially updated to take
+     advantage of the new EVAL-WHEN stuff and to clean them up in 
+     general, and they are now more ANSI-compliant in a number of
+     ways. Martin Atzmueller is responsible for a lot of this.
+  ** Besides the cleanups discussed above, Martin Atzmueller fixed
+     several other bugs:
+     *** fixes in READ-SEQUENCE and WRITE-SEQUENCE
+     *** correct ERROR type for various file operations
+     *** some fixes for Lisp streams
+     *** DEFMETHOD syntax checking
+     *** changing old weird representation of debug information as
+         strings (which, among their other deficiencies, don't transform
+         correctly when you rename packages, and don't change their
+         print representation when you change things like *PACKAGE*
+        and *PRINT-LENGTH*) to symbols and lists of symbols
+     He also made several improvements and fixed several bugs in DESCRIBE.
+  ** Alexey Dejneka fixed many bugs, including classic bugs and bugs he
+     discovered himself:
+     *** misbehavior of WRITE-STRING/WRITE-LINE
+     *** LOOP over keys of a hash table, LOOP bugs 49b and 81 and 103,
+         and several other LOOP problems as well
+     *** DIRECTORY when similar filenames are present
+     *** DEFGENERIC with :METHOD options
+     *** bug 126, in (MAKE-STRING N :INITIAL-ELEMENT #\SPACE))
+     *** bug in the optimization of ARRAY-ELEMENT-TYPE
+     *** argument ordering in FIND with :TEST option
+     *** mishandled package designator argument in APROPOS-LIST
+     *** various problems in the backquote readmacro
+     *** a bug in APROPOS
+     *** probably some others that I'm not describing very well here,
+         since the CVS log documents them by reference to sbcl-devel
+         messages, and the SourceForge archives aren't working well.:-(
+  ** Dan Barlow improved the Alpha port (and is making progress on the
+     PPC port, for those of you who think different).
+  ** Besides the DIRECTORY fixes and changes mentioned elsewhere,
+     Christophe Rhodes cleaned up the system self-test scripts (in tests/*),
+     contributed the optimization of FIND-IF-NOT and POSITION-IF-NOT, and
+     continues to work on the SPARC port (for those of you in a position
+     to look down upon our little PC-compatible boxes from a great height). 
+  ** PPRINT-LOGICAL-BLOCK now copies the *PRINT-LINES* value on entry
+     and uses that copy, rather than the current dynamic value, when
+     it's trying to decide whether to truncate output. Thus e.g.
+       (let ((*print-lines* 50))
+         (pprint-logical-block (stream nil)
+           (dotimes (i 10)
+             (let ((*print-lines* 8))
+               (print (aref possiblybigthings i) stream)))))
+     should now truncate the logical block only at 50 lines, instead of
+     often truncating it at 8 lines, as it did before.
+* The doc/cmucl/ directory, containing old CMU CL documentation
+  from the time of the fork, is no longer part of the base system.
+  SourceForge has shut down its anonymous FTP service, and with it
+  my original plan for distributing the old CMU CL documentation
+  there. For now, if you need these files you can download an old
+  SBCL source release and extract them from it.
+* The fasl file version number changed again, for dozens of reasons,
+  some of which are apparent above.
 
-changes in sbcl-0.7.10 relative to sbcl-0.7.9:
-  * Support for building SBCL for MIPS platforms running in
-    little-endian mode has now been checked in, and basic
-    functionality on said platforms verified.
-  * minor incompatible change: PCL now records the pathname of a file
-    in which methods and the like are defined, rather than its
-    truename.
-  * minor incompatible change: TRUENAME now considers the truename of
-    a file naming a directory to be the pathname with :DIRECTORY
-    component indicating that directory.
-  * minor incompatible change: a NAMED clause in the extended form of
-    LOOP no longer causes a BLOCK named NIL to surround the LOOP.  The
-    reason for the previous behaviour is unclear.
-  * more systematization and improvement of CLOS and MOP conformance
-    in PCL (thanks to Gerd Moellman and Pierre Mai):
-    ** the standard ANSI CL generic function NO-NEXT-METHOD is now
-       implemented;
-    ** DEFINE-METHOD-COMBINATION no longer signals an error for
-       primary methods with no specializers;
-    ** the MOP generic function GENERIC-FUNCTION-DECLARATIONS is now
-       implemented;
-    ** the Readers for Class Metaobjects methods CLASS-DIRECT-SLOTS
-       and CLASS-DIRECT-DEFAULT-INITARGS have been implemented for
-       FORWARD-REFERENCED-CLASSes; error reporting on
-       CLASS-DEFAULT-INITARGS, CLASS-PRECEDENCE-LIST and CLASS-SLOTS
-       has been improved;
-    ** SXHASH on CLOS instances now uses a slot internal to the
-       instance to return different numbers on distinct instances,
-       while preserving the same return value through invocations of
-       CHANGE-CLASS;
-    ** DEFMETHOD signals errors when methods with longer incongruent
-       lambda lists are added to generic functions;
-    ** COMPUTE-CLASS-PRECEDENCE-LIST now has a method specialized on
-       CLASS, as specified in AMOP;
-    ** COMPUTE-SLOTS :AROUND now assigns locations sequentially based
-       on the order returned by the primary method for classes of
-       class STANDARD-CLASS;
-    ** DEFINE-METHOD-COMBINATION now works with the :ARGUMENTS option.
-  * fixed some bugs shown by Paul Dietz' test suite:
-    ** DOLIST puts its body in TAGBODY;
-    ** SET-EXCLUSIVE-OR sends arguments to :TEST function in the
-       correct order;
-    ** MULTIPLE-VALUE-SETQ evaluates side-effectful places before
-       value producing form;
-    ** if more variables are given to PROGV than values, extra
-       variables are bound and made to have no value;
-    ** NSUBSTITUTE on list arguments gets the right answer with
-       :FROM-END;
-    ** ELT signals an error of type TYPE-ERROR when the index argument
-       is not a valid sequence index;
-    ** LOOP signals (at macroexpansion time) an error of type
-       PROGRAM-ERROR when duplicate variable names are found;
-    ** LOOP supports DOWNTO and ABOVE properly; (thanks to Matthew Danish)
-    ** FUNCALL of special-operators now cause an error of type
-       UNDEFINED-FUNCTION;
-    ** PSETQ now works as required in the presence of side-effecting
-       symbol-macro places;
-    ** NCONC accepts any object as its last argument;
-    ** :COUNT argument to sequence functions may be BIGNUM; (thanks to
-       Gerd Moellman)
-    ** loop-for-as-package does not require a package to be explicitely
-       specified;
-    ** LOOP WITH now treats NIL in the d-var-spec correctly as an
-       ignored binding.
-  * fixed bug 166: compiler preserves "there is a way to go"
-    invariant when deleting code.
-  * fixed bug 172: macro lambda lists with required arguments after
-    &REST arguments now cause an error to be signalled.  (thanks to
-    Matthew Danish)
-  * fixed Entomotomy PEEK-CHAR-WRONGLY-ECHOS-TO-ECHO-STREAM
-    bug. (thanks to Matthew Danish)
-  * fixed bug 225: STRING-STREAM is now a class. (reported by Gilbert
-    Baumann)
-  * fixed bug 136: CALL-NEXT-METHOD no longer gets confused when
-    arguments are lexically rebound. (thanks to Gerd Moellmann and
-    Pierre Mai)
-  * fixed bug 194: error messages are now more informative when there
-    is no primary method applicable in a call to a generic
-    function. (thanks to Gerd Moellmann)
-  * fixed bug in command line argument checking (thanks to Julian
-    Fondren)
-  * fixed bug in COUNT-IF, making it handle :FROM-END correctly
-    (thanks to Matthew Danish)
-  * incremented fasl file version number, because of the
-    SXHASH-related changes in the layout of CLOS data structures
+changes in sbcl-0.6.13 relative to sbcl-0.6.12:
+* a port to the Compaq/DEC Alpha CPU, thanks to Dan Barlow
+* Martin Atzmueller ported Tim Moore's marvellous CMU CL DISASSEMBLE
+  patch, so that DISASSEMBLE output is much nicer.
+* The code in the SB-PROFILE package now seems reasonably stable.
+  I still haven't decided what the final interface should look like
+  (I'd like PROFILE to interact cleanly with TRACE, since both
+  facilities use function encapsulation) but if you have a need
+  for profiling now, you can probably use it successfully with
+  the current CMU-CL-style interface.
+* Pathnames and *DEFAULT-DIRECTORY-DEFAULTS* are much more
+  ANSI-compliant, thanks to various fixes and tests from Dan Barlow.
+  Also, at Dan Barlow's suggestion, TRUENAME on a dangling symbolic
+  link now returns the dangling link itself, and for similar
+  reasons, TRUENAME on a cyclic symbolic link returns the cyclic
+  link itself. (In these cases the old code signalled an error and
+  looped endlessly, respectively.) Thus, DIRECTORY now works even
+  in the presence of dangling and cyclic symbolic links.
+* Compiler trace output (the :TRACE-FILE option to COMPILE-FILE)
+  is now a supported extension again, since the consensus on
+  sbcl-devel was that it can be useful for ordinary development
+  work, not just for debugging SBCL itself.
+* The default for SB-EXT:*DERIVE-FUNCTION-TYPES* has changed to
+  NIL, i.e. ANSI behavior, i.e. the compiler now recognizes
+  that currently-defined functions might be redefined later with 
+  different return types. 
+* Hash tables can be printed readably, as inspired by CMU CL code
+  of Eric Marsden and SBCL code of Martin Atzmueller.
+* better error handling in CLOS method combination, thanks to 
+  Martin Atzmueller porting Pierre Mai's CMU CL patches
+* more overflow fixes for >16Mbyte I/O buffers
+* A bug in READ has been fixed, so that now a single Ctrl-D
+  character suffices to cause end-of-file on character streams.
+  In particular, now you only need one Ctrl-D at the command
+  line (not two) to exit SBCL.
+* fixed bug 26: ARRAY-DISPLACEMENT now returns (VALUES NIL 0) for 
+  undisplaced arrays.
+* fixed bug 107 (reported as a CMU CL bug by Erik Naggum on 
+  comp.lang.lisp 2001-06-11): (WRITE #*101 :RADIX T :BASE 36) now
+  does the right thing.
+* The implementation of some type tests, especially for CONDITION
+  types, is now tidier and maybe faster, due to CMU CL code
+  originally by Douglas Crosher, ported by Martin Atzmueller.
+* Some math functions have been fixed, and there are new
+  optimizers for deriving the types of COERCE and ARRAY-ELEMENT-TYPE,
+  thanks to Raymond Toy's work on CMU CL, ported by Martin Atzmueller.
+* (There are also some new optimizers in contrib/*-extras.lisp. Those
+  aren't built into sbcl-0.6.13, but are a sneak preview of what's
+  likely to be built into sbcl-0.7.0.)
+* A bug in COPY-READTABLE was fixed. (Joao Cachopo's patch to CMU
+  CL, ported to SBCL by Martin Atzmueller)
+* DESCRIBE now gives more information in some cases. (Pierre Mai's
+  patch to CMU CL, ported to SBCL by Martin Atzmueller)
+* Martin Atzmueller and Bill Newman fixed some bugs in INSPECT.
+* There's a new slam.sh hack to shorten the edit/compile/debug
+  cycle for low-level changes to SBCL itself, and a new
+  :SB-AFTER-XC-CORE target feature to control the generation of
+  the after-xc.core file needed by slam.sh.
+* minor incompatible change: The ENTRY-POINTS &KEY argument to 
+  COMPILE-FILE is no longer supported, so that now every function
+  gets an entry point, so that block compilation looks a little
+  more like the plain vanilla ANSI section 3.2.2.3 scheme.
+* minor incompatible change: SB-EXT:GET-BYTES-CONSED now
+  returns the number of bytes consed since the system started,
+  rather than the number consed since the first time the function
+  was called. (The new definition parallels ANSI functions like
+  CL:GET-INTERNAL-RUN-TIME.)
+* minor incompatible change: The old CMU-CL-style DIRECTORY options,
+  i.e. :ALL, :FOLLOW-LINKS, and :CHECK-FOR-SUBDIRS, are no longer
+  supported. Now DIRECTORY always does the abstract Common-Lisp-y
+  thing, i.e. :ALL T :FOLLOW-LINKS T :CHECK-FOR-SUBDIRS T.
+* Fasl file version numbers are now independent of the target CPU,
+  since historically most system changes which required version
+  number changes have affected all CPUs equally. Similarly, 
+  the byte fasl file version is now equal to the ordinary
+  fasl file version.
+
+changes in sbcl-0.6.12 relative to sbcl-0.6.11:
+* incompatible change: The old SB-EXT:OPTIMIZE-INTERFACE declaration
+  is no longer recognized. I apologize for this, because it was
+  listed in SB-EXT as a supported extension, but I found that
+  its existing behavior was poorly specified, as well as incorrectly
+  specified, and it looked like too much of a mess to straighten it
+  out. I have enough on my hands trying to get ANSI stuff to work..
+* many patches ported from CMU CL by Martin Atzmueller, with 
+  half a dozen bug fixes in pretty-printing and the debugger, and
+  half a dozen others elsewhere
+* fixed bug 13: Floating point infinities are now supported again.
+  They might still be a little bit flaky, but thanks to bug reports
+  from Nathan Froyd and CMU CL patches from Raymond Toy they're not
+  as flaky as they were.
+* The --noprogrammer command line option is now supported. (Its
+  behavior is slightly different in detail from what the old man
+  page claimed it would do, but it's still appropriate under the
+  same circumstances that the man page talks about.)
+* The :SB-PROPAGATE-FLOAT-TYPE and :SB-PROPAGATE-FUN-TYPE features
+  are now supported, and enabled by default. Thus, the compiler can
+  handle many floating point and complex operations much less
+  inefficiently. (Thus e.g. you can implement a complex FFT
+  without consing!)
+* The compiler now detects type mismatches between DECLAIM FTYPE 
+  and DEFUN better, and implements CHECK-TYPE more correctly, and
+  SBCL builds under CMU CL again despite its non-ANSI EVAL-WHEN,
+  thanks to patches from Martin Atzmueller.
+* various fixes to make the cross-compiler more portable to
+  ANSI-conforming-but-different cross-compilation hosts (notably
+  Lispworks for Windows, following bug reports from Arthur Lemmens)
+* A bug in READ-SEQUENCE for CONCATENATED-STREAM, and a gross
+  ANSI noncompliance in DEFMACRO &KEY argument parsing, have been
+  fixed thanks to Pierre Mai's CMU CL patches.
+* fixes to keep the system from overflowing internal counters when
+  it tries to use i/o buffers larger than 16M bytes
+* fixed bug 45a: Various internal functions required to support
+  complex special functions have been merged from CMU CL sources.
+  (When I was first setting up SBCL, I misunderstood a compile-time
+  conditional #-OLD-SPECFUN, and so accidentally deleted them.)
+* improved support for type intersection and union, fixing bug 12
+  (e.g., now (SUBTYPEP 'KEYWORD 'SYMBOL)=>T,T) and some other
+  more obscure bugs as well
+* some steps toward byte-compiling non-performance-critical
+  parts of the system, courtesy of patches from Martin Atzmueller
+* Christophe Rhodes has made some debian packages of sbcl at
+  <http://www-jcsu.jesus.cam.ac.uk/ftp/pub/debian/lisp>.
+  From his sbcl-devel e-mail of 2001-04-08 they're not completely
+  stable, but are nonetheless usable. When he's ready, I'd be happy
+  to add them to the SourceForge "File Releases" section. (And if
+  anyone wants to do RPMs or *BSD packages, they'd be welcome too.)
+* new fasl file format version number (because of changes in 
+  internal representation of (OR ..) types to accommodate the new
+  support for (AND ..) types, among other things)
 
-changes in sbcl-0.7.11 relative to sbcl-0.7.10:
-  * fixed bug 127: DEFSTRUCT now does not clobber old structure
-    accessors that are related by inheritance, as specified in the
-    :CONC-NAME section of the specification of DEFSTRUCT.  (thanks to
-    Valtteri Vuorikoski)
-  * The compiler is now able to inline functions that were defined in
-    a complex lexical environment (e.g. inside a MACROLET).
-  * fixed bug in DESCRIBE, which now works on rank-0 arrays.  (thanks
-    to Lutz Euler)
-  * Support for the upcoming FreeBSD-5.0 release has been included.
-    (thanks to Dag-Erling Smorgrav)
-  * fixed bug 219: DEFINE-COMPILER-MACRO no longer has compile-time
-    effect when it is not in a toplevel context.
-  * fixed bug 222: DEFMETHOD and SYMBOL-MACROLET interactions now
-    stand a better chance of being correct.  (thanks to Gerd
-    Moellmann)
-  * fixed bug in COERCE, which now signals an error on coercing a
-    rational to a bounded real type which excludes the expected
-    answer.
-  * The compiler is now able to derive types more accurately from the
-    COERCE and COMPILE functions.
-  * fixed bug 223: functional binding is considered to be constant
-    only for symbols in the CL package.
-  * fixed bug 231: SETQ did not check the type of a variable being set
-    (reported by Robert E. Brown)
-  * A new optimization for MAKE-INSTANCE has been included, fixing
-    various bugs (including relating to :ALLOCATION :CLASS slots and
-    :DEFAULT-INITARGS over-eager evalueation).  (thanks to Gerd
-    Moellmann)
-  * fixed some LOOP bugs revealed by Paul Dietz' test suite:
-    ** As required by ANSI, LOOP now disallows anonymous collection
-       clauses such as COLLECT I in conjunction with aggregate boolean
-       clauses such as THEREIS (= I 1);
-    ** LOOP now signals an error when any variable is reused in the
-       same loop (including the potentially useful construct analogous
-       to WITH A = 1 WITH A = (1+ A);
-    ** IT is only a special loop symbol within the first clause of a
-       conditional loop clause;
-    ** LOOP with a typed iteration variable over a hashtable now
-       signals a type error iff it should.
-  * fixed some other bugs revealed by Paul Dietz' test suite:
-    ** FILE-STREAM now names the class previously known as FD-STREAM;
-    ** in DEFSTRUCT, a bare :CONC-NAME (or a :CONC-NAME with no
-       argument) no longer signals an error;
-    ** likewise in DEFSTRUCT, :CONC-NAME NIL now respects the package
-       of the slot symbol, rather than using the current package
-       ((:CONC-NAME "") continues to intern the slot's name in the
-       current package);
-  * incremented fasl file version number, because of the incompatible
-    change to the DEFSTRUCT-DESCRIPTION structure, and again because
-    of the new implementation of DEFINE-COMPILER-MACRO.
+changes in sbcl-0.6.11 relative to sbcl-0.6.10:
+* Martin Atzmueller pointed out that bugs #9 and #25 are gone in
+  current SBCL.
+* bug 34 fixed by Martin Atzmueller: dumping/loading instances works
+  better
+* fixed bug 40: TYPEP, SUBTYPEP, UPGRADED-ARRAY-ELEMENT-TYPE, 
+  and UPGRADED-COMPLEX-PART-TYPE now work better with of compound
+  types built from undefined types, e.g. '(VECTOR SOME-UNDEF-TYPE).
+* DESCRIBE now works on structure objects again.
+* Most function call argument type mismatches are now handled as
+  STYLE-WARNINGs instead of full WARNINGs, since the compiler doesn't
+  know whether the function will be redefined before the call is
+  executed. (The compiler could flag local calls with full WARNINGs,
+  as per the ANSI spec "3.2.2.3 Semantic Constraints", but right now
+  it doesn't keep track of enough information to know whether calls
+  are local in this sense.)
+* Compiler output is now more verbose, with messages truncated
+  later than before. (There should be some supported way for users
+  to override the default verbosity, but I haven't decided how to 
+  provide it yet, so this behavior is still controlled by the internal
+  SB-C::*COMPILER-ERROR-PRINT-FOO* variables in
+  src/compiler/ir1util.lisp.)
+* Fasl file format version numbers have increased again, because
+  support for the Gray streams extension changes the layout of the
+  system's STREAM objects.
+* The Gray subclassable streams extension now works, thanks to a 
+  patch from Martin Atzmueller.
+* The full LOAD-FOREIGN extension (not just the primitive
+  LOAD-FOREIGN-1) now works, thanks to a patch from Martin Atzmueller.
+* The default behavior of RUN-PROGRAM has changed. Now, unlike CMU CL
+  but like most other programs, it defaults to copying the Unix
+  environment from the original process instead of starting the
+  new process in an empty environment.
+* Extensions which manipulate the Unix environment now support
+  an :ENVIRONMENT keyword option which doesn't smash case or 
+  do other bad things. The CMU-CL-style :ENV option is retained
+  for porting convenience.
+* LOAD-FOREIGN (and LOAD-1-FOREIGN) now support logical pathnames,
+  as per Daniel Barlow's suggestion and Martin Atzmueller's patch
 
-changes in sbcl-0.7.12 relative to sbcl-0.7.11:
-  * minor incompatible change: code processed by the "interpreter" or
-    EVAL now has a compilation optimization policy of (DEBUG 2)
-    (changed from (DEBUG 1)) to improve debuggability of interactive
-    development, and to allow the use of the debug RETURN command in
-    such code.
-  * an experimental implementation of the RETURN command for the
-    debugger has been included.  (thanks to Frederik Kuivinen)
-  * fixed bug 62: constraints were not propagated into a loop.
-  * fixed bug in embedded calls of SORT (reported and investigated by
-    Wolfgang Jenkner).
-  * fixed some bugs revealed by Paul Dietz' test suite:
-    ** printing and reading of arrays with some dimensions having
-       length 0 (thanks to Gerd Moellmann);
-    ** BOA constructor with &AUX argument without a default value does
-       not cause a type error;
-    ** CONSTANTP now returns true for all self-evaluating objects.
+changes in sbcl-0.6.10 relative to sbcl-0.6.9:
 
-changes in sbcl-0.7.13 relative to sbcl-0.7.12:
-  * incompatible packaging change: in line with Unix convention, 
-    SBCL now looks for its core file in /usr/{local/,}lib/sbcl/sbcl.core 
-    if it's not in $SBCL_HOME.  It also sets SBCL_HOME to match.
-  * REQUIRE and PROVIDE are now optionally capable of doing something
-    useful. See the documentation string for REQUIRE.
-  * infrastructure for a managed SBCL contrib system: contributed 
-    modules in this release include:
-    ** the ASDF system definition facility;
-    ** an interface to the BSD Sockets API;
-    ** an ACL-like convenience interface to the repl; 
-       (thanks to Kevin Rosenberg)
-    ** an implementation of ROTATE-BYTE, with efficient implementation
-       on x86 hardware;
-  * fixed a bug in LOG, so that LOG of a rational argument near 1 now
-    gives a closer approximation to the right answer than previously.
-    (thanks to Raymond Toy)
-  * fixed bug 157: TYPEP, SUBTYPEP, UPGRADED-ARRAY-ELEMENT-TYPE and
-    UPGRADED-COMPLEX-PART-TYPE now take (ignored, in all situations)
-    optional environment arguments, as required by ANSI.
-  * fixed bugs in other functions taking environment objects, allowing
-    calls with an explicit NIL environment argument to be compiled
-    without error.
-  * fixed bug 228: primary return values from
-    FUNCTION-LAMBDA-EXPRESSION are either NIL or suitable for input to
-    COMPILE or FUNCTION.
-  * fixed a bug in DEFSTRUCT: predicates for :NAMED structures with
-    :TYPE will no longer signal errors on innocuous objects.
-  * fixed bug 231b: SETQ is better at respecting type declarations in
-    the lexical environment.
-  * fixed a bug in DEFCLASS: classes named by symbols with no or
-    unprintable packages can now be defined.
-  * fixed a bug in RESTART-BIND: The :TEST-FUNCTION option had been
-    carelessly renamed to :TEST-FUN.  (thanks to Robert E. Brown)
-  * fixed compiler failure related to checking types of functions.
-    (reported by Robert E. Brown)
-  * the compiler is now much more consistent in its error-checking
-    treatment of bounding index arguments to sequence functions: in
-    (SAFETY 3) code, errors will be signalled in almost all cases if
-    invalid sequence bounding indices are passed to functions defined
-    by ANSI to operate on sequences.
-  * fixed a bug in the build procedure: documentation of SBCL-specific
-    packages is now preserved and available in the final Lisp image.
-  * lifted FDEFINITION lookup out of loops in the implementation of
-    many list operations.  (thanks to Robert E. Brown)
-  * fixed a bug in the reader: the #n# reader macro now works for
-    objects of type STANDARD-OBJECT.  (reported by Tony Martinez)
-  * the compiler is now aware that SYMBOL-FUNCTION returns a FUNCTION
-    and that READ-DELIMITED-LIST returns a LIST.  (thanks to Robert
-    E. Brown and Tony Martinez respectively)
-  * PCL is now smarter about SLOT-VALUE, (SETF SLOT-VALUE) and
-    SLOT-BOUNDP: in particular, it is now able to optimize them much
-    better, and is now not vulnerable to having packages renamed.
-    Furthermore, a compliance bug has been fixed: SLOT-MISSING is now
-    always called when a slot is not present in an instance.  (thanks
-    to Gerd Moellmann)
-  * fixed a bug related to CONCATENATED-STREAMs: PEEK-CHAR will no
-    longer signal an error on unreading a character following EOF on
-    the previous constituent stream.  (thanks to Tony Martinez)
-  * fixed some bugs revealed by Paul Dietz' test suite:
-    ** ARRAY-IN-BOUNDS-P now allows arbitrary integers as arguments,
-       not just nonnegative fixnums;
-    ** the logical bit-array operators such as BIT-AND now accept an
-       explicit NIL for their "opt-arg" argument (to indicate a
-       freshly-consed result bit-array);
-    ** ELT now signals an error on an invalid sequence index in safe
-       code;
-    ** the type system is now cleverer about negations of numeric
-       types, and consequently understands the BIGNUM and RATIO types
-       better;
-    ** the type system is now cleverer about the interaction between
-       INTEGER and RATIO types: while bugs still remain, many more
-       cases are accurately computed;
-    ** in TYPECASE, OTHERWISE now only introduces an otherwise-clause
-       if it is in the last clause;
-    ** CONSTANTLY now correctly returns a side-effect-free function in
-       all cases;
-    ** DECLARE is no longer treated as a special-operator; in
-       particular, SPECIAL-OPERATOR-P no longer returns T for DECLARE;
-  * incremented fasl file version number due to the change in the
-    DEFSTRUCT-SLOT-DESCRIPTION structure.
+* A patch from Martin Atzmueller seems to have solved the SIGINT
+  problem, and as far as we know, signal-handling now works cleanly.
+  (If you find any new bugs, please report them!)
+* The system no longer defaults Lisp source file names to types
+  ".l", ".cl", or ".lsp", but only to ".lisp". 
+* The compiler no longer uses special default file extensions for
+  byte-compiled code. (The ANSI definition of COMPILE-FILE-PATHNAME
+  seems to expect a single default extension for all compiled code,
+  and there's no compelling reason to try to stretch the standard
+  to allow two different extensions.) Instead, byte-compiled files
+  default to the same extension as native-compiled files.
+* Fasl file format version numbers have increased again, because
+  a rearrangement of internal implementation packages made some 
+  dumped symbols in old fasl files unreadable in new cores.
+* DECLARE/DECLAIM/PROCLAIM logic is more nearly ANSI in general, with
+  many fewer weird special cases.
+* Bug #17 (differing COMPILE-FILE behavior between logical and 
+  physical pathnames) has been fixed, and some related misbehavior too,
+  thanks to a patch from Martin Atzmueller.
+* Bug #30 (reader problems) is gone, thanks to a CMU CL patch
+  by Tim Moore, ported to SBCL by Martin Atzmueller.
+* Martin Atzmueller fixed several filesystem-related problems,
+  including bug #36, in part by porting CMU CL patches, which were
+  written in part by Paul Werkowski.
+* More compiler warnings in src/runtime/ are gone, thanks to 
+  more patches from Martin Atzmueller.
+* Martin Atzmueller pointed out that bug 37 was fixed by his patches
+  some time ago.
 
-changes in sbcl-0.7.14 relative to sbcl-0.7.13:
-  * a better implementation of SXHASH on (simple) bit vectors,
-    measured both in execution speed and in distribution of results
-    over the positive fixnums, has been installed.  Likewise, a better
-    implementation of EQUAL for simple bit vectors is now available.
-  * fixed CEILING optimization for a divisor of form 2^k.
-  * fixed bug 240 (emitting extra style warnings "using the lexical
-    binding of the symbol *XXX*" for &OPTIONAL arguments).  (reported
-    by Antonio Martinez)
-  * fixed SXHASH, giving different results for NIL depending on type
-    declarations (SYMBOL or LIST).  (thanks to Gerd Moellmann)
-  * fixed bug in DEFPARAMETER and DEFVAR: they could assign a lexical
-    variable.  (found by Rolf Wester)
-  * SBCL does not ignore type declarations for special
-    variables.  (reported by rif on c.l.l 2003-03-05)
-  * some bug fixes in contrib/sb-aclrepl/
-  * fixed some bugs revealed by Paul Dietz' test suite:
-    ** a bug in the CONS type specifier, whereby the CAR and CDR
-       types got intertwined, has been fixed;
-    ** the type system is now able to reason about the interaction
-       between INTEGER and RATIO types more completely;
-    ** APPEND, [N]REVERSE and NRECONC check that those their
-       arguments, which must be proper lists, are really so;
-    ** An array specialized to be unable to hold elements has been
-       implemented, as required -- yes, really -- by ANSI;
-    ** GETF and GET-PROPERTIES throw a TYPE-ERROR, not a SIMPLE-ERROR,
-       on malformed property lists;
+changes in sbcl-0.6.9 relative to sbcl-0.6.8:
+
+* DESCRIBE now works on CONDITION objects.
+* The debugger now handles errors which arise when trying to print
+  *DEBUG-CONDITION*, so that it's less likely to fall into infinite
+  regress.
+* The build system now uses an additional file, customize-target-features.lisp,
+  to allow local modifications to the target *FEATURES* list. (The point of
+  this is that now I can set up a custom configuration, e.g. with :SB-SHOW
+  debugging features enabled, without having to worry about propagating it
+  into everyone's system when I do a "cvs update".) When no
+  customize-target-features.lisp file exists, the target *FEATURES* list
+  should be constructed the same way as before.
+* fixed bugs in DEFCONSTANT ANSI-compatibility:
+  ** DEFCONSTANT now tests reassignments using EQL, not EQUAL, in order to 
+     warn about behavior which is undefined under the ANSI spec. Note: This
+     is specified by ANSI, but it's not very popular with programmers.
+     If it causes you problems, take a look at the new SB-INT:DEFCONSTANT-EQX
+     macro in the SBCL sources for an example of a workaround which you
+     might use to make portable ANSI-standard code which does what you want.
+  ** DEFCONSTANT's implementation is now based on EVAL-WHEN instead of on
+     pre-ANSI IR1 translation magic, so it does the ANSI-specified thing
+     when it's used as a non-toplevel form. (This is required in order
+     to implement the DEFCONSTANT-EQX macro.)
+  ** (DEFCONSTANT X 1) (DEFVAR X) (SETF X 2) no longer "works".
+  ** Unfortunately, non-toplevel DEFCONSTANT forms can still do some
+     funny things, due to bugs in the implementation of EVAL-WHEN
+     (bug #IR1-3). This probably won't be fixed until 0.7.x. (Fortunately,
+     non-toplevel DEFCONSTANTs are uncommon.)
+* The core file version number and fasl file version number have been 
+  incremented, because the old noncompliant DEFCONSTANT behavior involved
+  calling functions which no longer exist, and because I also took the
+  opportunity to chop an unsupported slot out of the DEBUG-SOURCE structure.
+* fixed bug 1 (error handling before read-eval-print loop starts), and
+  redid debugger restarts and related debugger commands somewhat while
+  doing so:
+  ** The QUIT debugger command is gone, since it did something
+     rather different than the SB-EXT:QUIT command, and since it never
+     worked properly outside the main toplevel read/eval/print loop.
+     Invoking the new TOPLEVEL restart provides the same functionality.
+  ** The GO debugger command is also gone, since you can just invoke
+     the CONTINUE restart directly instead.
+  ** The TOP debugger command is also gone, since it's redundant with the
+     FRAME 0 command, and since it interfered with abbreviations for the
+     TOPLEVEL restart.
+* The system now recovers better from non-PACKAGE values of the *PACKAGE*
+  variable.
+* The system now understands compound CONS types (e.g. (CONS FIXNUM T))
+  as required by ANSI. (thanks to Douglas Crosher's CMU CL patches, with
+  some porting work by Martin Atzmueller)
+* Martin Atzmueller reviewed the CMU CL mailing lists and came back
+  with a boatload of patches which he ported to SBCL. Now that those
+  have been applied,
+  ** The system tries to make sure that its low-priority messages
+     are prefixed by semicolons, to help people who like to use
+     syntax highlighting in their ILISP buffer. (This patch
+     was originally due to Raymond Toy.)
+  ** The system now optimizes INTEGER-LENGTH better, thanks to more
+     patches originally written by Raymond Toy.
+  ** The compiler understands coercion between single-value and 
+     multiple-VALUES type expressions better, getting rid of some very
+     weird behavior, thanks to patches originally by Robert MacLachlan
+     and Douglas Crosher.
+  ** The system understands ANSI-style non-KEYWORD &KEY arguments in 
+     lambda lists, thanks to a patch originally by Pierre Mai.
+  ** The system no longer bogusly warns about "abbreviated type
+     declarations".
+  ** The compiler gets less confused by inlining and RETURN-FROM,
+     thanks to some patches originally by Tim Moore.
+  ** The system no longer hangs when dumping circular lists to fasl
+     files, thanks to a patch originally from Douglas Crosher.
+* Martin Atzmueller also fixed ROOM, so that it no longer fails with an
+  undefined function error.
+* gave up on fixing bug 3 (forbidden-by-ANSI warning for type mismatch
+  in structure slot initforms) for now, documented workaround instead:-|
+* fixed bug 4 (no WARNING for DECLAIM FTYPE of slot accessor function)
+* fixed bug 5: added stubs for various Gray stream functions called
+  in the not-a-CL:STREAM case, so that even when Gray streams aren't
+  installed, at least appropriate type errors are generated
+* fixed bug 8: better reporting of various PROGRAM-ERRORs
+* fixed bug 9: IGNORE and IGNORABLE now work reasonably and more
+  consistently in DEFMETHOD forms. 
+* removed bug 21 from BUGS, since Martin Atzmueller points out that 
+  it doesn't seem to affect SBCL after all
+* The C runtime system now builds with better optimization and many
+  fewer warnings, thanks to lots of cleanups by Martin Atzmueller.
 
-changes in sbcl-0.8alpha.0 relative to sbcl-0.7.14
-  * experimental native threads support (on x86 Linux >=2.4 only).
-    This is not compiled in by default: you need to add :SB-THREAD to
-    the target features.  See the "Beyond ANSI" chapter of the manual
-    for details.
-  * fix for longstanding nonANSIism: The old distinction between
-    CL:CLASS objects and SB-PCL:CLASS objects has been eliminated.
-    The return value from CL:FIND-CLASS is now a CLOS class, and
-    likewise that of CL:CLASS-OF; CL:BUILT-IN-CLASS,
-    CL:STRUCTURE-CLASS and CL:STANDARD-CLASS name CLOS classes.
-  * An interface to the MetaObject Protocol, as described in Kiczales,
-    des Rivieres and Bobrow's "The Art of the Metaobject Protocol",
-    MIT Press, 1991, is available from the SB-MOP package.
-  * incompatible change: the SB-PCL package should now be considered
-    a private implementation detail, and no longer a semi-private MOP
-    interface.
-  * minor incompatible change: due to rearrangement for threads, the
-    control stack and binding stack are now allocated at arbitrary
-    addresses instead of being hardcoded per-port.  Users affected by
-    this probably have to be doing advanced things with shared
-    libraries, and will know who they are.
-  * minor incompatible change: Previously, all --eval forms used were
-    processed with READ before any of them were processed with EVAL.
-    Now each --eval form is processed with both READ and EVAL before
-    the next --eval form is processed. (Thus package operations like
-    sbcl --eval "(defpackage :foo)" --eval "(print 'foo::bar)" now
-    work as the user might reasonably expect.)
-  * minor incompatible change: *STANDARD-INPUT* is now only an
-    INPUT-STREAM, not a BIDIRECTIONAL-STREAM.  (thanks to Antonio
-    Martinez)
-  * minor incompatible change: Y-OR-N-P is now character-oriented,
-    not line oriented.  Also, YES-OR-NO-P now works without errors.
-    (thanks to Antonio Martinez)
-  * sb-aclrepl module improvements: an integrated inspector, added
-    repl features, and a bug fix to :trace command.
-  * Known functions, which cannot be open coded by the backend, are
-    considered to be able to check types of their arguments. (fixing
-    a bug report by Nathan J. Froyd)
-  * fixed a bug in computing method discriminating functions: It is
-    now possible to define methods specialized on classes which have
-    forward-referenced superclasses. (thanks to Gerd Moellmann)
-  * fixed evaluation order in optional entries (reported by Gilbert
-    Baumann)
-  * SB-MOP:ENSURE-CLASS-USING-CLASS now takes its arguments in the
-    specified-by-AMOP order of (CLASS NAME &REST ARGS &KEY).
-  * SB-MOP:COMPUTE-EFFECTIVE-SLOT-DEFINITION now takes the
-    required-by-AMOP NAME argument, as well as CLASS and
-    DIRECT-SLOT-DEFINITIONS.  (thanks to Kevin Rosenberg)
-  * fixed bug 20: DEFMETHOD can define methods using names that are
-    not the proper names of classes to designate class specializers.
-  * bug fix: INTERACTIVE-STREAM-P now works on streams associated with
-    Unix file descriptors, instead of blowing up. (thanks to Antonio
-    Martinez)
-  * Garbage collection refactoring: user-visible change is that a
-    call to the GC function during WITHOUT-GCING will not do garbage
-    collection until the end of the WITHOUT-GCING.  If you were doing
-    this you were probably losing anyway.
-  * fixed bug in MEMBER type: (MEMBER 0.0) is not the same as
-    (SINGLE-FLOAT 0.0 0.0), because of the existence of -0.0 which is
-    TYPEP the latter but not the former.
-  * The compiler issues a full WARNING for calls to undefined functions
-    with names from the CL package.
-  * MAP-INTO for a vector destination is open coded.  (reported by
-    Brian Downing on c.l.l)
-  * bug fix: the long form of DEFINE-METHOD-COMBINATION now accepts a
-    documentation string.
-  * fixed some bugs revealed by Paul Dietz' test suite:
-    ** COPY-ALIST now signals an error if its argument is a dotted
-       list.
-    ** Condition slots are now accessed more correctly in the presence
-       of multiple initargs for a given slot.
-    ** The USE-VALUE, CONTINUE and STORE-VALUE functions now correctly
-       exclude restarts of the same name associated with a different
-       condition.
-    ** DEFCLASS of forward-referenced classes with another
-       forward-referenced class in the superclasses list no longer
-       causes an error.
-    ** Condition slots are now initialized once each, not multiple
-       times. (thanks to Gerd Moellmann)
-    ** CONVERT-MORE-CALL failed on a lambda list (&KEY). (thanks to
-       Gerd Moellmann)
-    ** &WHOLE and &REST arguments in macro lambda lists are patterns.
-    ** NSET-EXCLUSIVE-OR does not return extra elements when its
-       arguments contain duplicated elements.
-    ** RESTART-CASE understands local macros.
-    ** RESTART-CASE associates exactly its own restarts with a condition.
-    ** ENDP in safe mode checks its argument to be of type LIST.
-    ** COPY-SYMBOL in a threaded build no longer fails when the symbol
-       in question is unbound.
-    ** Optimized MAKE-INSTANCE functions no longer cause internal
-       assertion failures in the presence of duplicate initargs.
-    ** SLOT-MAKUNBOUND returns the instance acted upon, not NIL.
-    ** Side-effectful :DEFAULT-INITARGS have their side-effects
-       propagated even in the ctor optimized implementation of
-       MAKE-INSTANCE.
-    ** :ALLOW-OTHER-KEYS NIL is now accepted in an initarg list.
+changes in sbcl-0.6.8 relative to sbcl-0.6.7:
 
-changes in sbcl-0.8.0 relative to sbcl-0.8alpha.0
-  * SBCL now builds using CLISP (version of late April 2003 from CVS) as
-    cross-compilation host. As a consequence, we can now bootstrap our
-    way up to SBCL starting with a bare gcc toolchain and human-readable
-    source code (first the source to CLISP, then the source to SBCL).
-  * A contributed module containing a partial implementation of the
-    simple-streams interface has been included.  (thanks to Rudi
-    Schlatte)
-  * A contributed module implementing the RFC1321 Message Digest
-    Algorithm, known as MD5, has been included.
-  * minor incompatible change: The :NEGATIVE-ZERO-IS-NOT-ZERO feature
-    no longer has any effect, as the code controlled by this feature
-    has been deleted.  (As far as we know, no-one has ever built using
-    this feature, and its semantics were confused in any case).
-  * minor incompatible change: As a consequence of making SLOT-EXISTS-P
-    work on conditions (as required by the ANSI specification),
-    SLOT-VALUE, (SETF SLOT-VALUE) and SLOT-BOUNDP likewise have the
-    expected behaviour on conditions.  Users should note, however,
-    that such behaviour is not required by the ANSI specification,
-    and so use of this behaviour may render their code unportable.
-  * fixed some bugs revealed by Paul Dietz' test suite:
-    ** the GENERIC-FUNCTION type is no longer disjoint from FUNCTION
-       types.
-    ** &ENVIRONMENT parameter in macro lambda list is bound first.
-    ** SXHASH on condition objects no longer returns NIL.
-    ** :ALLOCATION :CLASS slots are better treated; their values are
-       updated on class redefinition, and initforms inherited from
-       superclasses are applied.
-    ** REMOVE-METHOD returns its generic function argument even when
-       no method was removed.
-    ** SHARED-INITIALIZE now initializes the values of the requested
-       slots, including those with :ALLOCATION :CLASS.
-    ** ALLOCATE-INSTANCE now works on structure classes defined via
-       DEFSTRUCT (and not just by those from DEFCLASS :METACLASS
-       STRUCTURE-CLASS).
-    ** SLOT-EXISTS-P now works on conditions, as well as structures
-       and CLOS instances.
-    ** MAKE-LOAD-FORM now has the required methods on
-       STRUCTURE-OBJECT, CONDITION and STANDARD-OBJECT.
-    ** MAKE-LOAD-FORM-SAVING-SLOTS no longer returns a special
-       keyword, and now implements the SLOT-NAMES argument.
-    ** methods with &OPTIONAL arguments no longer allow too many
-       arguments to be passed in the call without error.
-    ** DEFGENERIC now checks that the :ARGUMENT-PRECEDENCE-ORDER
-       option is consistent with the required arguments of the generic
-       function lambda list.
-  * bug fix: REQUIRE accepts a string designator. (Thanks to 
-    Antonio Martinez.)
-  * bug fix: SB-MOP:DIRECT-SLOT-DEFINITION-CLASS and
-    SB-MOP:EFFECTIVE-SLOT-DEFINITION-CLASS now have the
-    specified-by-AMOP lambda list of (CLASS &REST INITARGS).
-  * bug fix: The compiler now checks for duplicated variables in macro
-    lambda lists.
-  * bug fix: SETQ on globals returns the correct value.
-  * fixed bug 47.d: (DEFGENERIC IF (X)) now signals a PROGRAM-ERROR,
-    not a COMPILER-ERROR (followed by some other strange error on
-    choosing the CONTINUE restart).
-  * bug fix: make.sh and friends are now more consistent in the way that
-    they look for GNU "make".
+* The system is now under CVS at SourceForge (instead of the
+  CVS repository on my home machine).
+* The new signal handling code has been tweaked to treat register
+  contents as (UNSIGNED-BYTE 32), as the old CMU CL code did,
+  instead of (SIGNED-BYTE 32), as the C header files have it. (Code 
+  downstream, e.g. in debug-int.lisp, has implicit dependencies
+  on the unsignedness of integer representation of machine words, 
+  and that caused the system to bomb out with infinite regress
+  when trying to recover from type errors involving signed values,
+  e.g. (BUTLAST '(1 2 3) -1).)
+* (BUTLAST NIL) and (NBUTLAST NIL) now return NIL as they should.
+  (This was one of the bugs Peter Van Eynde reported back in July.)
+* The system now uses code inspired by Colin Walters' O(N)
+  implementation of MAP (from the cmucl-imp@cons.org mailing
+  list, 2 September 2000) when it can't use a DEFTRANSFORM to
+  inline the MAP operation, and there is more than one
+  sequence argument to the MAP call (so that it can't just
+  do ETYPECASE once and for all based on the type of the
+  single sequence argument). (The old non-inline implementation
+  of the general M-argument sequence-of-length-N case required
+  O(M*N*N) time when any of the sequence arguments were LISTs.)
+* The QUIT :UNIX-CODE keyword argument has been renamed to 
+  QUIT :UNIX-STATUS. (The old name still works, but is deprecated.)
+* Raymond Wiker's patches to port RUN-PROGRAM from CMU CL to SBCL
+  have been added.
+* Raymond Wiker's patches to port dynamic loading from Linux to
+  FreeBSD have been added.
+* The BUGS file is now more nearly up to date, thanks in large part
+  to Martin Atzmueller's review of it.
+* The debugger now flushes standard output streams before it begins
+  its output ("debugger invoked" and so forth).
+* The core version number and fasl file version number have both
+  been incremented, because of incompatible changes in the layout
+  of static symbols.
+* FINISH-OUTPUT is now called more consistently on QUIT. (It
+  used to not be called for a saved Lisp image.)
+* Martin Atzmueller's version of a patch to fix a compiler crash,
+  as posted on sbcl-devel 13 September 2000, has been installed.
+* Instead of installing Martin Atzmueller's patch for the
+  compiler transform for SUBSEQ, I deleted the compiler transform,
+  and transforms for some similar consing operations.
+* A bug in signal handling which kept TRACE from working on OpenBSD
+  has been fixed.
+* added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized
+  away by constant folding
+* The system now defines its address space constants in one place
+  (in the Lisp sources), and propagates them automatically elsewhere
+  (through GENESIS and the sbcl.h file). Therefore, patching the
+  address map is less unnecessarily tedious and error-prone. The
+  Lisp names of address space constants have also been systematized.
+* CVS tags like dollar-Header-dollar have been removed from
+  the sources, because they have never saved me trouble and
+  they've been source of trouble working with patches and other
+  diff-related operations.
+* fixed the PROG1-vs.-PROGN bug in HANDLER-BIND (reported by 
+  ole.rohne@cern.ch on cmucl-help@cons.org 2000-10-25)
 
-changes in sbcl-0.8.1 relative to sbcl-0.8.0:
-  * minor incompatible change: some nonsensical specialized lambda
-    lists (used in DEFMETHOD) which were previously ignored now signal
-    errors.
-  * minor incompatible change: the system is now aware of the types of
-    variables in the COMMON-LISP package, and will signal errors for
-    most violations of these type constraints (where previously they
-    were silently accepted).
-  * minor incompatible change: COMPILE-FILE now uses the freedom
-    afforded (ANSI 3.2.2.3) to use derived function types for
-    functions defined in the same file. This also permits the system
-    to warn on static type mismatches and function
-    redefinition.  (Currently it does not work with high DEBUG level.)
-  * minor incompatible change: VALUES declaration is disabled.
-  * When issuing notes, the compiler now signals a condition of type
-    SB-EXT:COMPILER-NOTE, and provides an associated MUFFLE-WARNING
-    restart for use in user handlers.  It is expected that the
-    COMPILER-NOTE condition will eventually become a condition
-    supertype to a hierarchy of note types, which will then be
-    handleable in a similar fashion. However, at the moment, no such
-    note subtypes yet exist. (SB-INT:SIMPLE-COMPILER-NOTE exists,
-    but it's an implementation detail, not a classification for the
-    purpose above.)
-  * Changes in type checking closed the following bugs:
-    ** type checking of unused values (192b, 194d, 203);
-    ** template selection based on unsafe type assertions (192c, 236);
-    ** type checking in branches (194bc).
-  * A short form of VALUES type specifier has ANSI meaning (it has
-    increased the number of situations when SBCL cannot perform type
-    checking).
-  * fixed bug in DEFSTRUCT: once again, naming structure slots with
-    keywords or constants is permissible.
-  * STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE now have methods
-    defined on the relevant FUNDAMENTAL-BINARY-{INPUT,OUTPUT}-STREAM
-    classes.  (thanks to Antonio Martinez)
-  * improved ANSIness in DESCRIBE: The DESCRIBE function no longer
-    outputs FRESH-LINE or TERPRI, and no longer converts its stream
-    argument to a pretty-print stream. Instead, it leaves any such 
-    operations to DESCRIBE-OBJECT methods.
-  * bug fix: APROPOS now respects the EXTERNAL-ONLY flag. (reported
-    by Teemu Kalvas)
-  * bug fix: NIL is now a valid destructuring argument in DEFMACRO
-    lambda lists. (thanks to David Lichteblau)
-  * bug fix: Defining a generic function with a :METHOD-CLASS being a
-    subclass of STANDARD-METHOD no longer causes stack exhaustion.
-    (thanks to Gerd Moellmann)
-  * fixed bug 246: increased compilation speed of long
-    MULTIPLE-VALUE-BIND (and likewise of NTH-VALUE with a constant
-    integer argument)
-  * a contributed module implementing COMPILER-LET and MACROEXPAND-ALL
-    has been included.
-  * DEFCONSTANT now throws a condition of type
-    SB-EXT:DEFCONSTANT-UNEQL if it is being asked to redefine a
-    constant to a non-EQL value; CONTINUE and ABORT restarts
-    respectively change and preserve the value. 
-  * fixed bug 63: The code walker, part of the implementation of CLOS,
-    is now better at handling symbol macros.
-  * bug fix: There is no longer an internal implementation type named
-    CL:LENGTH. (reported by Raymond Toy)
-  * bug fix: In macro-like defining macros/special operators the
-    implicit block does not enclose the lambda list.
-  * fixed bugs 10 and 43: Bare VALUES, AND, OR and MEMBER symbols (not
-    enclosed in parentheses) are not suitable as type specifiers, and
-    their use properly signals an error now.
-  * bug fix: An argument count mismatch for a type specifier in code
-    being compiled no longer causes an unhandled error at compile
-    time, but signals a compile-time warning.
-  * fixed simple vector readable printing
-  * bug fix: DESCRIBE takes more care over whether the class
-    precedence list slot of a class is bound before accessing it.
-    (reported by Markus Krummenacker)
-  * bug fix: FORMATTER can successfully compile pretty-printer format
-    strings which use variants of the ~* directive inside.
-  * bug fix: SEARCH now applies its TEST predicate to the elements of
-    the arguments in the correct order. (thanks to Wolfhard Buss)
-  * fixed bug 235b: The compiler uses return types of MAPCAR and friends
-    in type inference. (thanks to Robert E. Brown)
-  * bug fix: Reading in symbols with an explicit package name of ""
-    (e.g. '||::FOO) now works correctly.  (reported by Henrik Motakef)
-  * fixed some bugs revealed by Paul Dietz' test suite:
-    ** NIL is now allowed as a structure slot name.
-    ** Arbitrary numbers, not just REALs, are allowed in certain
-       circumstances in LOOP for-as-arithmetic clauses.
-    ** Multiple class redefinitions before slot access no longer
-       causes a type error.
-    ** (SETF FIND-CLASS) now accepts NIL as an argument to remove the
-       association between the name and a class.
-    ** Generic functions with non-standard method-combination and over
-       five methods all of which return constants no longer return NIL
-       after the first few invocations. (thanks to Gerd Moellmann)
-    ** CALL-NEXT-METHOD with no arguments now passes the original
-       values of the arguments, even in the presence of assignment.
-    ** Functions [N]SUBST*, LAST, NRECONC, [N]SUBLIS may return any
-       object.
-    ** DISASSEMBLE works with closures and funcallable instances.
-    ** ADD-METHOD now returns the generic function, not the new method.
-    ** FIND-METHOD signals an error if the lengths of the specializers
-       is incompatible with the generic function, even if the ERRORP
-       argument is true.
-    ** TYPE-OF returns recognizeable subtypes of all built-in-types of
-       which its argument is a member.
-    ** DEFCLASS only redefines the class named by its class-name
-       argument if that name is the proper name of the class;
-       otherwise, it creates a new class.
-    ** SLOT-UNBOUND now correctly initalizes the CELL-ERROR-NAME slot
-       of the UNBOUND-SLOT condition to the name of the slot.
-    ** (SETF (AREF bv 0) ...) did not work for bit vectors.
-    ** SLOT-UNBOUND and SLOT-MISSING now have their return values
-       treated by SLOT-BOUNDP, SLOT-VALUE, (SETF SLOT-VALUE) and
-       SLOT-MAKUNBOUND in the specified fashion.
+changes in sbcl-0.6.7 relative to sbcl-0.6.6:
 
-changes in sbcl-0.8.2 relative to sbcl-0.8.1:
-  * fixed bug 148: failure to inline-expand a local function left
-    garbage, confusing the compiler.
-  * fixed bugs 3cd: structure slot readers perform type check if the
-    slot can have an invalid value (i.e. it is either not initialized
-    or can be written with a less specific slot writer).
-  * bug fix: the compiler now traps array references to elements off
-    the end of an array; previously, the bounds checking in some
-    circumstances could go off-by-one.
-  * improved MACHINE-VERSION, especially on Linux (thanks to Lars
-    Brinkhoff)
-  * type declarations for array element types now obey the description
-    on the CLHS page "Declaration TYPE", as per discussions on
-    sbcl-help around 2003-05-08.  This means that a declaration 
-    (TYPE (ARRAY FOO) BAR) means that, within the scope of the
-    declaration, all references to BAR will be asserted or assumed
-    (with THE, so dependent on compiler policy) to involve objects of
-    type FOO.  Note that no such declaration is implied in 
-    (MAKE-ARRAY .. :ELEMENT-TYPE 'FOO).
-  * declared types of functions from the "Conditions"
-    chapter. (reported by Paul Dietz)
-  * bug fix: CERROR accepts a function as its first argument.
-  * bug fix: NTH an NTHCDR accept a bignum as index
-    arguments. (reported by Adam Warner)
-  * optimization: character compare routines now optimize comparing
-    against a constant character. (reported by Gilbert Baumann)
-  * bug fix: (SETF AREF) on byte-sized-element arrays with constant index
-    argument now works properly on the MIPS platform.
-  * fixed compiler failure on (TYPEP x '(NOT (MEMBER 0d0))).
-  * repeated evaluation of the same DEFSTRUCT, a slot of which is
-    declared to have a functional type, does not cause an error
-    anymore.
-  * fixed bug: sometimes MAKE-INSTANCE did not work with classes with
-    many :DEFAULT-INITARGS. (reported by Istvan Marko)
-  * fixed bug: if last continuation of a deleted block has a
-    destination, this destination should be deleted too. (reported by
-    ohler on #lisp)
-  * fixed a bug in the bootstrap process: the host compiler's values
-    of ARRAY-DIMENSION-LIMIT and ARRAY-TOTAL-SIZE-LIMIT no longer leak
-    into the newly-built SBCL. (reported by Eric Marsden on #lisp,
-    test case from Patrik Nordebo)
-  * improved the ability of the disassembler on the PPC platform to
-    provide helpful disassembly notes.
-  * SB-MOP:CLASS-PROTOTYPE on built-in-classes returns an instance of
-    the class in more cases than previously.
-  * bug fix: FILE-POSITION now understands :START and :END for
-    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.
+* The system has been ported to OpenBSD.
+* The system now compiles with a simple "sh make.sh" on the systems
+  that it's supported on. I.e., now you no longer need to tweak 
+  text in the target-features.lisp-expr and symlinks in src/runtime/
+  by hand, the make.sh takes care of it for you.
+* The system is no longer so grossly inefficient when compiling code
+  involving vectors implemented as general (not simple) vectors (VECTOR T),
+  so code which dares to use VECTOR-PUSH-EXTEND and FILL-POINTER, or
+  which dares to use the various sequence functions on non-simple 
+  vectors, takes less of a performance hit.
+  * There is now a primitive type predicate VECTOR-T-P
+    to test for the (VECTOR T) type, so that e.g.
+       (DEFUN FOO (V) (DECLARE (TYPE (VECTOR T) V)) (AREF V 3))
+    can now be compiled with some semblance of efficiency. (The old code
+    turned the type declaration into a full call to %TYPEP at runtime!)
+  * AREF on (VECTOR T) is still not fast, since it's still compiled
+    as a full call to SB-KERNEL:DATA-VECTOR-REF, but at least the
+    ETYPECASE used in DATA-VECTOR-REF is now compiled reasonably
+    efficiently. (The old version made full calls to SUBTYPEP at runtime!)
+  * (MAKE-ARRAY 12 :FILL-POINTER T) is now executed less inefficiently,
+    without making full calls to SUBTYPEP at runtime.
+  (Some analogous efficiency issues for non-simple vectors specialized to
+  element types other than T, or for non-simple multidimensional arrays,
+  have not been addressed. They could almost certainly be handled the
+  same way if anyone is motivated to do so.)
+* The changes in array handling break binary compatibility, so
+  *BACKEND-FASL-FILE-VERSION* has been bumped to 4.
+* (TYPEP (MAKE-ARRAY 12 :FILL-POINTER 4) 'VECTOR) now returns (VALUES T)
+  instead of (VALUES T T).
+* By following the instructions that Dan Barlow posted to sbcl-devel
+  on 2 July 2000, I was able to enable primitive dynamic object
+  file loading code for Linux. The full-blown CMU CL LOAD-FOREIGN
+  functionality is not implemented (since it calls ld to resolve
+  library references automatically, requiring RUN-PROGRAM for its
+  implementation), but a simpler SB-EXT:LOAD-1-FOREIGN (which doesn't
+  try to resolve library references) is now supported.
+* The system now flushes the standard output streams when it terminates,
+  unless QUIT is used with the RECKLESSLY-P option set. It also flushes
+  them at several other probably-convenient times, e.g. in each pass of
+  the toplevel read-eval-print loop, and after evaluating a form given
+  as an "--eval" command-line option. (These changes were motivated by a
+  discussion of stream flushing issues on cmucl-imp in August 2000.) 
+* The source transform for TYPEP of array types no longer assumes
+  that an array whose element type is a not-yet-defined type 
+  is implemented as an array of T, but instead punts, so that the 
+  type will be interpreted at runtime.
+* There is now some support for cross-compiling in make.sh: each of
+  the phases of make.sh has its own script. (This should be transparent
+  to people doing ordinary, non-cross-compile builds.)
+* Since my laptop doesn't have hundreds of megabytes of memory like
+  my desktop machine, I became more motivated to do some items on
+  my to-do list in order to reduce the size of the system a little:
+  ** Arrange for various needed-only-at-cold-init things to be
+     uninterned after cold init. To support this, those things have
+     been renamed from FOO and *FOO* to !FOO and *!FOO* (i.e., all
+     symbols with such names are now uninterned after cold init).
+  ** Bind SB!C::*TOP-LEVEL-LAMBDA-MAX* to a nonzero value when building
+     fasl files for cold load.
+  ** Remove the old compiler structure pooling code (which used to 
+     be conditional on the target feature :SB-ALLOC) completely.
+  ** Redo the representation of some data in cold init to be more compact.
+  (I also looked into supporting byte compiled code at bootstrap time,
+  which would probably reduce the size of the system a lot, but that
+  looked too complicated, so I punted for now.)
+* The maximum signal nesting depth in the src/runtime/ support code has
+  been reduced from 4096 to 256. (I don't know any reason for the very
+  large old value. If the new smaller value turns out to break something,
+  I'll probably just bump it back up.)
+* PPRINT-LOGICAL-BLOCK is now pickier about the types of its arguments,
+  as per ANSI.
+* Many, many bugs reported by Peter Van Eynde have been added to
+  the BUGS list; some have even been fixed.
+* While enabling dynamic object file loading, I tried to make the 
+  code easier to understand, renaming various functions and variables
+  with less ambiguous names, and changing some function calling
+  conventions to be Lispier (e.g. returning NIL instead of 0 for failure).
+* While trying to figure out how to do the OpenBSD port, I tried to 
+  clean up some of the code in src/runtime/. In particular, I dropped
+  support for non-POSIX signal handling, added various comments, 
+  tweaked the code to reduce the number of compilation warnings, and
+  renamed some files to increase consistency.
+* To support the new automatic configuration functionality in make.sh,
+  the source file target-features.lisp-expr has been replaced with the
+  source file base-target-features.lisp-expr and the machine-generated
+  file local-target-features.lisp-expr.
+* fixed a stupid quoting error in make.sh so that using CMU CL
+  "lisp -batch" as cross-compilation host works again
 
-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.6.6 relative to sbcl-0.6.5:
 
-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).
+* DESCRIBE no longer tries to call itself recursively to describe
+  bound/fbound values, so that it no longer fails on symbols which are
+  bound to themselves (like keywords, T, and NIL).
+* DESCRIBE now works on generic functions.
+* The printer now prints less-screwed-up representations of closures
+  (not naively trying to bogusly use the %FUNCTION-NAME accessor on them).
+* A private symbol is used instead of the :EMPTY keyword previously 
+  used to mark empty slots in hash tables. Thus 
+       (DEFVAR *HT* (MAKE-HASH-TABLE))
+       (SETF (GETHASH :EMPTY *HT*) :EMPTY)
+       (MAPHASH (LAMBDA (K V) (FORMAT T "~&~S ~S~%" K V)))
+  now does what ANSI says that it should. (You can still get 
+  similar noncompliant behavior if bang on the hash table
+  implementation with all the symbols you get back from 
+  DO-ALL-SYMBOLS, but at least that's a little harder to do.)
+  This breaks binary compatibility, since tests for equality to 
+  :EMPTY are wired into things like the macroexpansion of 
+  WITH-HASH-TABLE-ITERATOR in FASL files produced by earlier
+  implementations.
+* There's now a minimal placeholder implementation for CL:STEP,
+  as required by ANSI.
+* An obscure bug in the interaction of the normal compiler, the byte
+  compiler, inlining, and structure predicates has been patched
+  by setting the flags for the DEFTRANSFORM of %INSTANCE-TYPEP as
+  :WHEN :BOTH (as per Raymond Toy's suggestion on the cmucl-imp@cons.org
+  mailing list).
+* Missing ordinary arguments in a macro call are now detected even
+  when the macro lambda list contains &KEY or &REST.
+* The debugger no longer complains about encountering the top of the
+  stack when you type "FRAME 0" to explicitly instruct it to go to
+  the top of the stack. And it now prints the frame you request even
+  if it's the current frame (instead of saying "You are here.").
+* As specified by ANSI, the system now always prints keywords
+  as #\: followed by SYMBOL-NAME, even when *PACKAGE* is the
+  KEYWORD package.
+* The default initial SIZE of HASH-TABLEs is now smaller.
+* Type information from CLOS class dispatch is now propagated
+  into DEFMETHOD bodies, so that e.g.
+       (DEFMETHOD FOO ((X SINGLE-FLOAT))
+         (+ X 123.0))
+  is now basically equivalent to 
+       (DEFMETHOD FOO ((X SINGLE-FLOAT))
+         (DECLARE (TYPE SINGLE-FLOAT X))
+         (+ X 123.0))
+  and the compiler can compile (+ X 123.0) as a SINGLE-FLOAT-only
+  operation, without having to do run-time type dispatch.
+* The macroexpansion of DEFMETHOD has been tweaked so that it has
+  reasonable behavior when arguments are declared IGNORE or IGNORABLE.
+* Since I don't seem to be making big file reorganizations very often
+  any more (and since my archive of sbcl-x.y.zv.tar.bz2 snapshots
+  is overflowing my ability to conveniently back them up), I've finally
+  checked the system into CVS. (The CVS repository is on my home system,
+  not at SourceForge -- putting it on SourceForge might come later.)
+* SB-EXT:*GC-NOTIFY-STREAM* has been added, to control where the 
+  high-level GC-NOTIFY-FOO functions send their output. (There's
+  still very little control of where low-level verbose GC functions
+  send their output.) The SB-EXT:*GC-VERBOSE* variable now controls
+  less than it used to -- the GC-NOTIFY-FOO functions are now under
+  the control of *GC-NOTIFY-STREAM*, not *GC-VERBOSE*.
+* The system now stores the version string (LISP-IMPLEMENTATION-VERSION)
+  in only one place in the source code, and propagates it automatically
+  everywhere that it's needed. Thus e.g. when I bump the version from
+  0.6.6 to 0.6.7, I'll only need to modify the sources in one place.
+* The C source files now include boilerplate legalese and documentation
+  at the head of each file (just as the Lisp source files already did).
+* At Dan Barlow's suggestion, the hyperlink from the SBCL website
+  to his page will be replaced with a link to his new CLiki service.
 
-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.6.5 relative to sbcl-0.6.4:
 
-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.
+* Raymond Wiker's patches to port the system to FreeBSD have been merged.
+* The build process now looks for GNU make under the default name "gmake",
+  instead of "make" as it used to. If GNU make is not available as "gmake"
+  on your system, you can change this default behavior by setting the 
+  GNUMAKE environment variable.
+* Replace #+SB-DOC with #!+SB-DOC in seq.lisp so that the system 
+  can build without error under CMU CL.
 
-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.6.4 relative to sbcl-0.6.3:
 
-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).
+* There is now a partial SBCL user manual (with some new text and some
+  text cribbed from the CMU CL manual). 
+* The beginnings of a profiler have been added (starting with the
+  CMU CL profiler and simplifying and cleaning up). Eventually the
+  main interface should be through the TRACE macro, but for now, 
+  it's still accessed through vaguely CMU-CL-style functions and macros
+  exported from the package SB-PROFILE.
+* Some problems left over from porting CMU CL to the new
+  cross-compilation bootstrap process have been cleaned up:
+  ** DISASSEMBLE now works. (There was a problem in using DEFMACRO
+     instead of SB!XC:DEFMACRO, compounded by an oversight on my 
+     part when getting rid of the compiler *BACKEND* stuff.)
+  ** The value of *NULL-TYPE* was screwed up, because it was
+     being initialized before the type system knew the final
+     definition of the 'NULL type. This screwed up several key
+     optimizations in the compiler, causing inefficiency in all sorts
+     of places. (I found it because I wanted to understand why
+     GET-INTERNAL-RUN-TIME was consing.) 
+* fixed a bug in DEFGENERIC which was causing it to overwrite preexisting
+  PROCLAIM FTYPE information. Unfortunately this broke binary 
+  compatibility again, since now the forms output by DEFGENERIC
+  to refer to functions which didn't exist in 0.6.3.
+* added declarations so that SB-PCL::USE-CACHING-DFUN-P 
+  can use the new (as of 0.6.3) transform for SOME into MAP into 
+  inline code
+* changed (MOD 1000000) type declarations for Linux timeval.tv_usec slot
+  values to (INTEGER 0 1000000), so that the time code will no longer
+  occasionally get blown up by Linux returning 1000000 microseconds
+* PRINT-UNREADABLE-OBJECT has been tweaked to make the spacing of
+  its output conform to the ANSI spec. (Alas, this makes its output
+  uglier in the :TYPE T :IDENTITY NIL case, but them's the breaks.)
+* A full call to MAP NIL with a single sequence argument no longer conses.
+* fixes to problems pointed out by Martin Atzmueller:
+  * The manual page no longer talks about multiprocessing as though
+    it were currently supported.
+  * The ILISP support patches have been removed from the distribution,
+    because as of version 5.10.1, ILISP now supports SBCL without us
+    having to maintain patches.
+* added a modified version of Raymond Toy's recent CMU CL patch for
+  EQUALP comparison of HASH-TABLE
 
-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.6.3 relative to sbcl-0.6.2:
 
-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)
+* The system still can't cross-compile itself with
+  *TYPE-SYSTEM-INITIALIZED* (and all the consistency checks that
+  entails), but at least it can compile more of itself that way
+  than it used to be able to, and various buglets which were uncovered
+  by trying to cross-compile itself that way have now been fixed.
+* This release breaks binary compatibility again. This time 
+  at least I've incremented the FASL file format version to 2, so that the
+  problem can be detected reliably instead of just causing weird errors.
+* various new style warnings:
+  ** using DEFUN, DEFMETHOD, or DEFGENERIC to overwrite an old definition
+  ** using the deprecated EVAL/LOAD/COMPILE situation names in EVAL-WHEN
+  ** using the lexical binding of a variable named in the *FOO* style
+* DESCRIBE has been substantially rewritten. It now calls DESCRIBE-OBJECT
+  as specified by ANSI.
+* *RANDOM-STATE* is no longer automatically initialized from 
+  (GET-UNIVERSAL-TIME), but instead from a constant seed. Thus, the
+  default behavior of the system is to repeat its behavior every time
+  it's run. If you'd like to change this behavior, you can always
+  explicitly set the seed from (GET-UNIVERSAL-TIME); whereas under the 
+  old convention there was no comparably easy way to get the system to 
+  repeat its behavior every time it was run.
+* Support for the pre-CLTL2 interpretation of FUNCTION declarations as
+  FTYPE declarations has been removed, in favor of their ANSI
+  interpretation as TYPE FUNCTION declarations. (See p. 228 of CLTL2.)
+* The quantifiers SOME, EVERY, NOTANY, and NOTEVERY no longer cons when
+  the types of their sequence arguments can be determined at compile time.
+  This is done through a new open code expansion for MAP which eliminates
+  consing for (MAP NIL ..), and reduces consing otherwise, when sequence
+  argument types can be determined at compile time.
+* The optimizer now transforms COERCE into an identity operation when it 
+  can prove that the coerced object is already of the correct type. (This 
+  can be a win for machine generated code, including the output of other
+  optimization transforms, such as the MAP transform above.)
+* Credit information has been moved from source file headers into CREDITS.
+* Source file headers have been made more standard.
+* The CASE macro now compiles without complaining even when it has
+  no clauses.
 
-changes in sbcl-0.8.11 relative to sbcl-0.8.10:
-  * minor incompatible change: the sb-grovel contrib now treats C
-    structures as alien (in the sense of SB-ALIEN) objects rather than
-    as undistinguished (simple-array (unsigned-byte 8) (*))s.  This
-    has implications for memory management of client code
-    (sb-grovel-returned objects must now be manually managed) and for
-    type safety (alien objects now have full types).
-  * 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.
-  * install.sh now installs the user manual as well
-  * (not quite a new documentable feature, but worth considering in
-    the light of the new SB-EXT:MUFFLE-CONDITIONS declaration): the
-    beginnings of a semantically meaningful condition hierarchy is
-    under development, for use in SB-EXT:MUFFLE-CONDITIONS and by
-    IDEs.
-  * fixed bug: PARSE-NAMESTRING now accepts any valid pathaname
-    designator as the defaults argument.
-  * fixed bug: Displaced arrays whose displaced-to array has become
-    too small now cause ARRAY-DIMENSION to signal an error, providing
-    for safer bounds-checking. (reported by Bruno Haible)
-  * fixed bug: DEFCLASS slot definitions with identical :READER and
-    :WRITER names now signal a reasonable error. (reported by Thomas
-    Burdick)
-  * fixed bug: CLOSE :ABORT T on appending stream no longer causes
-    file deletion.
-  * fixed bug: Invalid slot specification errors now print correctly. 
-    (thanks to Zach Beane)
-  * 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)
-  * 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.
-  * fixed bugs 280 and 312: the checking for multiple definitions in a
-    file is less likely to become confused by uses of inline
-    functions.
-  * fixed bug: the #S reader macro performs the keyword coercion
-    specified for slot names.  (reported by Kalle Niemitalo)
-  * fixed bug: lambda lists may contain symbols whose names start with
-    & but are not lambda-list-keywords; their occurrence triggers a
-    STYLE-WARNING.
-  * fixed bug 321: define-method-combination argument lambda lists do
-    not cause invalid code to be generated when &optional or &aux
-    variables have default values.  (reported by Bruno Haible)
-  * fixed bug 327: system subclasses of STRUCTURE-OBJECT or CONDITION
-    have CLOS classes; this appears also to have fixed reported
-    instability in stack exhaustion detection.
-  * fixed bug: the CONTROL-ERROR from ABORT, CONTINUE and
-    MUFFLE-WARNING when no associated restart is present is now
-    printable.
-  * 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%.
-  * optimization: used a previously little-used slot in symbols to
-    cache SXHASH values, yielding a 5-10% compiler speedup.  (thanks
-    to Juho Snellman)
-  * 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.
-    ** fixed non-pretty printing of arrays with *PRINT-RADIX* being
-       true.
-    ** provided a readably-printable representation for RANDOM-STATE
-       objects.
-    ** ensured that pathnames, where they have a namestring, always
-       print using #P"..." syntax.
+changes in sbcl-0.6.2 relative to sbcl-0.6.1:
+
+* (Note that the way that the PCL macroexpansions were rewritten
+  to accommodate the change in DEFGENERIC below breaks binary
+  compatibility. That is, fasl files compiled under sbcl-0.6.1 may
+  not run under sbcl-0.6.2. Once we get out of alpha releases,
+  i.e. hit release 1.0.0, we'll probably try to maintain binary
+  compatibility between maintenance releases, e.g. between sbcl-1.4.3
+  and sbcl-1.4.4. Until then, however, it might be fairly common
+  for maintenance releases to break binary compatibility.)
+* A bug in the calculation of WARNINGS-P and FAILURE-P in COMPILE-FILE
+  has been fixed.
+* The reporting of unhandled signals has been changed to print some
+  explanatory text as well as the report form. (Previously only
+  the report form was printed.)
+* The macroexpansion for DEFGENERIC now DECLAIMs the function that
+  it defines, so that the compiler no longer issues undefined function
+  warnings for compiled-but-not-yet-loaded generic functions. 
+* The CLTL-style "LISP" and "USER" nicknames for the "COMMON-LISP"
+  and "COMMON-LISP-USER" packages have been removed. Now only the "CL"
+  and "CL-USER" standard nicknames from the "11.1.2 Standardized Packages"
+  section of the ANSI spec are supported.
+* The "" nickname for the "KEYWORD" package has been removed. 
+  The reader still handles symbol tokens which begin with a package marker
+  as keywords, but it doesn't expose its mechanism for doing so in the
+  (PACKAGE-NICKNAMES (FIND-PACKAGE "KEYWORD")) list.
+* The system now issues STYLE-WARNINGs for contradictory TYPE 
+  proclamations. (Warnings for contradictory FTYPE proclamations would
+  be nice too, but those can't be done usefully unless the type system
+  is made smarter about FUNCTION types.)
+* The names of source files "*host-*.lisp" and "*target-*.lisp" have been 
+  systematized, so that "*target-*.lisp is supposed to exist only on the
+  target and imply that there's a related file which exists on the
+  host, and *host-*.lisp is supposed to exist only on the host and imply
+  that there's a related file which exists on the target. This involves a
+  lot of renaming. Hopefully the acute confusion caused by the renaming
+  will be justified by the reduction in chronic confusion..
+  ** runtime-type.lisp    -> early-target-type.lisp
+  ** target-type.lisp     -> late-target-type.lisp
+  ** early-host-format.lisp -> early-format.lisp
+  ** late-host-format.lisp -> late-format.lisp
+  ** host-error.lisp      -> misc-error.lisp
+  ** early-error.lisp     -> early-target-error.lisp
+  ** late-error.lisp      -> late-target-error.lisp
+  ** host-defboot.lisp    -> early-defboot.lisp
+  ** code/misc.lisp       -> code/target-misc.lisp
+  ** code/host-misc.lisp  -> code/misc.lisp
+  ** code/numbers.lisp    -> code/target-numbers.lisp
+  ** code/early-numbers.lisp -> numbers.lisp
+  ** early-host-type.lisp -> early-type.lisp
+  ** late-host-type.lisp  -> late-type.lisp
+  ** host-typep.lisp      -> typep.lisp
+  ** load.lisp            -> target-load.lisp
+  ** host-load.lisp       -> load.lisp
+  ** host-disassem.lisp   -> disassem.lisp
+  ** host-insts.lisp      -> insts.lisp
+  ** byte-comp.lisp       -> target-byte-comp.lisp
+  ** host-byte-comp.lisp  -> byte-comp.lisp
+  ** host-signal.lisp     -> signal.lisp
+  ** host-defstruct.lisp  -> defstruct.lisp
+  ** late-target-type.lisp -> deftypes-for-target.lisp
+  Furthermore, several other previously target-only files foo.lisp (e.g.
+  hash-table.lisp and random.lisp) have been split into a target-and-host
+  foo.lisp file and a target-only target-foo.lisp file, with their key type
+  definitions in the target-and-host part, so that the cross-compiler will
+  know more about target types.
+* DEFSTRUCT BACKEND, and the BACKEND-valued *BACKEND* variable, have 
+  gone away. In their place are various *BACKEND-FOO* variables
+  corresponding to the slots of the old structure.
+* A bug which caused the SB-COLD bootstrap-time package to be propagated
+  into the target SBCL has been fixed.
+* The chill.lisp system for loading cold code into a running SBCL
+  now works better.
+* Support for the CMU CL "scavenger hook" extension has been removed.
+  (It was undocumented and unused in the CMU CL sources that SBCL was
+  derived from, and stale in sbcl-0.6.1.)
+* Various errors in the cross-compiler type system were detected
+  by running the cross-compiler with *TYPE-SYSTEM-INITIALIZED*
+  (enabling various consistency checks). Many of them were fixed,
+  but some hard problems remain, so the compiler is back to 
+  running without *TYPE-SYSTEM-INITIALIZED* for now.
+* As part of the cross-compiler type system cleanup, I implemented
+  DEF!TYPE and got rid of early-ugly-duplicates.lisp.
+* I have started adding UNCROSS calls throughout the type system
+  and the INFO database. (Thus perhaps eventually the blanket UNCROSS
+  on cross-compiler input files will be able to go away, and various
+  kludges with it).
+* CONSTANTP now returns true for quoted forms (as explicitly required
+  by the ANSI spec).
 
-changes in sbcl-0.8.12 relative to sbcl-0.8.11:
-  * minor incompatible change: the system no longer provides
-    optimization hints (conditions which are TYPEP
-    SB-EXT:COMPILER-NOTE) for conforming code in default compilation
-    mode; these hints are still emitted when higher SPEED optimization
-    is requested.
-  * new contrib module: a sampling profiler (profiling by statistical
-    sampling, rather than by instrumenting functions) is available as
-    the SB-SPROF contrib.  (thanks to Gerd Moellmann and Juho Snellman)
-  * the behaviour of the standard function ED is now customizeable by
-    third parties through a hook variable: see ED's documentation
-    string for information on the protocol.
-  * the compiler no longer emits efficiency notes for (FUNCALL X)
-    when the type of X is uncertain under default optimization
-    settings.
-  * fixed bug 276: mutating a binding of a specialized parameter to a
-    method to something that is not TYPEP the specializer is now
-    possible.
-  * fixed bugs 45d and 118: DOUBLE-FLOAT[-NEGATIVE]-EPSILON now
-    exhibit the required behaviour on the x86 platform.  (thanks to
-    Peter van Eynde, Eric Marsden and Bruno Haible)
-  * fixed bug 335: ATANH now computes the inverse hyperbolic tangent
-    even for difficult arguments.  (reported by Peter Graves)
-  * fixed bug 141a: the backquote printer now descends quoted
-    structure.
-  * fixed another bug in backquote printing: no more destructive
-    modification of the form's list structure.  (reported by Brian
-    Downing)
-  * fixed bug in INTERRUPT-THREAD: pin the function, so that it cannot
-    move between its address being taken and the call to
-    interrupt_thread, fixing a crashing race condition.
-  * the SB-POSIX contrib implementation has been adjusted so that it
-    no longer exhibits ridiculously poor performance when constructing
-    instances corresponding to C structs.
+changes in sbcl-0.6.1 relative to sbcl-0.6.0:
 
-changes in sbcl-0.8.13 relative to sbcl-0.8.12:
-  * new feature: SB-PACKAGE-LOCKS. See the "Package Locks" section of
-    the manual for details; add :SB-PACKAGE-LOCKS in
-    customize-target-features.lisp to enable them.
-  * minor incompatible change: as threatened around sbcl-0.8.0, the
-    home package of MOP-related symbols is now SB-MOP, not SB-PCL.
-    The symbols are also exported from SB-PCL for backwards
-    compatibility, but more so than before SB-PCL should be treated as
-    an implementation-internal package.
-  * the SB-SPROF contrib now works on (most) non-x86 architectures.
-    It is known as of this release not to work on the Alpha, however.
-  * fixed bug #338: instances of EQL-SPECIFIER are now valid type
-    designators and can hence be used with TYPEP.
-  * fixed bug #333: CHECK-TYPE now ensures that the type error
-    signalled, if any, has the right object to be accessed by
-    TYPE-ERROR-DATUM.  (reported by Tony Martinez)
-  * fixed bug #340: SETF of VALUES obeys the specification in ANSI
-    5.1.2.3 for multiple-value place subforms.  (reported by Kalle
-    Olavi Niemetalo)
-  * fixed bug #334: programmatic addition of slots using specialized
-    methods on SB-MOP:COMPUTE-SLOTS works for :ALLOCATION :INSTANCE
-    and :ALLOCATION :CLASS slots.
-  * fixed a bug: #\Space (and other whitespace characters) are no
-    longer considered to be macro characters in standard syntax by
-    GET-MACRO-CHARACTER.
+* changed build optimization from (SAFETY 1) to (SAFETY 3) as a short-term
+  fix for various type-unsafety bugs, e.g. failures with (LENGTH 123) and
+  (MAKE-LIST -1). In the longer term, it ought to become true
+  that declarations are assertions even at SAFETY 1. For now, it's not
+  quite true even at SAFETY 3, but it's at least more nearly true..
+  (Note that this change seems to increases the size of the system by
+  O(5%) and to decrease the speed of the compiler by 20% or more.)
+* changed ALIEN printing to be much more abbreviated, as a short-term fix
+  for the problem of printing dozens of lines of distracting information
+  about low-level system machinery as part of the top stack frame
+  on entry to the debugger when an undefined function was called.
+* tweaked the debugger's use of WITH-STANDARD-IO-SYNTAX so that *PACKAGE*
+  is not reset to COMMON-LISP-USER. 
+* Compilation of stuff related to dyncount.lisp has been made conditional
+  on the :SB-DYNCOUNT target feature, so that the ordinary core system is
+  smaller. The various dyncount-related symbols have been moved into
+  a new "SB-DYNCOUNT" package.
+* tty-inspect.lisp has been renamed to inspect.lisp.
+* unix-glibc2.lisp has been renamed to unix.lisp, and the :GLIBC2
+  feature has gone away. (When we eventually port to other flavors of 
+  libc and/or Unix, we'll try to make the differences between flavors
+  invisible at the user level.)
+* Various other *FEATURES* tags, and/or their associated conditionals,
+  have been removed if obsolescent, or given better documentation, or
+  sometimes given more-mnemonic names.
+
+changes in sbcl-0.6.0 relative to sbcl-0.5.0:
 
-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
-    it's not clear yet how e.g. UNPROFILE will interact with TRACE
-    and UNTRACE. (This shouldn't matter, though, unless you are using
-    profiling. If you never profile anything, TRACE should continue to
-    behave as before.)
-  * (not done yet, but planned:) Inlining can now be controlled the
-    ANSI way, without MAYBE-INLINE, since the idiom
-       (DECLAIM (INLINE FOO))
-       (DEFUN FOO (..) ..)
-       (DECLAIM (NOTINLINE FOO))
-       (DEFUN BAR (..) (FOO ..))
-       (DEFUN BLETCH (..) (DECLARE (INLINE FOO)) (FOO ..))
-    now does what ANSI says it should. The CMU-CL-style 
-    SB-EXT:MAYBE-INLINE declaration is now deprecated and ignored.
+* tidied up "make.sh" script
+* tidied up system directory structure
+* better "clean.sh" behavior
+* added doc/FOR-CMUCL-DEVELOPERS
+* many many small tweaks to output format, e.g. removing possibly-confusing
+  trailing #\. character in DESCRIBE-INSTANCE
+* (EQUALP #\A 'A) no longer signals an error.
+* new hashing code, including EQUALP hashing
+* tidied up Lisp initialization and toplevel
+* initialization files (e.g. /etc/sbclrc and $HOME/.sbclrc)
+* command line argument processing
+* added POSIX-GETENV function to deal with Unix-ish environment variables
+* more-Unixy handling of *STANDARD-INPUT* and other Lisp streams, e.g.
+  terminating SBCL on EOF
+* non-verbose GC by default
+* There is no more "sbcl" shell script; the sbcl file is now the C
+  runtime executable (just like CMU CL).
+* removed some unused fops, e.g. FOP-UNIFORM-VECTOR, FOP-CHARACTER, and 
+  FOP-POP-FOR-EFFECT
+* tweaked debug-info.lisp and debug-int.lisp to make the debugger store
+  symbol and package information as Lisp native symbol and package objects
+  instead of strings naming symbols and strings naming packages. This way,
+  whenever packages are renamed (as in warm init), debug information is
+  transformed along with everything else.
+* tweaked the optimization policy declarations which control the building
+  of SBCL itself. Now, among other things, the system no longer saves
+  source location debugging information. (This helps two problems at once
+  by reducing SBCL size and by keeping SBCL from trying to look for its
+  sources -- which may not exist -- when reporting errors.)
+* added src/cold/chill.lisp, to let SBCL read its own cold sources for
+  debugging and testing purposes
+* cleaned up printing, making the printer call PRINT-OBJECT for
+  instances, and using PRINT-UNREADABLE-OBJECT for most PRINT-OBJECT
+  methods, giving nearly-ANSI behavior
+* converted almost all special variables to use *FOO* naming convention
+* deleted PARSE-TIME functionality, since it can be done portably
+* moved some files out of cold init into warm init
+* deleted DEFUN UNDEFINED-VALUE, replaced (UNDEFINED-VALUE) forms
+  with (VALUES) forms
+* regularized formatting of source files
+* added an install.sh script
+* fixed ridiculous memory usage of cross-compiler by making
+  compiler/alloc.lisp not try to do pooling unless it can hook
+  itself into the GC of the cross-compilation host. Now the system
+  builds nicely on my old laptop.
+* added :SB-ALLOC in target-features.lisp-expr
+* deleted mention of :ANSI-DOC from target-features.lisp-expr (since it
+  was not implemented)
+* re-did condition handling and note reporting in the compiler. Notes
+  are no longer handled by signalling conditions. Style warnings
+  and warnings are handled more correctly and reported in such a way
+  that it's easy to find one or the other in your output (so that you
+  can e.g. figure out which of many problems caused COMPILE-FILE to 
+  return FAILURE-P).
+* changed the severity of several compiler warnings from full WARNING
+  to STYLE-WARNING in order to conform with the ANSI spec; also changed
+  compiler note reporting so that it doesn't use the condition system
+  at all (and hence affects neither FAILURE-P nor WARNINGS-P in the 
+  COMPILE-FILE command)
+* made PROCLAIM and DECLAIM conform to ANSI. PROCLAIM is now an ordinary
+  function. As a consequence, START-BLOCK and END-BLOCK declarations are
+  no longer supported, since their implementation was deeply intertwingled
+  with the magical, non-ANSI treatment that PROCLAIM received in CMU CL.
+* removed bogus "support" for compiler macros named (SETF FOO), and
+  removed the compiler macro for SETF INFO (but only after making a fool
+  of myself on the cmucl-imp mailing list by posting a bogus patch for
+  DEFINE-COMPILER-MACRO..)
+* Compiled files containing forms which have side effects on the Lisp
+  reader (such as DEFPACKAGE forms) are now handled more correctly.
+  (Compiler queuing of top level lambdas has been suppressed by setting
+  *TOP-LEVEL-LAMBDA-MAX* to 0. )
+* deleted various currently-unused source files, e.g. gengc.lisp. They
+  may be added back at some point e.g. when porting to other architectures,
+  but until they are it's distracting to distribute them and to try to
+  maintain them.
+* deleted "UNCROSS couldn't recurse through.." style warnings, since 
+  there were so many of them they're just distractions, and UNCROSS is
+  known to be able to handle the current sources
+* moved PROFILE functionality into TRACE, so that it will be clear
+  how the wrapping and unwrapping of functions when you profile them
+  interacts with the wrapping and unwrapping of functions when you
+  trace them. (Actually, the functionality isn't there yet, but at least
+  the interface specification is there. Hopefully, the functionality will
+  arrive with some future maintenance release.)
+* removed host-oops.lisp
+* changed signature of QUIT function to allow UNIX-CODE argument
+* fixed READ-SEQUENCE bug
+* tweaked verbose GC output so that it looks more like the progress
+  output that ANSI specifies for functions like LOAD
+* set up the system on sourceforge.com, with home pages, mailing lists, etc.
+* added <http://sbcl.sourceforge.com> to the banner information printed by
+  the sbcl executable
diff --git a/TODO b/TODO
index 50e05ef..0dde9c9 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,3 +1,20 @@
+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
+    it's not clear yet how e.g. UNPROFILE will interact with TRACE
+    and UNTRACE. (This shouldn't matter, though, unless you are using
+    profiling. If you never profile anything, TRACE should continue to
+    behave as before.)
+  * (not done yet, but planned:) Inlining can now be controlled the
+    ANSI way, without MAYBE-INLINE, since the idiom
+       (DECLAIM (INLINE FOO))
+       (DEFUN FOO (..) ..)
+       (DECLAIM (NOTINLINE FOO))
+       (DEFUN BAR (..) (FOO ..))
+       (DEFUN BLETCH (..) (DECLARE (INLINE FOO)) (FOO ..))
+    now does what ANSI says it should. The CMU-CL-style 
+    SB-EXT:MAYBE-INLINE declaration is now deprecated and ignored.
+
 for early 0.8.x:
 
 * test file reworking
index acc72be..5057a74 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.12.22"
+"0.8.12.23"