1.0.37.8: add ATOMIC-DECF, fix WAIT-ON-SEMAPHORE-BUGLET
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index aee52cf..c0d524e 100644 (file)
--- a/NEWS
+++ b/NEWS
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
-changes relative to sbcl-1.0.32:
+changes relative to sbcl-1.0.36:
+  * new feature: added SB-THREAD:TRY-SEMAPHORE, a non-blocking variant of
+    SB-THREAD:WAIT-ON-SEMAPHORE.
+  * new feature: SB-EXT:ATOMIC-DECF has been added as a companion to
+    SB-EXT:ATOMIC-INCF.
+  * enhancement: *STANDARD-OUTPUT*, *STANDARD-INPUT*, and *ERROR-OUTPUT* are
+    now bivalent.
+  * enhancement: errors from NO-APPLICABLE-METHOD and
+    NO-PRIMARY-METHOD now have a RETRY restart available to retry the
+    generic function call.
+  * bug fix: correct restart text for the continuable error in MAKE-PACKAGE.
+  * bug fix: a rare case of startup-time page table corruption.
+  * bug fix: a semaphore with multiple waiters and some of them unwinding due
+    to timeouts could be left in an inconsistent state.
+
+changes in sbcl-1.0.37 relative to sbcl-1.0.36:
+  * enhancement: Backtrace from THROW to uncaught tag on x86oids now shows
+    stack frame thrown from.
+  * enhancement: WITH-COMPILATION-UNIT :POLICY allows restricting changes to
+    compiler optimization qualities inside dynamic extent of its body.
+  * enhancement: LOAD-LOGICAL-PATHNAME-TRANSLATIONS can be used to load
+    translations from SYS:SITE;<HOST>.TRANSLATIONS.NEWEST (thanks to Michael
+    Weber)
+  * optimization: SLOT-VALUE and (SETF SLOT-VALUE) take advantage of
+    constraint propgation, allowing better compilation eg. when used to
+    access structures with WITH-SLOTS. (lp#520366)
+  * optimization: the compiler is now more aware of the type of the underlying
+    storage vector for multidimensional simple arrays resulting in better code
+    for accessing such arrays.
+  * optimization: passing NIL as the environment argument to TYPEP no longer
+    inhibits optimizing it. (lp#309788)
+  * optimization: more efficient register usage when handling single-float
+    arguments on x86-64. (thanks to Lutz Euler)
+  * optimization: ADJUST-ARRAY and STABLE-SORT on vectors no longer use
+    pre-allocated temporary vectors. (lp#496249)
+  * bug fix: Fix compiler error involving MAKE-ARRAY and IF forms
+    in :INITIAL-CONTENTS. (lp#523612)
+  * bug fix: FUNCTION-LAMBDA-EXPRESSION lost declarations from interpreted
+    functions. (lp#524707)
+  * bug fix: bogus style warnings from certain (SETF SLOT-VALUE) and
+    WITH-SLOTS usages during compilation.
+  * bug fix: SB-C::CLASS-INFO now prints correctly. (lp#514762)
+  * enhancement: Can now build with ud2 instead of int3 as trap instruction on
+    all x86oid platforms with :UD2-BREAKPOINTS target feature.
+  * bug fix: Breakpoints now work when using ud2 instead of int3 as trap
+    instruction (tested on x86oid linux with ud2-breakpoints).
+  * bug fix: slam.sh now works on win32.
+  * bug fix: better differences of numeric types. (lp#309124)
+  * bug fix: arrays declared intersection and union types can have their
+    upgraded element type derived. (lp#316078)
+  * bug fix: SB-SPROF allocation profiling for all threads failed to profile
+    threads started during profiling. (lp#472499)
+  * bug fix: SB-INTROSPECT test failure when building without SB-EVAL feature.
+    (lp#535658)
+  * bug fix: SB-CLTL2:DECLARATION-INFORMATION did not take
+    SB-EXT:RESTRICT-COMPILER-POLICY into account. (lp#313337)
+  * bug fix: Comma inside a backquoted array or structure resulted in nonsense
+    values instead of signaling an error. (lp#309093)
+  * bug fix: Spurious unused variable warning in a DEFSTRUCT edge case.
+    (lp#528807)
+  * bug fix: More consistent warnings and notes for ignored DYNAMIC-EXTENT
+    declarations (lp#497321)
+  * bug fix: FIND and POSITION on lists did not check sequence bounds properly
+    and failed to detect circular lists (lp#452008)
+  * bug fix: leakage from ~/.asdf-install into the ASDf-INSTALL contrib build
+    (lp#538974)
+  * bug fix: LOOP OF-TYPE VECTOR compile-time error. (lp#540186)
+  * bug fix: SIGNAL SB-SYS:INTERACTIVE-INTERRUPT before entering the debugger
+    due to it, so that handlers can run.
+  * bug fix: reparsing undefined types if they have become defined since
+    parsing. (lp#309128)
+  * bug fix: missing &REST type in a proclamation for a function with both
+    &REST and &KEY in lambda-list caused miscompilation (lp#458354)
+  * bug fix: WHO-CALLS information for source-transformed and compiler-macro
+    expanded calls (lp#542174)
+  * bug fix: more accurate WHO-MACROEXPANDS information; point into rather
+    than just at toplevel form.
+
+changes in sbcl-1.0.36 relative to sbcl-1.0.35:
+  * new feature: SB-EXT:TYPEXPAND-1, SB-EXT:TYPEXPAND, and
+    SB-EXT:TYPEXPAND-ALL behave exactly like their MACROEXPAND counterparts
+    but work on type specifiers.
+  * new feature: SB-EXT:DEFINED-TYPE-NAME-P returns whether a symbol is known
+    to name a type specifier.
+  * new feature: SB-EXT:VALID-TYPE-SPECIFIER-P returns whether a given type
+    specifier is valid where "valid" basically means "would be accepted as
+    second argument of TYPEP".
+  * new feature: SB-INTROSPECT:FUNCTION-TYPE takes a function-designator and
+    returns the function's declared, or derived FTYPE.
+  * new feature: SB-POSIX now supports accessing the d_ino member of
+    dirent structures.  (Thanks to Philipp Marek and Pierre THEIRRY)
+  * new feature: The function SB-EXT:SEED-RANDOM-STATE has been added to
+    provide for seeding a RANDOM-STATE object with user-provided data or
+    from the operating system's PRNG.  Also, (MAKE-RANDOM-STATE T) will
+    attempt to initialize the returned state from the operating system's
+    PRNG where possible.  (Thanks to Fare Rideau; launchpad bug lp#310116)
+  * bug fix: Fix SB-SIMPLE-STREAMS:READ-VECTOR to correctly set the
+    FILE-POSITION of the stream being read from.  (launchpad bug lp#491087)
+  * bug fix: Fix grammar and style issues for the docstrings of
+    printer-related variables and functions.  (Thanks to mon_key; launchpad
+    bug lp#518696)
+  * bug fix: Fix compilation on chenygc platforms. Thanks to Larry Valkama and
+    Bruce O'Neel.
+  * bug fix: SB-THREAD:CONDITION-WAIT sometimes signaled a deadline twice 
+    in a row even though a handler defered the deadline long into the
+    future. (lp#512914)
+  * bug fix: A deadline handler was run without interrupts enabled for a
+    deadline signaled within SB-THREAD:CONDITION-WAIT. That could result
+    in infinitely spinning, non-killable threads.
+  * bug fix: Backtrace from internal-errors on x86-64 os x was truncated
+    before reaching the erring stack frame.
+  * bug fix: Fix type derivation for EXPT when raising a fixnum to a
+    real power.  (launchpad bug lp#525949)
+  * bug fix: Fix SB-EXT:GENERATION-* accessors for generations > 0 on
+    GENCGC platforms.  (launchpad bug lp#529014)
+  * bug fix: More robust checks for invalid DEFMETHOD argument specializers.
+    (launchpad bug lp#525916)
+  * bug fix: Fix building on Darwin when sysctl is not in the user's PATH.
+    (Thanks to Robert Goldman)
+
+changes in sbcl-1.0.35 relative to sbcl-1.0.34:
+  * optimization: ROUND with a single single-float or double-float argument
+    is properly inlined when possible.
+  * optimization: Slightly better code is generated for integer<->float
+    conversions and for single-float<->double-float conversions on x86-64.
+  * optimization: SB-ROTATE-BYTE:ROTATE-BYTE now generates more efficient
+    code for 32-bit and 64-bit rotations on x86-64.
+  * bug fix: The install script changes the ownership of directories as well
+    as files for contrib modules using asdf.  (thanks to Eugene Ossintsev;
+    launchpad bug lp#508485)
+  * bug fix: TRUNCATE with a single single-float or double-float argument is
+    properly inlined when possible.  (launchpad bug lp#489388)
+  * bug fix: Passing a rotation count of zero to SB-ROTATE-BYTE:ROTATE-BYTE
+    no longer causes a compiler error on x86 and ppc.
+  * bug fix: GET-MACRO-CHARACTER bogusly computed its second return value
+    always relative to *READTABLE* rather than the passed argument.
+
+changes in sbcl-1.0.34 relative to sbcl-1.0.33:
+  * minor incompatible change: threading support is now enabled by default
+    on x86[-64] Linux.
+  * enhancement: SB-INTROSPECT:DEFTYPE-LAMBDA-LIST now also works on most
+    builtin types.
+  * enhancement: Errors during compile-time-too processing (i.e. EVAL-WHEN)
+    are now caught and reported just like errors during macroexpansion.
+  * enhancement: SB-POSIX now provides access to tcdrain(), tcflow(),
+    tcflush(), tcgetsid(), and tcsendbreak(). (thanks to Jerry James)
+  * enhancement: ASDF systems can now depends on SB-QUEUE.
+  * fixes and improvements related to Unicode and external formats:
+    ** bug fix: error handling and restart usage in the ucs-2 external format 
+       has been improved.
+    ** there is now an implementation of the ucs-4 external format.
+    ** the utf-16 and utf-32 external formats are supported.
+  * bug fix: SB-POSIX wrapper for putenv no longer tries to put lisp strings
+    in the environment. setenv() and unsetenv() are also provided. (reported by
+    Fare Rideau; launchpad bug lp#460455)
+  * bug fix: LOAD of both .fasl and .FASL type files now forces fasl-style
+    loading. This ensures sensible errors for .FASL files from other
+    implementations on case-insensitive filesystems. (reported by Willem
+    Broekema; launchpad bug lp#489417)
+  * bug fix: #p"\\\\" can now be read without error on Win32.  (reported by
+    Willem Broekema; launchpad bug lp#489698).
+  * bug fix: some minor code rearrangements to reenable warning-free building
+    from CMUCL (reported by xme@gmx.net; launchpad bug lp#491104)
+  * bug fix: PRINT-OBJECT for clos instances respects the right margin when
+    pretty printing
+  * bug fix: FIND-PACKAGE & DEFPACKAGE were not thread safe. (reported by
+    Attila Lendvai)
+
+changes in sbcl-1.0.33 relative to sbcl-1.0.32:
+  * new port: support added for x86-64 NetBSD.  (thanks to Aymeric Vincent)
   * improvement: support O_LARGEFILE access to files larger than 2GB on
-    x86-64/linux.  (thanks to Daniel Janus; launchpad bug #453080)
+    x86-64/linux.  (thanks to Daniel Janus; launchpad bug lp#453080)
   * new feature: SB-INTROSPECT:WHO-SPECIALIZES-DIRECTLY to get a list of
     definitions for methods specializing on the passed class itself. 
   * new feature: SB-INTROSPECT:WHO-SPECIALIZES-GENERALLY to get a list of
     definitions for methods specializing on the passed class itself, or on
     subclasses of it.
+  * new build flag: :sb-xref-for-internals; SBCL will collect xref information
+    about itself during the build (e.g. for M-? in Slime), if this flag is
+    enabled in customize-target-features.lisp. This will increase the core
+    size by about 5-6mb, though, so it's mostly interesting to SBCL
+    developers.
+  * new feature: various GENCGC tuning parameters have been experimentally
+    documented and exported from SB-EXT. See documentation for details.
   * fixes and improvements related to Unicode and external formats:
     ** the Unicode character database has been upgraded to the
        Unicode 5.2 standard, giving names and properties to a number of new
@@ -19,7 +195,7 @@ changes relative to sbcl-1.0.32:
        (:<encoding> :replacement <character>) as an external format which will
        automatically substitute <character> on encoding or decoding errors for
        streams and for STRING-TO-OCTETS and its inverse.  (launchpad bug
-       #317072)
+       lp#317072)
     ** improvement: the file streams underlying the standard streams (such as
        *STANDARD-INPUT*, *TERMINAL-IO*) are opened with an external format 
        which uses the replacement mechanism to handle encoding errors,
@@ -30,9 +206,9 @@ changes relative to sbcl-1.0.32:
        between #xd800 and #xdfff).
     ** fix a typo preventing conversion of strings into octet vectors
        in the latin-2 encoding.  (reported by Attila Lendvai; launchpad bug
-       #471689)
+       lp#471689)
     ** fix a bug in the octet multibyte handling of decoding errors and the
-       USE-VALUE restart.  (launchpad bug #314939)
+       USE-VALUE restart.  (launchpad bug lp#314939)
     ** fix the bug underlying the expected failure in the FORCE-END-OF-FILE
        restart on fd-stream decoding errors.
     ** fix a bug in the ATTEMPT-RESYNC fd-stream decoding restart when the
@@ -44,23 +220,33 @@ changes relative to sbcl-1.0.32:
        streams after an UNREAD-CHAR.
   * enhancement: SB-INTROSPECT:ALLOCATION-INFORMATION also reports if the
     object is allocated in a boxed region of dynamic space.
+  * enhancement: SB-POSIX:FORK now signals an error if an attempt to
+    fork with multiple Lisp threads running is made, instead of going
+    ahead with unpredictable consequences. (reported by Leslie Polzer)
   * bug fix: uses of slot accessors on specialized method parameters within
     the bodies of SLOT-VALUE-USING-CLASS methods no longer triggers a type
     error while finalizing the class.  This fix may cause classes with slot
     accessors to be finalized later than previously.  (reported by Lars Rune
-    Nøstdal; launchpad bug #473699)
+    Nøstdal; launchpad bug lp#473699)
   * bug fix: restore buildability on the MIPS platform.  (regression from
     1.0.30.38, reported by Samium Gromoff)
   * bug fix: inspecting closures is less likely to fail with a type error.
   * bug fix: no timer starvation when setting the system clock back.
-    (launchpad bug #460283)
+    (launchpad bug lp#460283)
   * bug fix: WITH-STANDARD-IO-SYNTAX now binds *PRINT-PPRINT-DISPATCH* to the
     standard pprint dispatch table as specified by CLHS.
   * bug fix: give CLISP a hint about a type declaration to enable it to build
     the cross-compiler without warnings.  (thanks to Josh Elasser; launchpad
-    bug #396597)
+    bug lp#396597)
   * bug fix: correctly dump literal objects in defaulting forms of arglists.
-    (reported by Attila Lendvai; launchpad bug #310132)
+    (reported by Attila Lendvai; launchpad bug lp#310132)
+  * bug fix: distinguish in type specifiers between arrays that might be
+    complex and arrays that are definitely complex.  (launchpad bug lp#309129)
+  * bug fix: SUBTYPEP knows that the SYMBOL type is not SUBTYPEP the KEYWORD
+    type.  (reported by Levente Mészáros; launchpad bug lp#485972)
+  * bug fix: setting the value of a symbol-macro within a method in the
+    presence of type declarations works properly again.  (reported by Iban
+    Hatchondo; launchpad bug lp#485019)
 
 changes in sbcl-1.0.32 relative to sbcl-1.0.31:
   * optimization: faster FIND and POSITION on strings of unknown element type