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
- 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
- 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.