1.0.46.43: fix sb-introspect on non-threaded builds
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 6d636a4..7457a82 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,104 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
-changes relative to sbcl-1.0.43:
+changes relative to sbcl-1.0.46:
+  * bug fix: fix mach port rights leaks in mach exception handling code on
+    darwin/x86 and /x86-64. (thanks to Willem Oudshoorn for motivation and the
+    initial patch)
+  * enhancement: --script muffles style-warnings and compiler notes. (lp#677779)
+  * enhancement: redefinition warnings for macros from different files. (lp#434657)
+  * enhancement: better MACHINE-VERSION on Darwin x86 and x86-64. (lp#668332)
+  * enhancement: (FORMAT "foo" ...) and similar signal a compile-time warning. (lp#327223)
+  * enhancement: no more "in: LAMBDA NIL" messages from the compiler for forms
+    processed using EVAL -- now the appropriate toplevel form is reported instead.
+  * enhancement: more legible style-warnings for inappropriate IGNORE and IGNORABLE
+    declarations. (lp#726331)
+  * enhancement: :NOT-NULL option has been added to alien C-STRING type to indicate
+    that NIL/NULL is excluded from the type.
+  * enhancement: SB-INTROSPECT:MAP-ROOT allows mapping over pointers contained in
+    arbitrary objects.
+  * optimization: SLOT-VALUE &co are faster in the presence of SLOT-VALUE-USING-CLASS
+    and its compatriots.
+  * optimization: core startup time is reduced by 30% on x86-64. (lp#557357)
+  * bug fix: SB-DEBUG:BACKTRACE-AS-LIST guards against potentially leaking
+    stack-allocated values out of their dynamic-extent. (lp#310175)
+  * bug fix: attempts to use SB-SPROF for wallclock profiling on threaded
+    x86-64 builds caused a type-error.
+  * bug fix: calling COMPILE with something else than a lambda-expression as the
+    second argument reports a more sensible error. (lp#718905)
+  * bug fix: invalid combinations of :PREDICATE and :TYPE options in DEFSTRUCT
+    are detected. (lp#520607)
+  * bug fix: constant keyword argument checking didn't take :ALLOW-OTHER-KEYS
+    into account.
+  * bug fix: SLOT-BOUNDP information is correct during MAKE-INSTANCE in the
+    presence of (SETF SLOT-VALUE-USING-CLASS) and SLOT-BOUNDP-USING-CLASS
+    methods. (regression from 1.0.45.18)
+  * bug fix: INITIALIZE-INSTANCE :AROUND methods supplying initargs via
+    CALL-NEXT-METHOD work correctly. (regression from 1.0.45.19)
+  * bug fix: several foreign functions accepting string also accepted NIL and
+    consequently caused a memory fault at 0 now signal a type-error instead.
+    (lp#721087)
+  * bug fix: under rare circumstances, constraint propagation could rewrite a
+    variable reference to refer to a variable not in scope, causing an error
+    during physical environment analysis when attempting to close over the
+    variable. (lp#551227)
+  * bug fix: SIMPLE-CONDITION :FORMAT-CONTROL defaults to NIL.
+
+changes in sbcl-1.0.46 relative to sbcl-1.0.45:
+  * enhancement: largefile support on Solaris.
+  * enhancement: SB-PROFILE:REPORT now supports :LIMIT and :PRINT-NO-CALL-LIST
+    arguments (lp#710017)
+  * enhancement: SB-PCL:+SLOT-UNBOUND+ is exported, making it possible to
+    distinguish unbound instance slots when using STANDARD-INSTANCE-ACCESS
+    &co. (lp#718039)
+  * optimization: ERROR and CERROR are approximately 5 times faster.
+  * optimization: optimized constructors are used for MAKE-INSTANCE of classes
+    with applicable non-standard (SETF SLOT-VALUE-USING-CLASS),
+    SLOT-BOUNDP-USING-CLASS, and INITIALIZE-INSTANCE :AROUND methods, speeding
+    up instance creation in those cases.
+  * optimization: arithmetic operations with multiple constant arguments in now
+    have them reduced at compile-time. (lp#676414)
+  * optimization: determining current character position on string-streams for
+    pretty-printing was overly slow.
+  * bug fix: local tail calls to DYNAMIC-EXTENT functions can no longer cause
+    lifetime analysis to overwrite closed-over variables (lp#681092).
+  * bug fix: encoding errors from some multibyte external formats such as EUC-JP
+    were not handled correctly (lp#713063).
+  * bug fix: printing waitqueue objects without setting *PRINT-CIRCLE* to T is now
+    safe (lp#673630).
+  * bug fix: Solaris/x86-64 wasn't getting built with lutex support by
+    mistake. (lp#667297).
+  * bug fix: CONSTANTLY generated functions had bogus lambda-lists. (lp#713626)
+  * bug fix: RUN-PROGRAM :PTY option was racy on OpenBSD. (lp#669485)
+  * bug fix: UNINTERN takes a symbol, not a symbol designator -- could previously
+    unintern the wrong symbol with the same name. (lp#693796)
+  * bug fix: COPY-PPRINT-DISPATCH always has access to a pristine table,
+    making it possible to restore the initial table if it has been messed up.
+    (lp#678409)
+
+changes in sbcl-1.0.45 relative to sbcl-1.0.44:
+  * enhancement: ~/ and ~user/ are treated specially in pathnames.
+    Refer to documentation for details.
+  * enhancement: ASDF has been updated to version 2.010.
+  * optimization: mutated closed-over variables that are only accessed by
+    DYNAMIC-EXTENT closures (currently only FLET and LABELS functions
+    declared to be DYNAMIC-EXTENT) are stored directly in their containing
+    stack frame, rather than allocating a VALUE-CELL (lp#586103).
+  * optimization: UNWIND-PROTECT cleanup functions are now declared
+    DYNAMIC-EXTENT.
+  * bug fix: backtracing function with &REST arguments now shows the full
+    argument list. (lp#310173)
+  * bug fix: return types for functions with complex lambda-lists are now
+    derived properly (lp#384892)
+  * bug fix: when SPEED > SPACE compiling CONCATENATE 'STRING with constant
+    long string arguments slowed the compiler down to a crawl.
+  * bug fix: closure VALUE-CELLs are no longer stack-allocated (lp#308934).
+  * bug fix: non-standard MAKE-METHOD-LAMBDA methods could break RETURN-FROM
+    in the DEFMETHOD body.
+  * bug fix: #<SB-C::DEFINED-FUN ...> should no longer appear in compiler
+    messages, being instead replaced with the corresponding function name.
+  * bug fix: don't derive overly complex unions of numeric types for arithmetic
+    operators. (lp#309448)
+
+changes in sbcl-1.0.44 relative to sbcl-1.0.43:
   * enhancement: RUN-PROGRAM accepts :EXTERNAL-FORMAT argument to select the
     external-format for its :INPUT, :OUTPUT, AND :ERROR :STREAMs.
   * enhancement: ALLOCATION-INFORMATION also provides the page the object
@@ -35,7 +134,7 @@ changes relative to sbcl-1.0.43:
     (AND VECTOR (NOT SIMPLE-ARRAY)) when appropriate. (lp#309130)
   * bug fix: (THE (VALUES ...)) in LOAD-TIME-VALUE caused a compiler-error.
     (lp#646796)
-  * bug fix: interrupts arriving due to CL:OPEN caused an error.
+  * bug fix: interrupts arriving during CL:OPEN caused an error.
   * bug fix: overeager character buffering could cause input to block
     spuriously when reading from a pipe (lp#643686)
   * bug fix: more efficient timer expiry should avoid starvation on systems
@@ -81,6 +180,16 @@ changes relative to sbcl-1.0.43:
   * bug fix: (COERCE X '(SIMPLE-VECTOR 5)) and similar coercions to vectors
     of specified length could confuse the type derivation in unsafe code.
     (lp#655872)
+  * bug fix: SB-POSIX:FORK now signals an error if an attempt to
+    fork with multiple Lisp threads running is made on every platform,
+    not just Darwin. (lp#451111)
+  * bug fix: SB-BSD-SOCKETS and SB-SIMPLE-STREAMS could leave stale finalizers
+    around when core was saved, which could cause undefined behaviour when the
+    core was reified. 
+  * bug fix: Allow UNTRACE of functions that are no longer defined
+    (lp#667657, thanks to Attila Lendvai)
+  * bug fix: MAKE-ARRAY calls with invalid keyword argument lists now signal a
+    compile-time warning (lp#664373, thanks to Stas Boukarev)
 
 changes in sbcl-1.0.43 relative to sbcl-1.0.42:
   * incompatible change: FD-STREAMS no longer participate in the serve-event