News
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 2.6.1, 2026-01-26
Back to top- minor incompatible change: the never-documented :NO-CONSTRUCTOR-DEFUN
option to DEFSTRUCT is no longer supported.
- platform support:
- support for the LoongArch architecture has been added. (thanks to
ZiLong Wang)
- support for FreeBSD on 32-bit and 64-bit PowerPC platforms has been
added. (thanks to Piotr Kubaj)
- SB-ALIEN now supports passing and returning structures by value (rather
than by reference) in accordance with the platform ABIs, on x86-64 and
arm64 platforms. (#313202, thanks to Jesse Bouwman)
- wide compare-and-exchange is supported on the arm64 platform for
Armv8.1-A or later.
- bug fix: signal a DIVISION-BY-ZERO error in calls of (/ 0 0).
(#2137266, reported by khbit)
- bug fix: compiler infinite loop from previously-acceptable recursive
inline expansions. (#2137380, reported by Frode Fjeld)
- bug fix: unnormalized inequality constraints causing a compiler infinite
loop. (#2137422, reported by Jesse Bouwman)
- bug fix: compiler infinite loop from a deleted loop with an remnant
TAGBODY. (#2137493)
- bug fix: miscompilation of REDUCE #'APPEND with non-null INITIAL-VALUE and
:FROM-END NIL. (#2137736, reported by Vasily Postnicov)
- bug fix: encode XREF locations in a way that allows for higher form
numbers. (#2137765, reported by Jim White)
- bug fix: lookups of optimized memory movers fails when *PRINT-BASE* is not
10. (#2138812, reported by Robert Dodier)
- bug fix: CLRHASH on a hash table with weak keys should not corrupt the
table's index vector. (#2138965, reported by Patrick Poitras)
- bug fix: address a number of type derivation subtleties related to
floating point zeros.
- optimization: various combinations of arithmetic operations with variables
and constants are simplified to have fewer calls.
- optimization: elide full calls to CONJUGATE when its argument is known to
be of type REAL. (#2137354, thanks to Vasily Postnicov)
- optimization: the compiler knows more about the type and results of
ARRAY-DIMENSION.
- optimization: transform ARRAY-DIMENSIONS away on objects with array types
of known dimensions. (#2138581, thanks to Vasily Postnicov)
- optimization: (equal (array-dimensions a) (array-dimensions b)) does not
cons intermediate lists.
- optimization: (make-array (array-dimensions a)) does not cons a list.
New in version 2.6.0, 2025-12-28
Back to top- enhancement: the compiler will recognize certain combinations of
high-level optimizations as expressible by shorter machine instruction
sequences, documented in the manual under "Recognized idioms" in the
"Efficiency" section.
- enhancement: the SB-COVER code coverage tool can emit a report in a format
compatible with the LCOV open-source tool.
- bug fix: compiled code calling EXPT with constant integer exponent (or
1/2) and floating point base is more consistent with out-of-line EXPT.
(#1899969, #2136082)
- bug fix: fix SCALE-FLOAT on denormal floats. (#2000178, re-reported by
Barton Willis)
- bug fix: the system's test of constructing an ELF core is compatible with
storing code coverage information. (#2131956)
- bug fix: inconsistent result from SUBTYPEP on array types. (#2132250)
- bug fix: the SB-COVER reporting utilities can now annotate source files
containing array literals using #A(<dims> <eltype> . <contents>) syntax.
(#2134290)
- bug fix: compiler error resulting from losing some already-computed
derived type information. (#2136852)
- bug fix: miscompilation of DPB involving non-word-sized intermediate
results but a word-sized final result. (#2137028)
- bug fix: compiler error when asserting the result of a known non-list to
be of a type union involving a CONS with a given CAR. (#2137030)
- bug fix: miscompilation of DPB with constant byte positions above the
number of bits in a word. (#2137046)
- bug fix: miscompilation of PHASE with a negative zero argument.
(#2137068, #2137119)
- bug fix: failure to round-trip types involving positive and negative zeros
of different floating point representations. (#2137140)
- optimization: machine arithmetic can be used when bit-shifting bignum
inputs in a modular arithmetic context.
- optimization: extending an association list, including using backquote
notation, is recognized as ACONS and is potentially stack-allocatable.
- optimization: some intermediate copies of lists are elided for calls to
maybe-copying operations surrounded by a call to COPY-LIST.
- optimization: a number of comparison operations on rationals are
simplified where possible.
- optimization: a number of arithmetic operations recognize and elide double
negations or calls to ABS.
- optimization: tracking code with coverage information uses a weak vector
per fasl file, rather than a list of per-function weak pointers.
- optimization: REDUCE has been tweaked for better performance both on lists
and vectors.
- optimization: for simple-bit-vectors of the right alignment and length,
REVERSE will operate a word-at-a-time.
Older SBCL releases