1.0.30.40: faster SLOT-VALUE on structures
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index f5c7aa9..5eff26d 100644 (file)
--- a/NEWS
+++ b/NEWS
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
+changes relative to sbcl-1.0.30:
+  * improvement: stack allocation is should now be possible in all nested
+    inlining cases: failure to stack allocate when equivalent code is manually
+    open coded is now considered a bug.
+  * improvement: the Unicode character database has been upgraded to the
+    Unicode 5.1 standard, giving names and properties to a number of new
+    characters, and providing a few extra characters with case
+    transformations.
+  * improvement: the system now recognizes and produces names for Unicode
+    Hangul syllable characters.
+  * new feature: experimental :EMIT-CFASL parameter to COMPILE-FILE can
+    be used to output toplevel compile-time effects into a separate .CFASL
+    file.
+  * optimization: COERCE to VECTOR, STRING, SIMPLE-STRING and recognizable
+    one-dimenstional subtypes of ARRAY is upto 70% faster when the coercion is
+    actually needed.
+  * optimization: TRUNCATE on known single- and double-floats is upto 25%
+    faster.
+  * optimization: division of floating point numbers by constants uses
+    multiplication by reciprocal when an exact reciprocal exists.
+  * optimization: multiplication of single- and double-floats floats by
+    constant two has been optimized.
+  * optimization: ARRAY-IN-BOUNDS-P is resolved at compile-time when
+    sufficient type information is available. (thanks to Leslie Polzer)
+  * optimization: SLOT-VALUE and (SETF SLOT-VALUE) with constant slot names on
+    known structure objects are as efficient as defstruct generated accessors.
+  * optimization: unused vector creation can now be optimized away.
+  * improvement: ASDF systems can now depends on SB-INTROSPECT.
+  * improvement: a STYLE-WARNING is signalled when a generic function
+    clobbers an earlier FTYPE proclamation.
+  * improvement: the compiler is able to track the effective type of
+    generic function across method addition and removal even in the
+    absence of an explicit DEFGENERIC.
+  * improvement: DESCRIBE now reports on symbols naming undefined
+    but assumed or declared function as well.
+  * improvement: recompilation of systems using SB-GROVEL now works
+    (thanks to Leslie Polzer)
+  * improvements to SB-CLTL2 (thanks to Larry D'Anna):
+    ** functions DECLARATION-INFORMATION, PARSE-MACRO, and ENCLOSE have been
+       documented.
+    ** AUGMENT-ENVIRONMENT and DEFINE-DECLARATION have been implemented.
+    ** DECLARATION-INFORMATION now supports declaration name DECLARATION as
+       well as user defined declaration names.
+    ** VARIABLE-INFORMATION is now aware of alien variables.
+  * improvement: improved address space layout on OpenBSD (thanks to Josh
+    Elsasser)
+  * improvement: pretty-printing of various Lisp forms has been improved
+    (thanks to Tobias Rittweiler)
+  * bug fix: a failing AVER in CONVERT-MV-CALL has been fixed. (thanks to
+    Larry D'Anna)
+  * bug fix: a failing AVER in %ALLOCATE-CLOSURES conversion has been fixed
+    (thanks to Larry D'Anna)
+  * bug fix: SLEEP supports times over 100 million seconds on long on OpenBSD
+    as well. (reported by Josh Elsasser)
+  * bug fix: DELETE-FILE on streams no longer closes the stream with :ABORT T,
+    leading to possible attempts to delete the same file twice. See docstring
+    on DELETE-FILE for details. (reported by John Fremlin)
+  * bug fix: the low-level debugger had 32-bit assumptions and was missing
+    information about some array types. (thanks to Luis Oliveira)
+  * bug fix: moderately complex combinations of inline expansions could
+    be miscompiled if the result was declared to be dynamic extent.
+  * bug fix: in some cases no compiler note about failure to stack allocate
+    was emitted, even if the objects were in fact heap allocated.
+  * bug fix: minor violation of "otherwise inaccessible" rule for stack
+    allocation could cause objects users might reasonably expect to
+    be heap allocated to be stack allocated.
+  * bug fix: DESCRIBE signalled an error for generic functions under
+    certain circumstances. (thanks to Leslie Polzer)
+  * bug fix: Fixed spelling of an error message.
+
+changes in sbcl-1.0.30 relative to sbcl-1.0.29:
+  * minor incompatible change: SB-THREAD:JOIN-THREAD-ERROR-THREAD and
+    SB-THREAD:INTERRUPT-THREAD-ERROR-THREAD have been deprecated in favor
+    of SB-THREAD:THREAD-ERROR-THREAD.
+  * new contrib module: SB-QUEUE provides thread-safe lockless FIFO queues.
+  * new feature: docstrings for local and anonymous functions are no longer
+    discarded. (thanks to Leslie Polzer)
+  * new feature: SB-THREAD:SYMBOL-VALUE-IN-THREAD provides access to symbol
+    values in other threads.
+  * new feature: SB-INTROSPECT:ALLOCATION-INFORMATION provides information
+    about object allocation.
+  * optimization: division of a real float by a complex float is implemented
+    with a specialised code sequence.
+  * optimization: MAKE-INSTANCE with non-constant class-argument but constant
+    keywords is an order of magnitude faster.
+  * optimization: MAKE-INSTANCE with constant keyword arguments is x2-4 faster
+    in the presence of :AROUND or non-standard primary INITIALIZE-INSTANCE
+    methods, and similarly for non-standard metaclass classes as long as there
+    are no methods additional on MAKE-INSTANCE.
+  * optimization: more efficient type-checks for FIXNUMs when the value
+    is known to be a signed word on x86 and x86-64.
+  * optimization: compiler now optimizes (EXPT -1 INTEGER), (EXPT -1.0 INTEGER),
+    and (EXPT -1.0d0 INTEGER) into an ODDP test. (thanks to Stas Boukarev and
+    Paul Khuong)
+  * optimization: compiler is smarter about delegating argument type checks to
+    callees.
+  * optimization: several character functions are now compiled somewhat more
+    efficiently. (reported by Lynn Quam)
+  * optimization: the compiler now derives simple types for LOAD-VALUE-FORMs.
+  * improvement: less unsafe constant folding in floating point arithmetic,
+    especially for mixed complex/real -float operations.
+  * optimization: constant double and single floats are stored in native
+    unboxed format on x86[-64].
+  * optimization: smarter code for arithmetic operations with constant floats,
+    complex floats, or integers on x86[-64].
+  * optimization: smarter code for conjugate/multiplication of float complexes
+    and abs/negate of floats on x86-64.
+  * optimization: more efficient complex float and real float operations on
+    x86-64.
+  * improvement: complex float division is slightly more stable.
+  * improvement: DESCRIBE output has been reworked to be easier to read and
+    contains more pertinent information.
+  * improvement: failure to provide requested stack allocation compiler notes
+    provided in all cases (requested stack allocation not happening without a
+    note being issued is now considered a bug.)
+  * bug fix: SB-POSIX exports the documented types and functions
+    FILE-DESCRIPTOR and FILENAME, and also the corresponding -DESCRIPTOR
+    types. (reported by "abhi")
+  * bug fix: on 64 bit platforms FILL worked incorrectly on arrays with
+    upgraded element type (COMPLEX SINGLE-FLOAT), regression from 1.0.28.55.
+    (thanks to Paul Khuong)
+  * bug fix: looping around HANDLER-CASE could silently consume stack space
+    on each iteration. (reported by "foobar")
+  * bug fix: better error signalling when calls to functions seeking elements
+    from lists (eg. ADJOIN) are compiled with both :TEST and :TEST-NOT.
+    (reported by Tobias Rittweiler)
+  * bug fix: regressions in DIRECTORY from 1.0.28.61: pattern matching of
+    directory components now works as it used to. (various prolems reported by
+    Michael Becker, Gabriel Dos Reis, Cyrus Harmon, and Harald Hanche-Olsen)
+  * bug fix: :PTY option in RUN-PROGRAM was broken with stream arguments.
+    (reported by Elliot Slaughter, thanks to Stas Boukarev)
+  * bug fix: bogus undefined variable warnings from fopcompiled references to
+    global variables. (thanks to Lars Rune Nøstdal)
+  * bug fix: foreign function names should now appear in backtraces on
+    FC6 as well. (reported by Tomasz Skutnik and Tobias Rautenkranz)
+  * bug fix: SETF compiler macro documentation strings are not discarded
+    anymore.
+  * bug fix: GENTEMP is now unaffected by pretty printer dispatch table.
+    (thanks to Alex Plotnick)
+  * bug fix: SLEEP accepts large integer arguments, truncating them to
+    SIGNED-WORD on the assumption that sleeping for 68 years is sufficient
+    for anyone. (reported by Leslie Polzer, thanks to Stas Boukarev)
+  * bug fix: compiler notes for expensive slot type checks could be emitted
+    at runtime MAKE-INSTANCE calls. (reported by Samium Gromoff)
+
+changes in sbcl-1.0.29 relative to 1.0.28:
+  * IMPORTANT: bug database has moved from the BUGS file to Launchpad
+        https://bugs.launchpad.net/sbcl
+    Bugs can be reported directly there, or by sending email to
+        sbcl-bugs@lists.sourceforge.net
+    (no subscription required.)
   * minor incompatible change: under weak type checking policy integer
     types are weakened less aggressively.
   * minor incompatible change: SAVE-LISP-AND-DIE :TOPLEVEL function is now
     allowed to return, which causes SBCL to quit with exit status 0. Previously
     if the function returned with a small integer return value, that value
     was accidentally reused as the exit status.
+  * new feature: SB-EXT:DEFINE-HASH-TABLE-TEST allows defining new arguments
+    to MAKE-HASH-TABLE :TEST, and MAKE-HASH-TABLE has been extended with
+    :HASH-FUNCTION argument. Refer to user manual for details.
   * new feature: SB-EXT:DEFGLOBAL macro allows defining global non-special
     variables.
+  * new feature: SB-EXT:GET-TIME-OF-DAY provides access to seconds and
+    microseconds since the Unix epoch on all platforms.
   * new feature: SB-EXT:ALWAYS-BOUND proclamation inhibits MAKUNBOUND, and
     allows the compiler to safely elide boundedness checks for special
     variables.
     the symbol, prohibits both lexical and dynamic binding. This is mainly an
     efficiency measure for threaded platforms, but also valueable in
     expressing intent.
+  * new feature: UNC pathnames are now understood by the system on Windows.
   * optimization: the compiler uses a specialized version of FILL when the
     element type is know in more cases, making eg. (UNSIGNED-BYTE 8) case
     almost 90% faster.
   * improvement: pretty-printing loop has been implemented properly. (thanks
     to Tobias Rittweiler)
   * documentation: CLOS slot typechecing policy has been documented.
+  * bug fix: FILE-AUTHOR no longer signals an error on Windows.
   * bug fix: SB-SPROF could be foiled by foreign code not have a frame
     pointer, leading to memory faults. (thanks to Bart Botta)
   * bug fix: better floating point exception handling on x86/OpenBSD.
   * bug fix: signals delivered to threads started from foreign land (read:
     directly by pthread_create, not by MAKE-THREAD) are redirected to a Lisp
     thread by blocking all signals and resignalling.
+  * bug fix: SHARED-INITIALIZE initialized unbound :ALLOCATION :CLASS slots
+    from :INITFORM, if any.
 
 changes in sbcl-1.0.28 relative to 1.0.27:
   * a number of bugs in cross-compilation have been fixed, with the ultimate