0.9.11.14
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 924cc35..e6a4be0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,246 @@
 ;;;; -*- coding: utf-8; -*-
 ;;;; -*- coding: utf-8; -*-
+changes in sbcl-0.9.12 relative to sbcl-0.9.11:
+  * Enhancements for sbcl running on the Windows operating system:
+    ** (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)
+  * new feature: command line options --no-sysinit, --no-userinit to
+    inhibit loading the corresponding init files
+  * 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 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.
+
+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, 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
+    character codes.  (thanks to Yaroslav Kavenchuk and Ivan Boldyrev)
+  * fixed bug: DOCUMENTATION on structures no longer signals an 
+    error if no structure type of the right name exists.  (reported by
+    Glenn Ehrlich)
+  * fixed bug: compiled calls to MAKE-INSTANCE where there is an
+    applicable non-standard primary or :AROUND method on
+    INITIALIZE-INSTANCE or SHARED-INITIALIZE and a non-keyword initarg
+    no longer cause unbound variable errors.  (reported by Kevin Reid)
+  * fixed bug: metacircle resolution in cases where methods have slots
+    added before the slots from STANDARD-METHOD.  (reported by Jean
+    Bresson)
+  * fixed bug: the Power PC assembly code for calling into lisp
+    sometimes computed its return address wrongly (depending on the
+    15th bit of the address, fixed at link time).  This used to
+    manifest itself in a segmentation violation while building PCL.
+    (reported by Kevin Rosenberg, Eric Marsden, Lars Brinkhoff and
+    many others over the years)
+  * fixed bug: ROOM no longer reports silly numbers for stack usage if
+    the stack pointer (treated as a signed integer) is negative.
+    (thanks to Peter van Eynde)
+
+changes in sbcl-0.9.9 relative to sbcl-0.9.8:
+  * new platform: experimental support for the Windows operating
+    system has been added.  (thanks to Alastair Bridgewater)
+  * fixed several bugs in and robustified the PPC FFI (including
+    callbacks).  (thanks to Cyrus Harmon and Heiner Schwarte)
+  * bug fix: allow non-simple string symbol names (reported by Paul
+    Dietz)
+  * bug fix: interrupt handling on NetBSD (thanks to Richard M
+    Kreuter)
+  * bug fix: saving a core corrupted callbacks on x86/x86-64
+  * bug fix: closed a loophole in metacircularity detection and
+    grounding in the PCL implementation of CLOS.
+  * bug fix: TRUENAME on "/" no longer returns a relative pathname.
+    (reported by tomppa on #lisp)
+  * bug fix: clear the direction flag on Lisp -> C transitions, as 
+    required by the x86-64 ABI. Fixes mysterious GC crashes on SuSE.
+    (reported by Andrej Grozin and Hendrik Maryns)
+  * optimization: major improvements to GC efficiency on GENCGC platforms
+  * optimization: faster implementation of EQUAL
+  * optimization: emit more efficient opcodes for some common 
+    immediate->register MOV instructions on x86-64.  (thanks to Lutz Euler)
+  * optimization: several other minor code-generation improvements on x86-64
+  * fixed segfaults on x86 FreeBSD 7-current.  (thanks to NIIMI Satoshi)
+
+changes in sbcl-0.9.8 relative to sbcl-0.9.7:
+  * minor incompatible change: (SETF CLASS-NAME) and (SETF
+    GENERIC-FUNCTION-NAME) are generic functions once more (reverting
+    the change in the 0.9.7 release).  (SETF CLASS-NAME) is specified
+    by ANSI as a generic function, and for consistency (SETF
+    GENERIC-FUNCTION-NAME) is treated likewise.
+  * fixed bug #233.b: make constraint propagation notice when a variable
+    value is changed after it is referenced but before it is used
+  * fixed bug #296: no more arbitrary behaviour from filenames with
+    odd characters as --load arguments.  (reported by Adam Warner)
+  * fixed bug #390: :CHARACTER-SET pathname components now work as
+    expected.  (reported by Tim Daly Jr)
+  * fixed bug #391: complicated :TYPE intersections in slot
+    definitions no longer cause an error in PCL internals.
+  * fixed bug #392: plugged a hole in the obsolete-instance protocol.
+  * bug fix: FILE-STRING-LENGTH is now external-format sensitive,
+    returning the number of octets which would be written to the
+    file-stream.  (thanks to Robert J. Macomber)
+  * bug fix: the SB-SIMPLE-STREAMS contrib passes external-format
+    arguments to the internal stream functions.  (thanks to David
+    Lichteblau)
+  * bug fix: stack exhaustion is now handled on the x86/SunOS
+    platform.  (thanks to Daisuke Homma)
+  * bug fix: more accurate ROOM results on GENCGC platforms
+  * optimization: improved type inference for arithmetic-for
+    index variables in LOOP
+  * optimization: faster floating-point SQRT on x86-64
+  * 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
+    therefore are not customizeable by user code (as seems to be at
+    least permitted and maybe required by AMOP).  As a consolation,
+    however, the SBCL implementation of these functions now calls
+    REINITIALIZE-INSTANCE as specified by AMOP.
+  * bug fix: slot-definition documentation is propagated as per ANSI
+    7.6.2 to EFFECTIVE-SLOT-DEFINITIONS.
+    COMPUTE-EFFECTIVE-SLOT-DEFINITION now receives a :DOCUMENTATION
+    argument, as do eslotd initialization methods.  (from Pascal
+    Costanza's "Closer" project)
+  * bug fix: REINITIALIZE-INSTANCE on generic functions calls
+    COMPUTE-DISCRIMINATING-FUNCTION (almost) unconditionally, as
+    specified by AMOP.
+  * bug fix: it is now possible to have more than one subclass of
+    STANDARD-GENERIC-FUNCTION without causing stack overflow.
+    (reported by Bruno Haible, Pascal Costanza and others)
+  * bug fix: the dependent update protocol now works for generic
+    functions.  (thanks to Gerd Moellmann; reported by Bruno Haible
+    and Pascal Costanza)
+  * bug fix: condition-class instances corresponding to
+    DEFINE-CONDITION forms are now created eagerly.  (reported by
+    Kalle Olavi Niemitalo on comp.lang.lisp)
+  * bug fix: floating point printing is more accurate in some
+    circumstances.  (thanks to Simon Alexander)
+  * bug fix: *COMPILE-FILE-PATHNAME* now contains the user's pathname
+    merged with *DEFAULT-PATHNAME-DEFAULTS*.
+  * bug fix: callbacks on OS X now preserve stack-alignment.
+    (thanks to Cyrus Harmon)
+  * enhancement: the x86-64 disassembler is much better at
+    disassembling SSE instructions.  (thanks to Lutz Euler)
+  * enhancement: CHECK-TYPE on a variable now allows type-inference
+    (thanks to Vincent Arkesteijn)
+  * optimization: improved performance of EUC-JP external format.
+    (thanks to NIIMI Satoshi)
+  * optimization: performance improvements to IO on file streams of
+    :ELEMENT-TYPE CHARACTER
+  * optimization: much faster memory allocation on x86-64
+  * optimization: faster garbage collections (latency and throughput)
+    on gencgc
+  * optimization: faster bignum subtraction and division on x86 and x86-64 
+    (thanks to Lutz Euler)
+  * optimization: more accurate type-inference for loops that use a
+    floating point index variable or a negative step.
+
 changes in sbcl-0.9.6 relative to sbcl-0.9.5:
 changes in sbcl-0.9.6 relative to sbcl-0.9.5:
-  * bug fix: add a workaround to SBCL looping infinitely at startup on 
+  * bug fix: add a workaround to SBCL looping infinitely at startup on
     Linux kernels with apparently buggy implementations of personality().
     (thanks to Svein Ove Aas)
     Linux kernels with apparently buggy implementations of personality().
     (thanks to Svein Ove Aas)
+  * bug fix: Unicode symbols are correctly printed in LDB backtraces
+    (thanks to David Lichteblau)
+  * bug fix: local bindings shadow global symbol macros for
+    macroexpansion.  (reported by Matthew D Swank on comp.lang.lisp)
+  * optimization: non-open coded uses of numeric comparison operators
+    (e.g. >) no longer cons when called with more than one parameter
+    on platforms supporting dynamic-extent allocation.
+  * enhancement: saving cores with foreign code loaded is now supported
+    on MIPS/Linux in addition to the previously supported platforms.
+  * bug fix: FIND-RESTART now tests for activity, not applicability when given
+    a restart object as identifier. (reported by Helmut Eller for CMUCL)
+  * bug fix: division by zero in sb-sprof when no samples were collected
+  * bug fix: a race when a slow to arrive sigprof signal killed sbcl
+  * bug fix: asdf-install uses CRLF as required by the HTTP spec.
+    (thanks to Alexander Kjeldaas)
+  * new feature: ignoring the return values of destructive functions
+    like NREVERSE signals a compile-time style-warning.
+    (thanks to Kevin Reid)
+  * new feature: the alignment of alien structure fields can be
+    explicitly specified. (thanks to Cyrus Harmon)
+  * bug fix: run cleanup forms (in all threads) when receiving a SIGTERM
+    and dump core on SIGQUIT
+  * threads
+    ** incompatible change: threads do not inherit values of specials
+       from their parents (see manual)
+    ** bug fix: threads stacks belonging to dead threads are freed by the
+       next exiting thread, no need to gc to collect thread stacks anymore
+    ** minor incompatible change: INTERRUPT-THREAD-ERROR-ERRNO removed
+    ** WITH-RECURSIVE-LOCK can be nested in a WITH-MUTEX for the same lock
+    ** bug fix: dynamic variable and thread start related gc lossage
+    ** bug fix: job control (SIGSTOP/SIGCONT) no longer confuses threads
+       suspended for gc
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** SUBTYPEP is slightly more accurate on heinously complicated
+       CONS types where some of the members have uncertain (in the
+       NIL, NIL sense) type relationships to each other.
+  * GENCGC
+    ** Cores produced by SAVE-LISP-AND-DIE on GENCGC platforms are
+       no longer purified unless :PURIFY T is explicitly specified.
+    ** Non-purified cores are significantly smaller than before
 
 changes in sbcl-0.9.5 relative to sbcl-0.9.4:
   * new feature: timers based on Zach Beane's excellent timer package
 
 changes in sbcl-0.9.5 relative to sbcl-0.9.4:
   * new feature: timers based on Zach Beane's excellent timer package
@@ -719,7 +957,7 @@ changes in sbcl-0.8.16 relative to sbcl-0.8.15:
     (thanks to Richard Kreuter)
   * bug fix: defining classes whose accessors are methods on existing
     generic functions in other (locked) packages no longer signals
     (thanks to Richard Kreuter)
   * bug fix: defining classes whose accessors are methods on existing
     generic functions in other (locked) packages no longer signals
-    bogus package lock violations. (reported by François-René Rideau)
+    bogus package lock violations. (reported by François-René Rideau)
   * bug fix: special variables as DEFMETHOD parameters no longer have
     associated bogus type declarations. (reported by David Wragg and
     Bruno Haible)
   * bug fix: special variables as DEFMETHOD parameters no longer have
     associated bogus type declarations. (reported by David Wragg and
     Bruno Haible)