Fix (run-program) to cleanup fd handlers
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index f8eb769..f917e18 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,136 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
-changes relative to sbcl-1.0.48:
+changes relative to sbcl-1.0.51:
+  * enhancement: ASDF has been updated to version 2.017.
+  * enhancement: the --core command line option now accepts binaries with
+    an embedded core.
+  * enhancement: when built with :sb-core-compression, core files (regular
+    or executable) can be compressed with zlib.  Use the :COMPRESSION
+    argument to SAVE-LISP-AND-DIE to specify a compression level.
+  * enhancement: --[no-]merge-core-pages determines whether the runtime
+    hints the operating system that identical core pages between SBCL
+    processes should share the same physical memory.  Default is to only
+    enable this for compressed cores.
+  * optimization: SLEEP no longer conses.
+  * optimization: *PRINT-PRETTY* no longer slows down printing of strings
+    or bit-vectors when using the standard pretty-print dispatch table.
+  * bug fix: non-function FTYPE declarations no longer cause a compiler-error.
+    (lp#738464)
+  * bug fix: compiler-errors causes by MEMBER types in conjunction with with
+    AREF, CHAR, etc. (lp#826971)
+  * bug fix: compiler-errors causes by integer arguments with composed of
+    multiple ranges to ARRAY-IN-BOUNDS-P. (lp#826970)
+  * bug fix: ,@ and ,. now signal a read-time error for certain non-list
+    expressions. (lp#770184)
+  * bug fix: complex single float literals are correctly aligned when used
+    as arguments of arithmetic operators.
+  * bug fix: on 32-bit platforms, rounding of double floats larger than a
+    fixnum is correct.  (reported by Peter Keller)
+  * bug fix: stray FD-HANDLERs are no longer left lying around after unwinds
+    from RUN-PROGRAM.  (lp#840190, reported by Dominic Pearson; fix from Max
+    Mikhanosha)
+
+changes in sbcl-1.0.51 relative to sbcl-1.0.50:
+  * minor incompatible change: SB-BSD-SOCKET socket streams no longer
+    participate in SERVE-EVENT by default: pass :SERVE-EVENTS T to
+    MAKE-SOCKET-STREAM if using SERVE-EVENT.
+  * enhancement: added support for socket keepalive timeout intervals
+    and probe counts on Linux.
+  * enhancement: building 32-bit SBCL on Linux/x86-64 now works without a
+    chroot. (Use "SBCL_ARCH=x86 sh make.sh" to build.)
+  * enhancement: added new toplevel options --quit and --non-interactive
+    (lp#822712).
+  * enhancement: the Windows port of SBCL now builds and runs on Wine
+    (thanks to Anton Kovalenko).
+  * enhancement: more, and more correct, SSE instruction definitions on
+    x86-64 (thanks to Alexander Gavrilov).
+  * enhancement: SB-EXT:SPIN-LOOP-HINT assembles to an instruction designed
+    to help the processor execute spin loops, when applicable.  Currently
+    implemented for x86 and x86-64.
+  * optimization: unsigned integer divisions by a constant are implemented
+    using multiplication (affects CEILING, FLOOR, TRUNCATE, MOD, and REM.)
+  * optimization: improved type-derivation for LOAD-TIME-VALUE.
+  * bug fix: correct RIP offset calculation in SSE comparison and shuffle
+    instructions. (lp#814688)
+  * bug fix: COERCE to unfinalized extended sequence classes now works.
+    (reported by Jan Moringen; lp#815155)
+  * bug fix: a compiler error during typecheck generation, reported by Eric
+    Marsden. (lp#816564)
+  * bug fix: obsolete instance protocol fires when shared slots are added
+    or removed.
+  * bug fix: fixed-format floating point printing with scaling factors.
+    (lp#811386)
+  * bug fix: using GCC >= 4.6 to build SBCL on x86 no longer breaks
+    backtraces. (lp#818460)
+  * bug fix: better backtraces for interrupted syscall frames on x86.
+    (lp#549673)
+  * bug fix: SSE comparison instructions can be disassembled even when one
+    operand is in memory. (lp#814702)
+  * bug fix: incomplete writes when not using SERVE-EVENTS. (lp#820599)
+  * bug fix: MULTIPLE-VALUE-BIND + VALUES -> LET conversion could lose derived
+    type information associated with the VALUES form.
+  * bug fix: broken warnings/errors for type-errors involving LOAD-TIME-VALUE
+    forms. (lp#823014)
+  * bug fix: OPEN :IF-EXISTS :APPEND now returns correct FILE-POSITION before
+    first write (lp#561642).
+  * bug fix: compiled closures from EVAL could not be DESCRIBEd. (lp#824974)
+  * bug fix: bound propagation involving conversion of large bignums to
+    floats no longer signals a SIMPLE-TYPE-ERROR, reported by Lutz Euler.
+    (lp#819269)
+  * bug fix: &REST to &MORE conversion still works in unsafe call to known
+    functions; reported by Lutz Euler (lp#826459).
+  * bug fix: bogus deadlocks from interrupts and GCs. (lp#807475, regression
+    since 1.0.48)
+
+changes in sbcl-1.0.50 relative to sbcl-1.0.49:
+  * enhancement: errors from FD handlers now provide a restart to remove
+    the offending handler.
+  * enhancement: SB-INTROSPECT:FIND-DEFINITION-SOURCE now works on structure
+    copiers as well.
+  * enhancement: location of user or system initialization file can now easily
+    be customized for saved cores. See: SB-EXT:*USERINIT-PATHNAME-FUNCTION*
+    and SB-EXT:*SYSINIT-PATHNAME-FUNCTION*.
+  * enhancement: SB-EXT:MAKE-THREAD accepts an argument list designator for
+    the thunk, as a keyword argument, :arguments.
+  * enhancement: constraint propagation is simplified (and sped up) when
+    COMPILATION-SPEED > SPEED.
+  * enhancement: SB-ALIEN exports alien type specifiers SIZE-T and OFF-T.
+  * enhancement: debugger understands &MORE arguments better.
+  * optimization: extracting bits of a single-float on x86-64 has been
+    optimized. (lp#555201)
+  * optimization: MAP and MAP-INTO are more efficient for non-simple vectors,
+    when (> SPEED SPACE).
+  * optimization: local call trampolines (x86 and x86-64) are emitted
+    inline.
+  * optimization: implicit value cells for dynamic-extent closed-over bindings
+    on x86 and x86-64 can hold unboxed values as well.
+  * meta-optimization: improved compilation speed, especially for large
+    functions. (lp#792363 and lp#394206)
+  * bug fix: bound derivation for floating point operations is now more
+    careful about rounding possibly closing open bounds. (lp#793771)
+  * bug fix: SB-POSIX:SYSCALL-ERROR's argument is now optional. (accidental
+    backwards incompatible change in 1.0.48.27)
+  * bug fix: occasional debugger errors in when a type-error occured in a
+    function with dynamic-extent &rest list.
+  * bug fix: &optional and &key supplied-p arguments in DEFSTRUCT
+    boa-construtors can be used to initialized structure slots.
+  * bug fix: FMAKUNBOUND removes the MACRO-FUNCTION, should one exist.
+    (lp#795705, regression)
+  * bug fix: DIRECTORY works better on logical pathnames.
+  * bug fix: RUN-PROGRAM no longer fails spuriously when argument strings
+    are of the order of ARRAY-TOTAL-SIZE-LIMIT. (lp#787237)
+  * bug fix: the compiler no longer constant-folds NaNs in
+    MAKE-{SINGLE,DOUBLE}-FLOAT. (lp#486812)
+  * bug fix: FORMAT now handles floating point rounding correct, eg.
+    (format nil "~,1F" 0.01) => "0.0" instead of "0.01" as previously.
+    (lp#308961)
+  * bug fix: style warning during lambda-list introspection of generic
+    functions with both optional and key argments.
+  * bug fix: regalloc doesn't barf on unused TNs due to type-directed constant
+    folding. (lp#729765)
+  * bug fix: Fixed an off-by-one in MAP-ALLOCATED-OBJECTS that might have caused
+    infinite loops.
+
+changes in sbcl-1.0.49 relative to sbcl-1.0.48:
   * minor incompatible change: WITH-LOCKED-HASH-TABLE no longer disables
     interrupts for its body.
   * enhancement: source locations are now available for files loaded as
@@ -30,6 +161,10 @@ changes relative to sbcl-1.0.48:
        terminal even if one is available.
     ** --script can be an argument, causing the script to be loaded from
        standard input.
+  * enhancement: MAKE-ALIEN-STRING provides an easy way to transport lisp
+    strings to foreign memory.
+  * enhancement: (SETF GC-LOGFILE) allows logging garbage collections to
+    a file, making it easier to understand heap dynamics.
   * optimization: using a &REST argument only in APPLY or VALUES-LIST calls
     allows the compiler to automatically elide rest-list allocation so long as
     the call sites are in functions that the compiler knows cannot escape.