1.0.7.1: dynamic extent value cells
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index e6095af..12ab872 100644 (file)
--- a/NEWS
+++ b/NEWS
 ;;;; -*- coding: utf-8; -*-
+changes in sbcl-1.0.8 relative to sbcl-1.0.7:
+  * enhancement: closed over variables can be stack-allocated on x86 and
+    x86-64.
+
+changes in sbcl-1.0.7 relative to sbcl-1.0.6:
+  * MOP improvement: support for user-defined subclasses of
+    SB-MOP:SPECIALIZER has been enhanced.  The experimental interface
+    function SB-PCL:MAKE-METHOD-SPECIALIZERS-FORM, called as part of
+    the expansion of DEFMETHOD, is responsible for generating a form
+    which creates a list of specializers when evaluated.  Additional
+    functions SB-PCL:[UN]PARSE-SPECIALIZER-USING-CLASS provide
+    debugging and introspective support.
+  * minor incompatible change: the (unsupported) spinlock interface
+    has changed: free spinlock now has the value NIL, and a held spinlock
+    has the owning thread as its value.
+  * enhancement: WITHOUT-INTERRUPTS now binds ALLOW-WITH-INTERRUPTS and
+    WITH-LOCAL-INTERRUPTS as local macros. Refer to documentation string
+    for details.
+  * enhancement: name of a socket-stream is now "a socket" instead of
+    "a constant string".
+  * enhancement: SB-POSIX now supports lockf(). (Thanks to Zach Beane.)  
+  * enhancement: SB-POSIX now supports getcwd(). (Thanks to Tassilo Horn.)
+  * enhancement: SB-INTROSPECT:FUNCTION-ARGLIST shows nicer argument lists
+    for generic functions. (Thanks to Tobias C. Rittweiler)
+  * optimization: bignum printing speed has been improved by 20-40%
+    (depending on the bignum size.)
+  * bug fix: WITH-MUTEX and WITH-RECURSIVE-LOCK are now interrupt safe
+    on Linux.
+  * bug fix: the cache used by the CLOS to store precomputed effective
+    methods, slot offsets, and constant return values is now thread and
+    interrupt safe.
+  * bug fix: generic function dispatch function updating is now thread
+    and interrupt safe (in the sense that the known issues have been
+    fixed.)
+  * bug fix: ADD/REMOVE-METHOD is now thread and interrupt safe.
+  * bug fix: interning EQL-specializers is now thread and interrupt safe.
+  * bug fix: asdf systems with dependencies to the SB-POSIX or 
+    SB-BSD-SOCKETS contribs can be loaded with :FORCE T.
+  * bug fix: interrupt safety of applicable method computation has been
+    improved.
+
+changes in sbcl-1.0.6 relative to sbcl-1.0.5:
+  * new contrib: sb-cover, an experimental code coverage tool, is included
+    as a contrib module.
+  * optimization: STRING-TO-OCTETS for unibyte encodings and UTF-8 is
+    significantly faster.
+  * optimization: calls of the form (AREF FOO (+ INDEX <constant>)) now
+    produce more efficient code on x86-64 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.
+  * enhancement: a new, experimental synchronous timeout facility is
+    provided. Refer to SB-SYS:WITH-DEADLINE for details.
+  * enhancement: when a symbol name conflict error arises, the
+    conflicting symbols are always printed with a package prefix.
+    (thanks to Kevin Reid)
+  * enhancement: stepping is now once again supported on the SPARC and
+    MIPS platforms.  (It is also now more likely to work on CheneyGC
+    builds on the PPC.)
+  * enhancement: sb-sprof can now also track and report accurate call
+    counts.
+  * bug fixes: the treatment of non-standard subclasses of
+    SB-MOP:SPECIALIZER is more correct.
+  * incompatible change: PURIFY no longer copies the data from the 
+    dynamic space into the static and read-only spaces on platforms
+    that use the generational garbage collector
+  * bug fix: GETHASH, (SETF GETHASH), CLRHASH and REMHASH are now
+    interrupt safe.
+  * bug fix: GC race condition occasionally resulting in crashes with
+    the error message "SIG_STOP_FOR_GC blocked at a bad place" has been
+    fixed.
+  * bug fix: &ENVIRONMENT variables in macro lambda lists can now be
+    declared ignored.
+  * bug fix: DEFSETF lambda lists without &ENVIRONMENT no longer cause
+    a STYLE-WARNING to be signalled (regression from 1.0.4.)
+  * bug fix: an asynchronous interrupt could previously leave the
+    system running with GC inhibited.
+  * bug fix: a DECLARE form evaluated at top-level now causes an error
+    rather than silently (or verbosely) returning NIL.
+  * bug fix: trying to dissassemble functions compiled at high DEBUG could
+    result in a error being signalled due to source form lookup errors.
+    (reported by Peter Graves)
+
+changes in sbcl-1.0.5 relative to sbcl-1.0.4:
+  * incompatible change: removed writer methods for host-ent-name,
+    host-ent-addresses -- changing the values did not update the DNS
+    information anyway.
+  * minor incompatible change: changed experimental JOIN-THREAD interface
+  * documentation: the manual now lists reader and writer methods
+    in class slot documentation sections. (thanks to Richard M Kreuter)
+  * documentation: unwinding from asyncronous events has been
+    documented as unsafe.
+  * documentation: SB-SYS:WITHOUT-GCING has been documented as unsafe
+    in multithreaded application code.
+  * optimization: GET-INTERNAL-REAL-TIME has been optimized on POSIX
+    platforms. (thanks to James Anderson for the optimization hint)
+  * optimization: REPLACE, SUBSEQ, and COPY-SEQ are now optimized in
+    more cases.
+  * optimization: STRING-{EQUAL,LESSP,GREATER-P} and their NOT-
+    variants no longer cons.
+  * optimization: Direct calls to CHAR-{EQUAL,LESSP,GREATERP} and
+    their NOT- variants no longer cons.
+  * optimization: EQUAL hash tables no longer use SXHASH for objects
+    of all data types, but instead use an EQL hash for types for which
+    EQUAL is the same as EQL.
+  * optimization: the non-inlined generic versions of AREF and (SETF AREF)
+    are significantly faster.
+  * optimization: new STRING-OUTPUT-STREAM implementation is much
+    faster for large outputs and conses 30% less on average.
+  * enhancement: XREF information is now collected for references made
+    to global variables using SYMBOL-VALUE and a constant argument.
+  * enhancement: SIGINT now causes a specific condition
+    SB-SYS:INTERACTIVE-INTERRUPT to be signalled.
+  * bug fix: FILE-POSITION used to signal an error in some cases where
+    ANSI requires it to return NIL.
+  * bug fix: ADJUST-ARRAY is now interrupt-safe.
+  * bug fix: adding and removing fd-handlers is now interrupt-safe.
+  * bug fix: inlined calls to C now ensure 16byte stack alignment on
+    x86/Darwin.
+  * bug fix: bad type declaration in the CLOS implementation has
+    been fixed. (reported by James Anderson)
+  * bug fix: incorrect ROOM reporting on x86-64 has been fixed.
+    (thanks to Lutz Euler)
+  * bug fix: DEFSETF now allows &ENVIRONMENT and disallows &AUX as
+    required by the CLHS. (reported by Samium Gromoff)
+  * bug fix: dead unbound variable references now signal an error.
+    (reported by Marco Monteiro)
+  * bug fix: / with an unused value was being deleted in safe code.
+    (thanks to Marco Monteiro and Kevin Reid)
+  * bug fix: number of characters that can be written onto a single
+    line in a file is unlimited.
+  * bug fix: some GC deadlocks caused by asynchronous interrupts have
+    been fixed by inhibiting interrupts for when GC is disbled.
+  * bug fix: some interrupt safety issues with GETHASH, (SETF
+    GETHASH), CLRHASH and REMHASH have been fixed.
+  * bug fix: binding *BREAK-ON-SIGNALS* to a value that is not a type
+    specifier no longer causes infinite recursion.
+  * bug fix: SB-EXT:MUFFLE-CONDITIONS declarations no longer trigger a 
+    bogus warning in DEFMETHOD bodies. (reported by Kevin Reid)
+  * bug fix: an &environment argument with the correct variable information
+    is passed to macros that are expanded during byte compilation.
+    (reported by Samium Gromoff)
+  * bug fix: a logic error was causing the hash function for bignums to
+    have excessive amounts of collisions. (reported by Faré Rideau)
+  * bug fix: modifying the contents of an array could change the return
+    value of SXHASH on that array, which is only allowed for strings 
+    and bit vectors. (bug introduced in 0.9.16)
+  * improvement: the x86-64/darwin port now passes all tests (except
+    for the debugger tests) but should still be considered
+    experimental until this is fixed.
+  * improvement: a style-warning is signaled for CASE (etc) clauses with
+    duplicate keys. (thanks to Kevin Reid)
+  * improvement: macos/x86 and macos/x86-64 now use mach exception
+    handlers for dealing with illegal instructions (for trapping and
+    error handling) and memory protection violations (for GC).
+
+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.
+  * change: runtimes with embedded cores (i.e. saved with :EXECUTABLE T)
+    don't print the startup banner, but behave as if --noinform was passed
+    as a command line argument. (thanks to Kevin Reid)
+  * new experimental feature: added JOIN-THREAD (by NIIMI Satoshi)
+  * optimization: code using alien values with undeclared types is much faster.
+  * optimization: the compiler is now able to open code SEARCH in more cases.
+  * optimization: more compact typechecks on x86-64 (thanks to Lutz Euler)
+  * bug fix: using standardized COMMON-LISP special variables as loop
+    variables no longer signals bogus package lock violations. (reported
+    by Eric Marsden)
+  * bug fix: declaring local loop variables to be of a range-limited type
+    such as (SINGLE-FLOAT 1.0 2.0) no longer causes a compile-time error.
+    (reported by Andras Simon)
+  * bug fix: >= and <= gave wrong results when used with NaNs. (Some NaN
+    bugs remain on x86-64.)
+  * 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
+  * bug fix: more consistent error output for fatal-compiler-warnings, like
+    reader errors
+  * bug fix: functions with proper names were showing up as NIL in
+    backtraces (reported by Edi Weitz, regression in 1.0.2)
+
+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:
-  * bug fix: fixed input, output and error redirection in RUN-PROGRAM
-    for win32. (thanks to Mike Thomas and Yaroslav Kavenchuk)
   * 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
@@ -12,13 +435,20 @@ changes in sbcl-0.9.16 relative to sbcl-0.9.15:
   * 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.
+    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.
@@ -45,6 +475,17 @@ changes in sbcl-0.9.16 relative to sbcl-0.9.15:
   * 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
@@ -153,6 +594,8 @@ changes in sbcl-0.9.13 relative to sbcl-0.9.12:
     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