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.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.
New in version 2.5.11, 2025-11-30
Back to top- incompatible change: the compiler's internal representation of "source
paths" for unquoted forms within backquotes has changed. Other developer
tools using this representation, including callers of some exported
SB-INTROSPECT functions, will misreport the location of signalled
conditions and/or definitions in top-level forms including backquotes and
commas.
- minor incompatible change: undefined syntaxes following
*READ-BASE*-related reader macros (such as #B, #O, #X, #R) now signal
reader errors.
- minor incompatible change: the convenience reader syntax pkg::(...) no
longer triggers package locks for the PKG package.
- minor incompatible change: building with the SB-DEVEL feature inhibits
identical code folding at the end of the build of the SBCL system itself.
- enhancement: improve the compiler's knowledge of the dimensions of the
result of MAKE-ARRAY. (#2130477, thanks to Vasily Postnicov)
- enhancement: the SB-COVER contributed module has been made substantially
more robust; collecting coverage no longer inhibits various CLOS
optimizations. (For SBCL developers, it is now capable of reporting on
the coverage of the SBCL system itself, provided it is built with the new
:SB-COVER-FOR-INTERNALS build-time feature.)
- bug fix: REQUIREing the SB-MD5 contributed module no longer installs a
compiler optimization policy restriction of SPACE being at least 1.
- bug fix: don't miscompute the sizes of garbage collector data structures
for running with dynamic space heap sizes above 128GiB.
- bug fix: ENOUGH-NAMESTRING when the pathname and defaults arguments are
both logical pathnames with the same host returns a shorter string than
previously.
- bug fix: the compiler retains fewer temporary data structures when
compiling code with coverage data.
- bug fix: requiring the SB-MD5 contrib module no longer installs a
restriction on the SPACE optimization quality.
- bug fix: internal compiler floating point error while compiling certain calls
to CEILING. (#2132231)
- bug fix: miscompilation of TYPEP on intersections of types including
rational ranges. (#2132207)
- bug fix: miscompilation of MISMATCH from insufficiently cautious type
derivation. (#2132187)
- bug fix: internal compiler error while compiling ASH from an incorrect
consistency check. (#2132156)
- bug fix: internal compiler error from missing constant-folding stub for
internal function. (#2132126)
- bug fix: miscompilation of GET-PROPERTIES at low SAFETY optimization
qualities. (#2131985)
- bug fix: internal compiler error while generating code for multiplications
of fixnums where the result is also asserted to be a fixnum. (#2131894)
- bug fix: the asserted real range of ATANH was incorrectly stated as
[-1,1]. (#2131711)
- bug fix: incorrect type error resulting from wrong type derivation of
REDUCE #'LOGIOR. (#2131699)
- bug fix: specialized XEPs should not be generated during
block-compilation or interpretation. (#2131118)
- bug fix: fix a wrong compiler transform for MAKE-ARRAY leading to
miscompilation. (#2131048)
- bug fix: miscompilation of type checks of (UNSIGNED-BYTE <X>) for large
<X>. (#2130028)
- bug fix: it is now possible to inline functions containing SPECIAL
declarations on symbols in locked packages. (#2129827, reported by
Scott L. Burson)
- bug fix: various internal compiler errors. (#2132022, #2129649)
- bug fix: various wrong results and inconsistencies from SUBTYPEP on ARRAY
types. (#2130374, #2130424, #2130441, #2130457, #2130508,
#2130518, #2130526, #2130542, #2130588, #2130950, #2131079,
#2131149, #2131179, #2131186, #2131271, #2131618, #2130262)
- optimization: LOGTEST participates in compiler transforms related to
modular (machine-sized) arithmetic.
- optimization: more arithmetic combinations simplifications.
- optimization: (car (list a)) doesn't allocate a list.
Older SBCL releases