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.6, 2026-06-28
Back to top- minor incompatible change: FDEFINITION now returns the outermost wrapper
(added e.g. by TRACE, PROFILE) like SYMBOL-FUNCTION. (#799533)
- minor incompatible change: in unsafe code, C strings with :EXTERNAL-FORMAT
:ASCII are copied directly as byte-sized quantities without checking
whether the top bit of the byte is set.
- platform support:
- fix the build on big-endian 64-bit PowerPC with ELFv2. (thanks to
Piotr Kubaj)
- move the static space address for macOS 27 on ARM64. (#2156072,
reported by Gary Palter)
- optimizations to SB-THREAD:BARRIER for ARM64. (thanks to Sahil Kang)
- fix a compiler crash in MULTIPLE-VALUE-LIST in argument forms on ARM64.
(#2155788, reported by Gary Palter)
- bug fix: TRACE no longer fails when trying to print a return value that
cannot be printed readably and *PRINT-READABLY* is true.
- optimization: the compiler is more precise in its type derivation of
COERCE given constraints on its inputs.
- optimization: the compiler is better able to derive the return types of
AREF and ELT.
- optimization: faster encoding and decoding of UTF-8 C strings.
- optimization: (length (intersection a b)) doesn't cons an intermediate
list.
- documentation: the manual now includes a section for SB-INTROSPECT, which
has also seen improvement in its documentation strings and comments.
- documentation: fixed many typesetting problems and typos in the user
manual.
New in version 2.6.5, 2026-05-29
Back to top- minor incompatible change: the condition signalled when an accessed slot
is missing from an object is no longer a TYPE-ERROR.
- minor incompatible change: the condition signalled when accessing an
uninitialized structure slot is no longer a TYPE-ERROR.
- minor incompatible change: the implementations of standardized functions
treating lists as sets, such as INTERSECTION and UNION, take more
advantage of the freedom to return the elements of the result in any
order.
- platform support:
- add low-level support for floating point state manipulation on
PPC64/FreeBSD. (thanks to Piotr Kubaj)
- improve the software emulation of displaced instructions on ARM64.
- restore building the system using the musl C library. (#2153432,
reported by Tom Gillespie)
- fix some SB-SIMD shifting instructions on AVX2. (#2152791, reported
by Willem Broekema)
- enhancement: definition sources for alien callbacks are now findable by
name in SB-INTROSPECT.
- bug fix: the SYMBOL restart for finding packages now actually performs a
non-local exit. (#2153092, reported by Zach Shaftel)
- bug fix: TYPEP on large disjoint numeric union types compiles faster using
fewer resources. (#2151818, reported by James McDonald)
- bug fix: strings of arbitrary size with fill-pointer set to 1 are
character designators. (reported by _death)
- bug fix: the KEEP-OLD restart established by ADD-PACKAGE-LOCAL-NICKNAME
keeps the old nickname instead of going ahead with the change (and the
restart report function no longer returns from ADD-PACKAGE-LOCAL-NICKNAME).
- bug fix: when EXPORT results in a conflict between symbols exported by
different used packages, the TAKE-NEW restart now shadowing-imports the
new symbol instead of doing nothing and leaving the package in an
inconsistent state.
- bug fix: the SB-EVAL interpreter checks program syntax more thoroughly.
- bug fix: compiler cross-reference data is decoded correctly for a
functional with more than one entry for a given name.
- bug fix: TYPE-ERRORs signalled by SBCL are more likely to have a DATUM
that is not of the condition's EXPECTED-TYPE.
- bug fix: the code walker no longer uses the stack to walk PROGN bodies.
- optimization: in various situations, INTERSECTION and UNION will use
hash-tables to perform the operation more quickly.
Older SBCL releases