This week, from Monday June 29th to Sunday July 5th, is SBCL's monthly
freeze period in preparation for the next release: development is
mostly limited to fixing regressions, and documentation touchups.
We greatly appreciate any time you can spend testing the release
candidates during this week. Please report any problems either using
the normal mailing lists, Launchpad or the no-subscription-required
sbcl-bugs mailing list.
Current CVS HEAD is 220.127.116.11.rc1, also available as a tar-archive
from the Sourceforge file release area:
Previously these freezes have been advertised only on sbcl-devel, but
in hopes of enticing more SBCL users to test their applications with
the new version prior the release we now advertise them on
sbcl-announce and sbcl-help as well.
-- Nikodemus Siivola (Summary of changes below.)
changes in sbcl-18.104.22.168.rc1 relative to sbcl-1.0.29:
* minor incompatible change: SB-THREAD:JOIN-THREAD-ERROR-THREAD and
SB-THREAD:INTERRUPT-THREAD-ERROR-THREAD have been deprecated in favor
* new contrib module: SB-QUEUE provides thread-safe lockless FIFO queues.
* new feature: docstrings for local and anonymous functions are no longer
discarded. (thanks to Leslie Polzer)
* new feature: SB-THREAD:SYMBOL-VALUE-IN-THREAD provides access to symbol
values in other threads.
* new feature: SB-INTROSPECT:ALLOCATION-INFORMATION provides information
about object allocation.
* optimization: division of a real float by a complex float is implemented
with a specialised code sequence.
* optimization: MAKE-INSTANCE with non-constant class-argument but constant
keywords is an order of magnitude faster.
* optimization: MAKE-INSTANCE with constant keyword arguments is x2-4 faster
in the presence of :AROUND or non-standard primary INITIALIZE-INSTANCE
methods, and similarly for non-standard metaclass classes as long as there
are no methods additional on MAKE-INSTANCE.
* optimization: more efficient type-checks for FIXNUMs when the value
is known to be a signed word on x86 and x86-64.
* optimization: compiler now optimizes (EXPT -1 INTEGER), (EXPT -1.0 INTEGER),
and (EXPT -1.0d0 INTEGER) into an ODDP test. (thanks to Stas Boukarev and
* optimization: compiler is smarter about delegating argument type checks to
* optimization: several character functions are now compiled somewhat more
efficiently. (reported by Lynn Quam)
* optimization: the compiler now derives simple types for LOAD-VALUE-FORMs.
* optimization: constant double and single floats are stored in native
unboxed format on x86[-64].
* optimization: smarter code for arithmetic operations with constant floats,
complex floats, or integers on x86[-64].
* optimization: smarter code for conjugate/multiplication of float complexes
and abs/negate of floats on x86-64.
* optimization: more efficient complex float and real float operations on
* improvement: DESCRIBE output has been reworked to be easier to read and
contains more pertinent information.
* improvement: complex float division is slightly more stable.
* improvement: less unsafe constant folding in floating point arithmetic,
especially for mixed complex/real -float operations.
* improvement: failure to provide requested stack allocation compiler notes
provided in all cases (requested stack allocation not happening without a
note being issued is now considered a bug.)
* bug fix: SB-POSIX exports the documented types and functions
FILE-DESCRIPTOR and FILENAME, and also the corresponding -DESCRIPTOR
types. (reported by "abhi")
* bug fix: on 64 bit platforms FILL worked incorrectly on arrays with
upgraded element type (COMPLEX SINGLE-FLOAT), regression from 22.214.171.124.
(thanks to Paul Khuong)
* bug fix: looping around HANDLER-CASE could silently consume stack space
on each iteration. (reported by "foobar")
* bug fix: better error signalling when calls to functions seeking elements
from lists (eg. ADJOIN) are compiled with both :TEST and :TEST-NOT.
(reported by Tobias Rittweiler)
* bug fix: regressions in DIRECTORY from 126.96.36.199: pattern matching of
directory components now works as it used to. (various prolems reported by
Michael Becker, Gabriel Dos Reis, Cyrus Harmon, and Harald Hanche-Olsen)
* bug fix: :PTY option in RUN-PROGRAM was broken with stream arguments.
(reported by Elliot Slaughter, thanks to Stas Boukarev)
* bug fix: bogus undefined variable warnings from fopcompiled references to
global variables. (thanks to Lars Rune Nøstdal)
* bug fix: foreign function names should now appear in backtraces on
FC6 as well. (reported by Tomasz Skutnik and obias Rautenkranz)
* bug fix: SETF compiler macro documentation strings are not discarded
* bug fix: GENTEMP is now unaffected by pretty printer dispatch table.
(thanks to Alex Plotnick)
* bug fix: SLEEP accepts large integer arguments, truncating them to
SIGNED-WORD on the assumption that sleeping for 68 years is sufficient
for anyone. (reported by Leslie Polzer, thanks to Stas Boukarev)
* bug fix: compiler notes for expensive slot type checks could be emitted
at runtime MAKE-INSTANCE calls. (reported by Samium Gromoff)