1.0.44.26: more nuanced deprecation framework
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 96385f0..838c9ad 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,220 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
-changes relative to sbcl-1.9.38:
+changes relative to sbcl-1.0.44:
+  * enhancement: ~/ and ~user/ are treated specially in pathnames.
+    Refer to documentation for details.
+  * 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.
+
+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
+    resides on.
+  * enhancement: default dynamic-space size can be configured at build-time
+    without touching source, using the --dynamic-space-size argument to make.sh.
+  * enhancement: DESCRIBE recognizes symbols naming optimization policy
+    qualities, and mentions ALWAYS-BOUND declarations.
+  * enhancement: ATOMIC-INCF now supports AREF of (SIMPLE-ARRAY SB-EXT:WORD (*))
+    as a place.
+  * enhancement: ASDF has been updated to 2.009.
+  * enhancement: the system detects known type-erros in calls better,
+    signalling a full warning about violated proclaimed FTYPEs and violations
+    of derived FTYPEs within the same file, including self-calls.
+  * enhancement: new function: SB-EXT:DELETE-DIRECTORY is now provided.
+  * optimization: constant-folding exploits numeric and character types, in
+    addition member types.
+  * optimization: numeric, character and member types that are inhabited by
+    exactly one value are tested with EQL.
+  * optimization: more conditional branches are eliminated during IR1.
+    Branches are simplified before performing if/if-conversion, and simple
+    equivalent branches (that only read the same constant or variable) are
+    merged.
+  * improvements to the Windows port:
+    ** change: canonical unparsing form for pathname namestrings now uses / as
+       directory separator. NATIVE-NAMESTRING still uses \ as the separator.
+    ** bug fix: stackoverwriting due to incorrect usage of PeekConsoleInput
+       on Windows. (thanks to Kalyanov Dmitry)
+    ** bug fix: build now works on cygwin with GCC 4.x installed. (thanks to
+       Kalyanov Dmitry)
+    ** bug fix: run-sbcl.sh now works on Cygwin. (thanks to Kalyanov Dmitry)
+  * bug fix: compiler failed to derive the result-type of MAKE-ARRAY as
+    (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 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
+    where number of SIGALRMs per second is restricted. (lp#375515)
+  * bug fix: non-unicode builds no longer fail (broken since 1.0.36.15).
+  * bug fix: compile-times no longer scale linearly with the size of
+    quoted lists in source-code. (lp#654289)
+  * bug fix: better errors for unknown external-formats in OPEN. (lp#561974)
+  * bug fix: DEBUG>SPEED no longer degrades ALIEN-FUNCALL performance quite
+    so badly. (lp#654485)
+  * bug fix: SB-INTROSPECT:FIND-DEFINITION-SOURCES-BY-NAME no longer signals
+    an error for eg. STRUCTURE. (lp#458015)
+  * bug fix: LOOP WITH NIL = ... signalled an unused variable style-warning.
+    (lp#613871, thanks to Roman Marynchak)
+  * bug fix: more reliable &REST list type derivation. (lp#655203)
+  * bug fix: PPRINT-LOGICAL-BLOCK multiply-evaluated :PER-LINE-PREFIX,
+    and issued pointles code-deletion notes for it, :PREFIX, and :SUFFIX.
+  * bug fix: the compiler didn't utilize the proclaimed ftype for functions
+    also declared NOTINLINE. (lp#655581)
+  * bug fix: the compiler could attempt to emit constant left shifts of 
+    greater value than n-word-bits. (lp#309063)
+  * bug fix: (SETF SYMBOL-FUNCTION) and (SETF FDEFINITION) clear derived
+    type information for the function being set. (lp#659220)
+  * bug fix: the system used to signal bogus STYLE-WARNINGs when functions
+    containing self-calls were recompiled with a new signature, and failed
+    to warn when a self-call using the old signature was left in. (lp#655126)
+  * bug fix: incorrect FILE-POSITION on streams opened using :EXTERNAL-FORMAT
+    :DEFAULT when the default external had character size other than 8 bits.
+    (lp#657183)
+  * bug fix: derived types of functions in the same file were implicitly
+    trusted, leading to potential heap corruption when those function were
+    defined incompatibly. (lp#657499)
+  * bug fix: existing ASDF source registries are ignored when building
+    contribs (lp#659105)
+  * bug fix: short-form DEFSETF checks that the second argument is a symbol
+    (lp#655824, thanks to Roman Marynchak)
+  * bug fix: (SETF MACRO-FUNCTION) clobbered macro-definitions before
+    package-lock violation was detected. (lp#660752)
+  * bug fix: the system can store different docstrings for a single function
+    under different names. (lp#661631, regression from 1.0.29.24)
+  * bug fix: source-locations of DEFGENERIC forms weren't getting recorded
+    properly. (lp#384801)
+  * 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
+    event-loop by default. (lp#316072)
+    ** In addition to streams created by explicit calls to MAKE-FD-STREAM this
+       affects streams from CL:OPEN.
+    ** Streams from SOCKET-MAKE-STREAM still participate in serve-event by
+       default, but this is liable to change: applications needing serve-event
+       for socket streams should explicitly request it using :SERVE-EVENTS T
+       in the call.
+  * enhancement: SB-EXT:WORD type is provided for use with SB-EXT:ATOMIC-INCF
+    &co.
+  * enhancement: CLOS effective method functions and defclass slot typechecking
+    function now have debug names for use in backtraces and profiles.
+  * enhancement: ASDF has been updated to version 2.004. (lp#605260, thanks to
+    Faré Rideau)
+  * enhancement: symbols are printed using fully qualified names in several
+    error and warning messages which are often associated with package
+    conflicts or mixups (lp#622789, thanks to Attila Lendvai)
+  * bug fix: SB-BSD-SOCKETS:SOCKET-CONNECT was not thread safe. (lp#505497,
+    thanks to Andrew Golding)
+  * bug fix: reading /proc files on Linux works. (lp#425199)
+  * bug fix: DOTIMES accepted literal non-integer reals. (lp#619393, thanks to
+    Roman Marynchak)
+  * bug fix: WRITE-TO-STRING compiler macro binding special variable names,
+    breaking code that tried to write the value of a printer control variable.
+    (lp#581564, thanks to Stas Boukarev)
+  * bug fix: WRITE compiler macro did not handle output stream designators
+    correctly. (lp#598374, thanks to Stas Boukarev)
+  * bug fix: better availability of names of foreign functions in backtraces
+    on Linux. (lp#626962, thanks to Stas Boukarev)
+  * bug fix: scripting and build for Solaris and FreeBSD. (lp#615497,
+    lp#627581, thanks to Josh Elsasser and Jim Wise)
+  * bug fix: build fixes for OpenBSD -current and 4.8 (lp#615489, lp#615492,
+    thanks to Josh Elsasser)
+  * bug fix: using aliases for builtin classes as defmethod specializers
+    without adding DEFTYPEs for them works. (lp#618387)
+  * bug fix: timetravel by getrusage() no longer causes type-errors during GC.
+    (lp#544421)
+  * bug fix: legally dynamic-extent lists and vectors used as
+    initialization arguments to MAKE-ARRAY can be stack allocated. (lp#586105)
+  * bug fix: inline-expansion creating references to dead lambda-variables
+    (lp#454681, thanks to Alexey Dejneka)
+  * bug fix: better error message for bogus numerical arguments to RANDOM.
+    (lp#598986, thanks to Stas Boukarev)
+  * bug fix: the compiler occasionally inlined references from incompatible
+    environments occurs. (lp#308951)
+  * bug fix: the compiler threw an error when trying to compile a local
+    function (labels or flet) known to take a specialized complex argument.
+    (not in launchpad, reported by sykopomp in #lispgames)
+  * bug fix: package-locks failed to protect against compile-time effects of
+    DEFUN when the symbol previously had a macro definition. (lp#576637)
+  * bug fix: spurious ignore warnings even given (DECLARE IGNORE) in methods
+    when parameter bindings mutated.  (reported by Faré Rideau; lp #611361)
+  * bug fix: workaround for compiler hang in ORDER-UVL-SETS (lp#308914)
+  * bug fix: evaluation in debugger REPL works using the global context when
+    in frames that do not have sufficient debug information.
+  * bug fix: exceeding FD_SETSIZE limit now results in an sensible error
+    (lp#316068)
+  * bug fix: (SETF DOCUMENTATION) of a macro works properly. (lp#643958, thanks
+    to Stas Boukarev)
+  * bug fix: interrupt taking longer than the requested period caused SLEEP
+    to hang on Darwin. (lp#640516, thanks to Joe Lebroco for the analysis)
+
+changes in sbcl-1.0.42 relative to sbcl-1.0.41
+  * build changes
+    ** Cross-compilation host is now specified to make.sh using
+       command-line argument --xc-host=<command> instead of a positional
+       argument. (thanks to Daniel Herring)
+    ** Install location can be specified to make.sh using command-line
+       argument --prefix=<path>. (lp#550889s, thanks to Daniel Herring)
+  * optimization: The default implementation of
+    COMPUTE-DISCRIMINATING-FUNCTION does much less wasted work.
+  * enhancement: Explicit memory barrier operations are now available for use
+    by multithreaded code.  See documentation for details.
+  * enhancement: Experimental support for threading on Linux/PPC.
+  * bug fix: RENAME-PACKAGE returns the package.  (Thanks to Eric Marsden)
+  * bug fix: EXPT signals an error if first argument is a zero and second
+    argument is a floating point zero. (lp#571581, thanks to Roman Marynchak)
+  * bug fix: DEFTYPE signals an error for non-list lambda-lists.
+    (lp#576594, thanks to Roman Marynchak)
+  * bug fix: make ASDF-INSTALL compatible with the now-included ASDF2.
+    (lp#612998, reported by Phil Hargett; patch from Jim Wise)
+
+changes in sbcl-1.0.41 relative to sbcl-1.0.40:
+  * optimization: validity of observed keyword initargs to MAKE-INSTANCE is
+    cached, leading to many fewer expensive calls to
+    COMPUTE-APPLICABLE-METHODS.
+  * optimization: in the (unoptimized) general method for MAKE-INSTANCE on a
+    CLASS argument, search for and call an appropriate optimized ctor function
+    if it exists.
+  * bug fix: WRITE always returns the correct value.
+
+changes in sbcl-1.0.40 relative to sbcl-1.0.39:
+  * bug fix: readdir now works on :inode64 darwin builds (lp#592897)
+  * bug fix: Name conflicts between symbols passed as arguments to a single
+    call to IMPORT no longer add multiple symbols with the same name to the
+    package (detectable via DO-SYMBOLS).
+  * bug fix: support building without the dlshim on darwin x86 and x86-64
+    (lp#533470).
+  * bug fix: TRACE :ENCAPSULATE NIL now works on ppc/linux.
+
+changes in sbcl-1.0.39 relative to sbcl-1.0.38:
   * bug fix: Backtrace from undefined function on x86 and x86-64 now show
     the calling frame.
   * bug fix: linkage-table entries on PPC now no longer overflow their
@@ -14,6 +229,11 @@ changes relative to sbcl-1.9.38:
   * bug fix: Any noise left by SSE operations (sqrt and conversions) in the
     high order bits are explicitly cleared out. In some contrived situations,
     this could lead to wrong results in mixed real/complex float arithmetic.
+  * bug fix: Fix function/macro redefinition warnings when building with
+    clisp.  (lp#576787, thanks to Josh Elsasser)
+  * new platform: experimental support for ppc/openbsd (thanks to Josh
+    Elsasser).
+  * bug fix: Floating-point traps now work on ppc/linux.
 
 changes in sbcl-1.0.38 relative to sbcl-1.0.37:
   * incompatible change: Thread names are now restricted to SIMPLE-STRINGs