0.9.13.4:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 16ff77f..7994058 100644 (file)
--- a/NEWS
+++ b/NEWS
 ;;;; -*- coding: utf-8; -*-
+changes in sbcl-0.9.14 relative to sbcl-0.9.13:
+  * 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).
+  * bug fix: unparsing logical pathnames with :NAME :WILD :TYPE NIL
+    failed with a type error.  (reported by Pascal Bourguignon)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** MISC.641: LET-conversion were not supposed to work in late
+       compilation stages.
+
+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
+
+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, 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