1.0.3.23: fix sb-posix timeval struct
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index fa06808..c29650c 100644 (file)
--- a/NEWS
+++ b/NEWS
 ;;;; -*- coding: utf-8; -*-
+changes in sbcl-1.0.4 relative to sbcl-1.0.3:
+  * new platform: experimental support for x86-64/darwin (MacOS).
+  * incompatible change: the thread-safe (on most platforms) getaddrinfo
+    and getnameinfo sockets functions are used instead of gethostbyaddr
+    and gethostbyname, on platforms where the newer functions are available.
+    As a result, the ALIASES field of HOST-ENT will always be NIL on these
+    platforms.
+  * optimization: code using alien values with undeclared types is much faster.
+  * optimization: the compiler is now able to open code SEARCH in more cases.
+  * bug fix: >= and <= gave wrong results when used with NaNs.
+  * bug fix: the #= and ## reader macros now interact reasonably with
+    funcallable instances.
+  * bug fix: type-checks for function arguments were compiled using the
+    compiler policy settings of the wrong lexical environment (in 1.0.2
+    and 1.0.3).
+  * bug fix: SHADOW accepts characters as string designators, as required
+    by the spec (thanks to Eric Marsden)
+  * bug fix: fixed GC safety issues when foreign functions are called with
+    non-base strings as arguments
+
+changes in sbcl-1.0.3 relative to sbcl-1.0.2:
+  * new platform: NetBSD/PPC.  (thanks to Aymeric Vincent)
+  * optimization: calls of the form (AREF FOO (+ INDEX <constant>)) now
+    produce more efficient code on the x86 if the compiler can determine
+    that (+ INDEX <constant>) does not require a bounds check and FOO
+    has an element type at least 8 bits wide.
+  * bug fix: references to undefined variables are handled the same way
+    in toplevel forms as in the normal compiler
+  * bug fix: the build scripts again work with non-bash /bin/sh (thanks
+    to Magnus Henoch)
+  * bug fix: use "gtar" as the asdf-install *TAR-PROGRAM* on NetBSD
+    (thanks to Jon Buller)
+  * improvement: faster compilation times for complex functions
+  * improvement: added readlink support to SB-POSIX (thanks to Richard
+    M Kreuter)
+
+changes in sbcl-1.0.2 relative to sbcl-1.0.1:
+  * improvement: experimental support for mach exception handling on
+    x86/macos. requires building with :MACH-EXCEPTION-HANDLER feature
+    to use.
+  * improvement: support for GBK external format.
+    (thanks to Chun Tian (binghe))
+  * improvement: the debugger now displays variables that have been closed
+    over, in code compiled with (DEBUG 2) or higher
+  * improvement: support for executable cores on NetBSD (thanks to 
+    Richard Kreuter)
+  * new feature: added a RESTART-FRAME debugger command
+  * new feature: new generic function SB-GRAY:STREAM-FILE-POSITION can 
+    be used to provide an implementation for FILE-POSITION on Gray streams
+    (thanks to Eric Marsden)
+  * new feature: add syslog, openlog and closelog support to SB-POSIX 
+    (thanks to Richard Kreuter)
+  * optimization: the function call overhead in code compiled with 
+    a high DEBUG optimization setting is significantly 
+  * bug fix: an error is signaled for attempts to use READ-SEQUENCE
+    for a (SIGNED-BYTE 8) stream and (UNSIGNED-BYTE 8) vector, or vice versa.
+    (thanks to Tony Martinez)
+  * bug fix: the initforms for DEFMETHOD &AUX parameters are only
+    evaluated once (reported by Kevin Reid)
+  * bug fix: the :SHOW-PROGRESS keyword parameter to SB-SPROF:WITH-PROFILING
+    works again (thanks to Kilian Sprotte)
+  * bug fix: an error is signaled for tagbodies with duplicate tags 
+    (thanks to Stephen Wilson)
+  * bug fix: NIL can be used as a tagbody tag (thanks to Stephen Wilson)
+  * bug fix: Win32 port can now handle foreign code unwinding Lisp
+    stack frames from alien callbacks.
+  * bug fix: ATANH returned incorrect results on win32 (thanks to Pierre Mai)  
+  * bug fix: SBCL works on Linux/ppc systems with a kernel configured to use
+    65k pages (thanks to David Woodhouse)
+  * bug fix: fix SB-POSIX dirent and socket on NetBSD (thanks to Richard Kreuter)
+
+changes in sbcl-1.0.1 relative to sbcl-1.0:
+  * new platform: FreeBSD/x86-64, including support for threading.
+  * new feature: the compiler stores cross-referencing information
+    abount function calls (who-calls), macroexpansion (who-macroexpands)
+    and special variables (who-binds, who-sets, who-references) for code
+    compiled with (< SPACE 3). This information is available through the
+    sb-introspect contrib.
+  * new feature: users may subclass SEQUENCE, and have instances of
+    these classes interoperate with standard Common Lisp functions if
+    a number of methods are defined.  (This feature is experimental
+    and the interface subject to change based on feedback from SBCL
+    users and the general community)
+  * improvement: sb-sprof traces call stacks to an arbitrary depth on
+    x86/x86-64, rather than the previous fixed depth of 8
+  * improvement: another pthread back-end of mutex "pthread-futex".
+  * bug fix: non-ascii command-line arguments are processed correctly 
+    (thanks to Yaroslav Kavenchuk)
+  * bug fix: non-required arguments were not passed correctly when a method
+    defined using DEFMETHOD was called from a mop-generated method using
+    CALL-NEXT-METHOD (reported by Pascal Costanza)
+  * bug fix: recursion is now permitted in accessors through
+    SLOT-UNBOUND.  (reported by Pascal Costanza)
+  * bug fix: an error was signaled at startup if the HOME environment 
+    variable was defined, but had an empty value (reported by Peter Van Eynde)
+  * bug fix: non ordinary lambda-list keyword in ordinary lambda lists
+    signal a PROGRAM-ERROR, not a BUG.
+  * bug fix: SB-POSIX:READDIR works when built with large file support.
+  * bug fix: ENOUGH-NAMESTRING works relative to #p"/" as well. (thanks
+    to Marco Monteiro)
+  * enhancement: DESTRUCTURING-BIND lambda-list uses &BODY instead of &REST
+    for better automatic indentation support. (thanks to Matt Pillsbury)
+  * optimization: loading generic functions no longer takes O(n^2) time,
+    proportional to the amount of methods in the generic function
+    (reported by Todd Sabin and Jeremy Brown)        
+  * optimization: the FIND and POSITION family of sequence functions
+    are significantly faster on arrays whose element types have been
+    declared.
+  * improvements to the Windows port:
+    ** Intermittent heap corruption problems have been fixed. (thanks
+       to Alastair Bridgewater)
+    ** TRACE :ENCAPSULATE NIL (and function end breakpoints)
+       work on Windows.
+    ** Lisp is able to unwind foreign exception frames from alien
+       callbacks. (thanks to Alastair Bridgewater)
+
+changes in sbcl-1.0 relative to sbcl-0.9.18:
+  * improvement: experimental support for threading on FreeBSD/x86.
+    (thanks to NIIMI Satoshi)
+  * improvement: runtime option --dynamic-space-size can be used
+    to set the size of the dynamic space reserved on startup.
+  * improvement: floating point modes in effect are now saved in
+    core, and restored on startup.
+  * improvement: GET-INTERNAL-REAL-TIME now reports the time since
+    startup, not time since first call to GET-INTERNAL-REAL-TIME.
+  * improvement: SAVE-LISP-AND-DIE explicitly checks that multiple
+    threads are not running after *SAVE-HOOKS* have run.
+  * improvement: writes to CLOS instance slots are type-checked in code
+    compiled with (SAFETY 3)
+  * improvement: floating-point exception handling on FreeBSD (thanks to
+    NIIMI Satoshi)
+  * improvement: SB-POSIX supports time(2), utime(2) and utimes(2)
+    (thanks to Zach Beane)
+  * improvement: support for files larger than 2GB for CL streams and SB-POSIX
+    on Linux/x86
+  * improvement: added support for the Shift-JIS external format.
+    (contributed by NIIMI Satoshi)
+  * improvement: callbacks are supported on Linux/PPC.  (thanks to
+    Joshua Ross)
+  * bug fix: compiler bug triggered by a (non-standard) VALUES
+    declaration in a LET* was fixed. (reported by Kaersten Poeck)
+  * bug fix: file compiler no longer confuses validated and already
+    dumped structurres. (reported by Kaersten Poeck)
+  * bug fix: ADJUST-ARRAY :FILL-POINTER T on an array without a
+    fill-pointer signals a type-error as required. (thanks to
+    Lars Brinkhoff)
+  * bug fix: disassemly of funcallable instances works.
+  * bug fix: single stepping on PPC.
+  * bug fix: fix thread-safety problems in the type system (generally 
+    manifesting as nonsensical errors like "STRING is a bad type specifier 
+    for sequences" or "The value 1 is not of type FIXNUM")
+  * bug fix: version components are handled correctly in TRANSLATE-PATHNAME
+    (reported by Josip Gracin)
+  * bug fix: an error is signaled for attempts to displace arrays with
+    incompatible element types (thanks to Mario Mommer)
+  * bug fix: more correct handling of wide characters in debug info
+    (bug reported by Attila Lendvai and fixed by Juho Snellman)
+  * optimization: method calls with &OPTIONAL or &KEY arguments are faster
+    and don't cause extra consing
+  * optimization: MAP and MAP-INTO are significantly faster on vectors
+    whose elements types have been declared.
+  * Improvements to SB-SPROF:
+    ** Support for allocation profiling
+    ** Reduced profiling overhead, especially for long profiling runs
+  * Improvements to the Windows port:
+    ** floating point exceptions are now reported correctly.
+    ** stack exhaustion detection works partially.
+    ** more accurate GET-INTERNAL-REAL-TIME.
+    ** better RUN-PROGRAM behaviour in case of errors in the child
+       process.
+    ** PROBE-FILE now simplifies pathnames correctly.
+    ** DIRECTORY now works correctly with :WILD-INFERIORS.
+    ** DECODE-UNIVERSAL-TIME works on times before 00:00:00 January
+       1st 1970 (although time timezone data will be unreliable).
+    ** Hyperbolic functions TANH, ASINH, ACOSH, and ATANH work.
+
+changes in sbcl-0.9.18 (1.0.beta?) relative to sbcl-0.9.17:
+  * enhancement: SB-POSIX now supports cfsetispeed(3), cfsetospeed(3),
+    cfgetispeed(3), cfgetospeed(3), and related constants. (thanks to
+    Max-Gerd Retzlaff)
+  * bug fix: two potential GC deadlocks affecting threaded builds.
+  * bug fix: (TYPEP #\A '(NOT (MEMBER #\" #\{ #\:))) now correctly
+    returns T (reported by Anton Kazennikov)
+  * bug fix: the STORE-VALUE restart of CHECK-TYPE works correctly
+    with non-variable places
+  * bug fix: remove a race condition in the setting of
+    funcallable-instance functions, this should make threaded CLOS
+    code more stable against memory faults.
+  * bug fix: corruption of specials when unbinding is interrupted by an
+    asynchronous unwind (reported by Hannu Koivisto)
+  * improvement: the debugger will now also display local variables that
+    are only used once, for code compiled with a DEBUG optimization quality
+    of 2 or higher.
+
+changes in sbcl-0.9.17 (0.9.99?) relative to sbcl-0.9.16:
+  * feature: weak hash tables, see MAKE-HASH-TABLE documentation
+  * incompatible change: External-format support for FFI calls.  The
+    SB-ALIEN:C-STRING no longer implies an ASCII
+    external-format. Instead the string is subject to external-format
+    conversion. Additionally return values of type SB-ALIEN:C-STRING
+    are by default of type (SIMPLE-ARRAY CHARACTER), not
+    SIMPLE-BASE-STRING. For an alien type that behaves like the old
+    SB-ALIEN:C-STRING type, use (SB-ALIEN:C-STRING :EXTERNAL-FORMAT
+    :ASCII :ELEMENT-TYPE BASE-CHAR).  (thanks to Yaroslav Kavenchuk)
+  * incompatible change: SB-EXT package no longer contains the
+    following unused symbols: *GC-NOTIFY-AFTER*, *GC-NOTIFY-BEFORE*,
+    *GC-NOTIFY-STREAM*, *ERROR-PRINT-LENGTH*, *ERROR-PRINT-LEVEL*,
+    *ERROR-PRINT-LINES*
+  * incompatible change: the single-stepper is no longer available 
+    on Alpha, Mips and Sparc platforms.
+  * minor incompatible change: the direct superclasses of
+    SB-MOP:FUNCALLABLE-STANDARD-OBJECT are (FUNCTION STANDARD-OBJECT),
+    not (STANDARD-OBJECT FUNCTION).  This makes the
+    class-precedence-lists of GENERIC-FUNCTION and
+    STANDARD-GENERIC-FUNCTION comply with the requirement of ANSI
+    1.4.4.5.
+  * minor incompatible change: the default stream external format on
+    non-unicode SBCL is no longer detected from the locale, but is always
+    ISO-8859-1
+  * new feature: Add a version of evaluator that uses an interpreter instead
+    of the compiler. EVAL still uses the compiler by default, to switch it
+    to use the interpreter, set the value of the variable 
+    SB-EXT:*EVALUATOR-MODE* to :INTERPRET.
+  * minor incompatible change: the single-stepper REPL has been merged
+    with the normal debugger (see the "Stepping" heading of the debugger help
+    for more details). The debugger command STEP will no longer switch
+    to the single-stepper REPL. 
+  * bug fix: ENOUGH-NAMESTRING on pathnames with no name and a pattern
+    for a type now works.
+  * bug fix: loading of default sysinit file works. (thanks to Leonid
+    Slobodov)
+  * bug fix: better detection of circularities in the file-compiler.
+    (reported by Marco Monteiro)
+  * bug fix: the CL pathname functions now work with files that have
+    non-ASCII characters in their names (thanks to Yaroslav Kavenchuk)
+  * bug fix: The :PTY argument for RUN-PROGRAM will now work on 
+    systems with Unix98 pty semantics.
+  * bug fix: ASDF-INSTALL will now work with bsd tar.
+  * bug fix: ASDF-INSTALL uses GNU tar on Solaris (thanks to Josip
+    Gracin).
+  * bug fix: timers expiring in dead threads no longer cause a
+    type-error (reported by Paul "Nonny Mouse"). 
+  * bug fix: thanks to more lightweight single-stepper instrumentation, 
+    code compiled with (DEBUG 3) will compile and execute significantly faster,
+    and will have more accurate type-inferencing than before
+  * bug fix: SLOT-VALUE optimizations are no longer done on method parameters
+    whose bindings are modified
+  * improvements to the win32 port (thanks to Yaroslav Kavenchuk):
+    ** bug fix: arguments to RUN-PROGRAM are escaped correctly
+    ** replace dummy implementations of CL:MACHINE-INSTANCE and 
+       CL:SOFTWARE-VERSION with proper version
+
+changes in sbcl-0.9.16 relative to sbcl-0.9.15:
+  * feature: implemented the READER-METHOD-CLASS and
+    WRITER-METHOD-CLASS portion of the Class Initialization Protocol
+    as specified by AMOP.
+  * incompatible change: variable SB-EXT:*USE-IMPLEMENTATION-TYPES*
+    no longer exists.
+  * optimization: faster LOGCOUNT implementation on x86 and x86-64
+    (thanks to Lutz Euler)
+  * optimization: hashing of general arrays and vectors has been
+    improved. (reported by Any Fingerhut)
+  * enhancement: SB-INTROSPECT is now able to find definitions of
+    profiled functions. (thanks to Troels Henriksen)
+  * enhancement: compiler-macro expansion applies now to FUNCALL forms
+    as well, allowing compiler-macros for SETF-functions to expand.
+  * enhancement: step-instrumentation no longer wraps known
+    single-value functions with multiple-value context, allowing
+    better type inference.
+  * fixed bug #337: use of MAKE-METHOD in method combination now works
+    even in the presence of user-defined method classes.  (reported by
+    Bruno Haible and Pascal Costanza)
+  * fixed bug #339(c): if there are applicable methods not part of any
+    long-form method-combination group, call INVALID-METHOD-ERROR.
+    (reported by Bruno Haible)
+  * fixed bug #361: the :FUNCTION initarg in the protocol for
+    initialization of methods can now be used to override
+    internally-produced optimized functions.  (reported by Bruno
+    Haible)
+  * bug fix: extensions of MAKE-METHOD-LAMBDA which wrap the
+    system-provided lambda expression no longer cause warnings about
+    unbound #:|pv-table| symbols.
+  * bug fix: improved the handling of type declarations and the
+    detection of violations for keyword arguments with non-constant
+    defaults.
+  * bug fix: potentially erronous calls to PATHNAME and
+    MERGE-PATHNAMES were being flushed in some cases.
+    (reported by Richard Kreuter)
+  * bug fix: compiled calls to TYPEP were mishandling obsolete
+    instances.  (reported by James Bielman and Attila Lendvai)
+  * bug fix: format strings with ~> without matching ~< no longer
+    trigger an AVER, but signal an understandable error instead.
+    (reported by Antonio Martinez)
+  * bug fix: specifying an output-file without a pathname-type for
+    COMPILE-FILE or COMPILE-FILE-PATHNAME resulted in using the type
+    of input-file instead of "fasl". (reported by Robert Dodier)
+  * bug fix: compiler-macro lambda-list parsing of FUNCALL forms.
+    (reported by James Y Knight).
+  * bug fix: compiler-macros-function did not consider the environment
+    argument for shadowing by local functions.
+  * bug fix: compiler-macros expansion was inhibited by local INLINE 
+    declarations.
+  * bug fix: inline expansions of known functions were subject to
+    step-instrumentation in high debug policies, leading to problems
+    with type-inference.
+  * bug fix: compiler failed to differentiate between different CONS
+    types in some cases.
+  * bug fix: fixed input, output and error redirection in RUN-PROGRAM
+    for win32. (thanks to Mike Thomas and Yaroslav Kavenchuk)
+  * bug fix: #368: incorrect use of expressed vs. upgraded array
+    element type.
+  * bug fix: #306a: more precise unions of array types.
+  * thread-safety improvements:
+    ** CONDITION-WAIT could return early on Linux, if the thread was
+       interrupted and subsequently continued with SIGCONT.
+    ** STABLE-SORT and ADJUST-ARRAY were not reentrant.
+
+changes in sbcl-0.9.15 relative to sbcl-0.9.14:
+  * added support for the ucs-2 external format.  (contributed by Ivan
+    Boldyrev)
+  * minor incompatible change: pretty printing of objects of type
+    (cons symbol) is, in the default pprint-dispatch-table, now
+    sensitive to whether the symbol satisfies FBOUNDP.  (thanks to
+    Marcus Pearce)
+  * minor incompatible change: SB-MOP:FINALIZE-INHERITANCE is now
+    called later in a class's lifetime, possibly as late as when the
+    first instance of the class is created.  Previously,
+    SB-MOP:FINALIZE-INHERITANCE was called by the system as soon as a
+    class became finalizeable.
+  * fixed bug: FILE-POSITION sometimes returned inconsistent results
+    for multibyte external-format streams.  (thanks to "vbzoli")
+  * fixed bug: CHANGE-CLASS would fail to preserve the values of slots
+    with :ALLOCATION :CLASS inherited from superclasses of the
+    original class.
+  * fixed bug: anonymous classes can now be created using the :NAME
+    initarg and MAKE-INSTANCE / REINITIALIZE-INSTANCE, as specified by
+    AMOP.  (reported by Leonid Slobodov on comp.lang.lisp)
+  * fixed bug: core-files saved with :EXECUTABLE T can again be 
+    executed when SBCL_HOME isn't set. (reported by James Knight)
+  * fixed bug: toplevel LOCALLY forms with declarations could 
+    occasionally get miscompiled. (reported by Yaroslav Kavenchuk)
+  * fixed bug: printing from several different threads using different
+    values of *print-case* could cause invalid output, due to 
+    some internal special variables of the printer not being bound
+    thread-locally (reported by Max Mikhanosha)
+  * fixed bug: SPECIALIZER metaobjects (including anonymous classes
+    and EQL-SPECIALIZERs) can be used as specializers to DEFMETHOD.
+    (reported by Pascal Costanza)
+  * fixed bug: FINALIZE-INHERITANCE is called from
+    REINITIALIZE-INSTANCE on classes when the class has previously
+    been finalized, as required by AMOP.
+  * minor code generation optimizations:
+    ** better register allocation in CLOS dispatching functions
+    ** overflow detection when coercing signed bytes to fixnums on x86-64 
+    ** is now implemented with one IMUL instruction instead of three shifts
+    ** more efficient bit-vector access on x86 and x86-64
+    ** more efficient access to raw structure slots on x86 and x86-64
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** ENSURE-DIRECTORIES-EXIST.8: ENSURE-DIRECTORIES-EXIST must
+       return its argument.
+
+changes in sbcl-0.9.14 relative to sbcl-0.9.13:
+  * feature: thread support on Solaris/x86, and experimental thread support
+    on OS X/x86.
+  * feature: SBCL now tries to signal a STORAGE-CONDITION when running out
+    of heap.
+  * feature: SBCL now provides USE-VALUE and STORE-VALUE restarts in the
+    default method for SLOT-UNBOUND.
+  * minor incompatible change: prevent the user from specializing the
+    new-value argument to SB-MOP:SLOT-VALUE-USING-CLASS.  It's
+    somewhat counter to the intent of the protocol, I (CSR) think, and
+    additionally it just doesn't work in SBCL as currently
+    implemented, thanks to optimizations (that are always valid for
+    the other three SLOT-VALUEish functions, but not for the setter).
+  * minor incompatible change: the :SB-LDB feature is now enabled by
+    default, and DISABLE-DEBUGGER and ENABLE-DEBUGGER also affect
+    the low-level debugger.
+  * enchancement: RUN-PROGRAM is now able to extract the file-descriptor
+    from SYNONYM-STREAM and TWO-WAY-STEAMS provided they can be decomposed
+    down to an SB-SYS:FD-STREAM, allowing direct communication in
+    more cases. Temporary files and pipes are still used as a fallback
+    strategy.
+  * thread-safety: DECODE-UNIVERSAL-TIME & GET-DECODED-TIME depended
+    on the non-reentrant C functions localtime(3) and gmtime(3).
+  * bug fix: global optimization policy was not visible in LOCALLY and 
+    MACROLET forms.
+  * bug fix: class objects can be used as specializers in methods.
+    (reported by Pascal Costanza)
+  * bug fix: native unparsing of pathnames with :DIRECTORY NIL failed
+    with a type error. (reported by blitz_ on #lisp)
+  * bug fix: unparsing logical pathnames with :NAME :WILD :TYPE NIL
+    failed with a type error.  (reported by Pascal Bourguignon)
+  * bug fix: merging pathnames against defaults with :DIRECTORY
+    starting with '(:RELATIVE :BACK) should preserve the :BACK.
+    (reported by James Y Knight)
+  * bug fix: saving large (>2GB) cores on x86-64 now works
+  * bug fix: a x86-64 backend bug when compiling (setf aref) with a 
+    constant index and a (simple-array (signed-byte 32)) array
+  * bug fix: NAME-CHAR on an invalid symbol no longer signals an
+    error (patch by Robert J. Macomber)
+  * feature: TIME now displays the amount of run-time spent in GC
+  * bug fix: The debugger now does a better job of respecting 
+    (PUSH '(*PRINT-CIRCLE* . T) SB-DEBUG:*DEBUG-PRINT-VARIABLE-ALIST*)
+    when printing SB-DEBUG:*DEBUG-CONDITION*. (This is a debugger-only
+    workaround for bug 403.) 
+  * bug fix: floating point exception handling now works on FreeBSD
+    (thanks to NIIMI Satoshi)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** MISC.641: LET-conversion were not supposed to work in late
+       compilation stages.
+  * improvements to the Win32/x86 port:
+    ** GET-INTERNAL-RUN-TIME implemented, thanks to Frank Buss.
+    ** improved SB-BSD-SOCKETS support, thanks to Timothy Ritchey.
+
+changes in sbcl-0.9.13 relative to sbcl-0.9.12:
+  * new feature: source path information is generated for macro-expansion
+    errors for use in IDE's like Slime (thanks to Helmut Eller)
+  * bug fix: calls to the compiler no longer modify *RANDOM-STATE*
+  * bug fix: compiler does not loop forever on an invalid type in
+    TYPEP.
+  * improvement: compilation of most CLOS applications is significantly
+    faster
+  * optimization: added a limited bytecode compiler for simple toplevel
+    forms, speeding up compilation and FASL loading
+  * bug fix: the statistical profiler now properly distinguishes anonymous
+    functions
+
+changes in sbcl-0.9.12 relative to sbcl-0.9.11:
+  * minor incompatible change: in sbcl-0.9.11 (but not earlier
+    versions) SB-MOP:FINALIZE-INHERITANCE would recursively descend
+    into subclasses of the finalized class.  Now user calls to
+    FINALIZE-INHERITANCE finalize just the one class, and calls by the
+    system return before any subclasses are finalized.
+  * minor incompatible change: The reader no longer ignores errors
+    regarding non-existent packages in #+ and #- feature tests.
+  * new feature: command line options --no-sysinit, --no-userinit to
+    inhibit loading the corresponding init files
+  * new feature: add a generic function SOCKET-SEND to SB-BSD-SOCKETS, 
+    for sending data through UDP sockets (thanks to François-René Rideau)
+  * minor incompatible change: SIGPIPE is ignored and "Broken pipe"
+    error is signalled instead (thanks to François-René Rideau)
+  * minor incompatible change: Error signalling behaviour of lexical
+    operations violating package locks has changed slightly. Refer to
+    documentation on package locks for details.
+  * enhancement: EVAL can process IF-expressions without resorting to the
+    compiler.
+  * bug fix: Some operations involving SIN, COS, or TAN weren't being
+    constant-folded properly due to missing out-of-line functions.
+    (reported by Mika Pihlajamäki)
+  * bug fix: LISTEN sometimes returned T even in cases where no data was
+    immediately available from the stream
+  * fixed bug: types of the last two arguments to SET-SYNTAX-FROM-CHAR
+    were reversed. (reported by Levente Mészáros)
+  * fixed bug: Tests for the (VECTOR T) type gave the wrong answer
+    when given a vector displaced to an adjustable array.  (reported
+    by Utz-Uwe Haus)
+  * bug fix: derivation of float boundaries from numbers outside the
+    appropriate float range (reported by John Wiseman)
+  * bug fix: MAKE-LOAD-FORM-SAVING-SLOTS accepts en empty slot name
+    list.
+  * bug fix: precomputing cache entries for generic functions with
+    some subclasses of specializers as yet invalid does not attempt to
+    fill a cache line with a negative offset.  (reported by Levente
+    Mészároz)
+  * improvements to DOCUMENTATION for TYPE and STRUCTURE doc-types:
+    allow condition class objects as arguments to DOCUMENTATION and
+    (SETF DOCUMENTATION); only find and set documentation for
+    structure names for the STRUCTURE doc-type.  (suggested by Gary
+    King)
+  * improvements to the Win32/x86 port:
+    ** (user-homedir-pathname) and default initialization file
+       locations now know about the user's "Documents and Settings"
+       directory (thanks to Yaroslav Kavenchuk)
+    ** run-program is implemented (thanks to Mike Thomas)
+    ** sockets support (thanks to Timothy Ritchey)
+    ** better backtrace support (thanks to Alastair Bridgewater)
+    ** sb-grovel supported
+    ** asdf-install and sb-posix work somewhat
+    ** capable of running Slime using SWANK:*COMMUNICATION-STYLE* NIL
+  * improvements to the Solaris/x86 port:
+    ** works on Solaris 11/Solaris Express
+    ** floating-point exception handling support
+    ** support for the breakpoint-based TRACE :ENCAPSULATE NIL facility
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** REMOVE-METHOD returns its generic function argument even when
+       the method is not one of the generic functions' methods.
+    ** objects declared as MEMBER types can be admissible arguments to 
+       structure accessors.
+    ** printing characters should simply be printed by the FORMAT ~:C
+       directive.
+    ** compiler failure when compiling functions with hairy constant
+       defaults for optional parameters.
+    ** compiler produces wrong code when MAYBE-INLINE-expanding a
+       function, which is already optimized.
+
+changes in sbcl-0.9.11 relative to sbcl-0.9.10:
+  * new platform: experimental support for SBCL x86/Darwin, including
+    MacOS X 10.4.5 on Intel.
+  * new feature: Unicode character names are now known to the system
+    (through CHAR-NAME and NAME-CHAR).
+  * new feature: the filesystem location of SBCL's core file is
+    exposed to lisp through the variable SB-EXT:*CORE-PATHNAME*.
+  * minor incompatible change: the contrib modules SB-POSIX and
+    SB-BSD-SOCKETS no longer depend on stub C libraries; the intent of
+    this change is to make it easier to distribute
+    location-independent binaries.
+  * bug fix: as implied by AMOP, standardized classes no longer have
+    slots named by external symbols of public packages.  (reported by
+    Pascal Costanza)
+  * optimization: calling functions via constant symbols -- as in 
+    (FUNCALL 'FOO) -- is now roughly as efficient as calling them
+    via the function object as in (FUNCALL #'FOO).
+  * optimization: on x86 and x86-64, the calling convention for the
+    case of dealing with an unknown number of values has been altered
+    to be friendlier to the prediction heuristics implemented,
+    particularly with reference to CALL and RET pairing.  (thanks to
+    Alastair Bridgewater)
+  * optimization: on x86, the code for access to thread-local symbol
+    values and binding/unbinding of thread-local symbols is smaller.
+    (thanks to Alastair Bridgewater)
+  * enhancement: CONSTANTP is now able to determine constantness of
+    more complex forms, including calls to constant-foldable standardized
+    functions and some special forms beyond QUOTE.
+  * fixed bug: occasional GC crashes on Solaris/x86
+  * optimization: x86-64 supports stack allocation of results of simple
+    calls of MAKE-ARRAY, bound to variables, declared DYNAMIC-EXTENT
+  * enchancement: the PROCESS-INPUT and -OUTPUT streams created by 
+    SB-EXT:RUN-PROGRAM can be used for both character and byte IO
+    (thanks to James Knight)
+  * fixed bug: CL:LISTEN always returns NIL at end of file, as required
+    by the standard (thanks to Stephen Compall)
+
 changes in sbcl-0.9.10 relative to sbcl-0.9.9:
   * new feature: new SAVE-LISP-AND-DIE keyword argument :EXECUTABLE can
     be used for bundling the runtime and the core file into one 
     executable binary. This feature is not currently supported on all SBCL
     platforms.  (thanks to James Bielman and NIIMI Satoshi)
+  * new feature: a generational or ephemeral garbage collector is now
+    the default on the PowerPC platform (both Linux and Darwin).  The
+    old Cheney (stop and copy) collector is a build-time option.
+    (thanks to Cyrus Harmon, after Raymond Toy)
   * minor incompatible change: the method by which SBCL finds its
     contributed modules has changed; it no longer relies on symbolic
     links from an $SBCL_HOME/systems directory, but searches directly
     in the subdirectories of $SBCL_HOME.
   * enhancement: the dynamic heap size on the Linux/PPC platform is
-    markedly larger.
+    markedly larger, even using the older Cheney garbage collector.
   * fixed bug #399: full call to DATA-VECTOR-REF in accesses to
     certain complicated string types.  (reported by Gary King)
   * fixed bug: STRING-TO-OCTETS and OCTETS-TO-STRING did not convert
@@ -88,7 +624,7 @@ changes in sbcl-0.9.8 relative to sbcl-0.9.7:
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** DOCUMENTATION returns NIL instead of "" for method combinations
        that don't have a docstring
-
+\a
 changes in sbcl-0.9.7 relative to sbcl-0.9.6:
   * minor incompatible change: (SETF CLASS-NAME) and (SETF
     GENERIC-FUNCTION-NAME) are no longer generic functions, and