1.0.29.38: better DESCRIBE
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 00245a4..219257d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,12 +1,66 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
+  * 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: more efficient type-checks for FIXNUMs when the value
+    is known to be a signed word on x86 and x86-64.
+  * optimization: (EXPT -1 INTEGER) is compiled into (IF (EVENP INTEGER) 1 -1).
+    (thanks to Stas Boukarev)
+  * 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.)
+  * optimization: compiler is smarter about delegating argument type checks to
+    callees.
+  * 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 obias 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)
+
+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.
   * optimization: accesses to potentially non-simple arrays where element type
     is known are 50% faster.
   * optimization: compiler now generates faster array typechecking code.
   * optimization: multidimensional array accesses in the absence of type
     information regarding array rank are approximately 10% faster due to
     open coding of ARRAY-RANK.
+  * optimization: result of (FILL (MAKE-ARRAY ...) ...) and (REPLACE
+    (MAKE-ARRAY ...) ...) can be stack allocated if the result of MAKE-ARRAY
+    form can be.
+  * optimization: result of call to VECTOR can now be stack allocated.
+  * optimization: MAKE-ARRAY with :INITIAL-CONTENTS is now vastly faster
+    as long as the resulting array is one-dimensional and has a known
+    element type. In particular, :INITIAL-CONTENTS (LIST ...) where the
+    length of the list matches the known length of the vector does not
+    allocate the list as an intermediate step. Ditto for VECTOR and simple
+    backquoted forms.
+  * optimization: MAKE-ARRAY can now stack allocate in the presence of
+    :INITIAL-CONTENTS and :INITIAL-ELEMENT as long as the result has a
+    known element type, and is known to be simple and one dimensional.
   * improvement: SBCL now emits a compiler note where stack allocation was
-    requested but could not be provided.
+    requested but could not be provided (not in all cases, unfortunately)
   * improvement: better MACHINE-VERSION responses. (thanks to Josh Elsasser)
   * 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.
     (thanks to Josh Elsasser)
   * bug fix: exit status from QUIT when called under --script was lost
   * 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