New SBCL versions are usually released at the end of each
month: check the Sourceforge File List to see the current version. The new features of the two most recent SBCL releases are listed below.
Please see the complete news page for details on all historical SBCL releases.
New in version 1.2.14Back to top
- minor incompatible change: The name of a compiled anonymous lambda
as returned by the third value of FUNCTION-LAMBDA-EXPRESSION can have
a lambda-list-like list following the introductory LAMBDA that is not
in general a syntactically valid lambda list. Specifically, it won't
retain default values, supplied-p variables, or &KEY or &AUX bindings.
- enhancement: DESTRUCTURING-BIND has been totally reimplemented from
scratch to address a handful of performance and correctness issues.
Some minor behavioral differences exist regarding order of evaluation
of default forms for unsupplied &OPTIONAL and &KEY arguments
when nested destructuring patterns are involved.
(#707556, #707573, #707578, #708051)
- enhancement: DEFCONSTANT and DEFSTRUCT respect package locks. (#1186238,
- enhancement: sb-unicode:normalize-string has a new optional argument,
FILTER, a callback which controls which decomposed characters are
collected. Useful for stripping away diacritics more efficiently.
- bug fix: (TYPE-OF ARRAY) for a non-simple array is subject to change
after a call of ADJUST-ARRAY. (#1333731)
- bug fix: Dynamic-extent allocation with a loop between allocating a value
and the start of its environment no longer discards the allocated data
when the loop is taken. (#1472785)
- bug fix: Variable-reference elimination no longer generates incorrect code
under certain circumstances. (#1446891)
- bug fix: variables with EQL types are no longer treated as constants by
VOPs, which caused problems with closures being allocated for such
variables, but they remained unused. (#1390149)
- bug fix: Windows installer generates registry key name
Older SBCL releases
New in version 1.2.13Back to top
- incompatible change: on success, TRY-SEMAPHORE and WAIT-ON-SEMAPHORE
return the new count
- enhancement: WAIT-ON-SEMAPHORE accepts a decrement parameter
- enhancement: JOIN-THREAD allows distinguishing timeout vs. abort in all
- enhancement: On Windows DBG_PRINTEXCEPTION_C is handled and its message is
- bug-fix: TRUENAME works properly on broken symlinks presented as
- bug fix: Inlined DPB and DEPOSIT-FIELD don't interfere with left-to-right
order of argument evaluation. (#1458190)
- bug fix: (SETF (LDB (BYTE 1 2 JUNK) X) 0) is rightly rejected.
- bug fix: DEFSETF lambda lists should not permit argument destructuring.
- bug fix: calls to (SETF SLOT-VALUE) on a missing slot would in certain
situations incorrectly return the result of a SLOT-MISSING method
instead of always returning the new value. (#1460381)
- bug fix: a DEFMACRO occurring not at toplevel and capturing parts of
its lexical environment (thus being a closure) caused expressions
involving the macro name to cause corruption in the pretty-printer
due to faulty introspection of the lambda list of a closure.
- bug fix: out of line MAP/MAP-INTO check that the results produced by the
function are of the matching sequence type. (#1459581)
- bug fix: pretty-printing of '(LET `((,X ,Y)) :B) is handled correctly.