new SET-SBCL-SOURCE-LOCATION convenience function
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 809b1fe..7f67885 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,178 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
-changes relative to sbcl-1.0.49:
+changes relative to sbcl-1.0.53:
+  * minor incompatible changes:
+    ** RENAME-FILE on a symbolic links used to rename the linked-to file instead
+       of the link.
+    ** DELETE-DIRECTORY on symbolic link to a directory used to delete the
+       directory, but now signal an error instead. Use TRUENAME to resolve
+       the pathname if you wish to delete the linked directory, and DELETE-FILE
+       if you wish to delete the
+    ** The internal SB-THREAD::SPINLOCK API has been deprecated, and using
+       symbols associated with it will trigger a compile-time warning.
+  * thread-related enhancements:
+    (This work has been funded by the SBCL Threading 2011 IndieGoGo campaign.
+     Many thanks to generous donors!)
+    ** Threading is now more reliable on non-Linux platforms. We still
+       don't consider threads on non-Linux platforms good enough to
+       enable them by default, but they're in a clearly better shape now.
+    ** Deadlines supported now on all platforms.
+    ** All blocking functions in the threading API now have a :TIMEOUT
+       argument.
+    ** Semaphore notification objects have been added to SB-THREAD.
+    ** SB-CONCURRENCY contrib now includes Allegro-style GATE objects.
+    ** SB-EXT:COMPARE-AND-SWAP has been extended to support SLOT-VALUE,
+       STANDARD-INSTANCE-ACCESS, and FUNCALLABLE-STANDARD-INSTANCE-ACCESS.
+    ** Users can now defined new places usable with SB-EXT:COMPARE-AND-SWAP
+       using an API anologous to defining new SETFable places.
+  * enhancement: debug-names of anonymous and local function are more
+    descriptive. Affects backtraces and SB-SPROF results. (lp#805100)
+  * enhancement: on GENCGC systems nursery and generation sizes now default to
+    5% of dynamic-space size.
+  * enhancement: on CHENEYGC targets, SB-KERNEL:MAKE-LISP-OBJ now does
+    the same validation of pointer objects as GENCGC does, instead of a
+    comparatively weak bounds-check against the heap spaces.
+  * enhancement: on win32, ABS of complex floats guards better against
+    overflows. (lp#888410)
+  * enhancement: RUN-PROGRAM now distinguishes exec() failing from child
+    process exiting with code 1. (lp#676987)
+  * enhancement: convenience function SET-SBCL-SOURCE-LOCATION for informing
+    the system where on the filesystem the SBCL sources themselves are
+    located.  (Thanks to Zach Beane)
+  * bug fix: on 64-bit targets, atomic-incf/aref does index computation
+    correctly, even on wide-fixnum builds. (lp#887220)
+  * bug fix: (directory "foo/*/*.*") did not follow symlinks in foo/ that
+    resolved to directories.
+  * bug fix: SB-KERNEL:MAKE-LISP-OBJ on GENCGC no longer categorically
+    refuses to create SIMPLE-FUN objects.
+  * bug fix: type mismatch when assigning to lexical variables no longer
+    result in fasl-dumping internal type objects. (lp#890750)
+  * bug fix: type mismatch on (setf aref) and function return values no
+    longer result in fasl-dumping internal type objects.
+  * bug fix: SB-BSD-SOCKETS issues
+    ** GET-PROTOCOL-BY-NAME had a significant memory leak.
+    ** GET-HOST-BY-NAME and GET-HOST-BY-ADDRESS small amounts of memory on
+       systems with getaddrinfo().
+    ** GET-HOST-BY-NAME and GET-HOST-BY-ADDRESS weren't thread or interrupt
+       safe outside systems with getaddrinfo().
+  * bug fix: on 64-bit systems setting the nursery size above 4Gb now works.
+    (lp#870868)
+
+changes in sbcl-1.0.53 relative to sbcl-1.0.52:
+  * enhancement: on 64-bit targets, in src/compiler/generic/early-vm.lisp,
+    the parameter n-fixnum-tag-bits may now vary from 1 (fixnum =
+    (signed-byte 63)) to 3 (fixnum = (signed-byte 61)) at build-time.
+  * enhancement: SB-EXT:WAIT-FOR allows waiting for arbitrary events.
+  * minor(?) incompatible(?) change: The default fixnum width on 64-bit
+    targets is now 63 bits (up from 61).
+  * enhancement: DESCRIBE now reports a lambda-list and source location
+    for complext setf-expanders.
+  * bug fix: PUSH, PUSHNEW, POP, REMF, INCF, DECF, DEFINE-MODIFY-MACRO,
+    GETF, LOGBITP, LDB, and MASK-FIELD now arrange for non-primary values
+    of multiple-valued places to be set to NIL, instead of signalling an
+    error (per a careful reading of CLHS 5.1.2.3).
+  * bug fix: floating-point traps now work on darwin/x86 and /x86-64.
+  * bug fix: repair crash in x86oid darwin signal handling emulation
+    when built with certain compilers.
+  * bug fix: SB-ROTATE-BYTE misrotated to the right when using constant
+    rotation arguments on x86-64. (lp#882151)
+  * bug fix: low-level control flow optimisations could result in bogus
+    code in functions with tail and non-tail calls to local functions on
+    x86oids. (lp#883500)
+  * bug fix: on SPARC/:sb-unicode, avoid crashing the assembler by trying
+    to emit literal characters > (code-char 4095), for comparisons with
+    constant characters.
+  * bug fix: ROOM reported only the low 32 bits of dynamic space usage
+    on 64 bit platforms. (lp#881445)
+  * bug fix: DELETE-FILE did not MERGE-PATHNAMES, making it possible to
+    delete the wrong file when using relative pathnames. (lp#882877)
+  * bug fix: optimized SEARCH of vectors-on-vectors mishandled zero-length
+    sequences and :KEY NIL.
+
+changes in sbcl-1.0.52 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)
+  * bug fix: redefining classes such that slots with custom allocation are
+    added or removed works again.
+
+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
@@ -7,12 +180,46 @@ changes relative to sbcl-1.0.49:
   * 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