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.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.
New in version 2.6.4, 2026-04-29
Back to top- minor incompatible change: when DEFSETF is called on a name that was
previously used as a (presumed) call to a function, it issues a single
STYLE-WARNING (like DEFMACRO).
- minor incompatible change: SB-EXT:PROCESS-KILL no longer supports the
:PTY-PROCESS-GROUP option (which was never correctly implemented).
- minor incompatible change: the :INITIAL-OFFSET argument for typed
DEFSTRUCT, if given, no longer accepts NIL.
- platform support:
- more likely to support 32-bit linux's struct timeval with 64-bit time_t.
- the runtime's main function is now defined as a weak symbol for
platform/compiler combinations that support it.
- on Windows, individual empty arguments for RUN-PROGRAM are escaped.
- add input/output speed fields for our definition of the termios
structure, addressing a crash in sb-posix:tcsetattr on OpenBSD.
(#2150499, thanks to Robert Palm)
- bug fix: address infinite loops in the compiler. (#2144911, #2148056)
- bug fix: if an FTYPE has been proclaimed for a function, don't mix NULL
with explicitly-typed keyword arguments. (#2147050, reported by Vasily
Postnicov)
- bug fix: compiler error from treatment of unused results. (#2147383)
- bug fix: compiler error from invalid dimension arguments to MAKE-ARRAY.
(#2147384)
- bug fix: compiler error arising from continuing to optimize deleted nodes.
(#2147385)
- bug fix: make sure linkage-table alien entries have base-string names.
(#2147646, thanks to Seokjun Lee)
- bug fix: make sure CHECK-TYPE's expansion does not include internal
non-externalizable objects. (#2148777, reported by Willem Broekema)
- bug fix: alien calls involving passing structs by value are less likely to
read or write wrong areas of memory. (thanks to Jesse Bouwman)
- bug fix: lowering EQUALP to EQUAL handles constant dotted lists correctly.
- bug fix: a number of standard functions perform more explicit type checks
on their arguments.
- bug fix: only return the primary value from (LIST*/APPEND/NCONC <values>).
- bug fix: correct treatment of escaped closing brackets in pathname
patterns.
- bug fix: escape dots in pathnames more correctly.
- bug fix: the hash set for function names will incur collisions less
frequently. (reported by Andrew Wolven)
- bug fix: the system is now capable of expressing select() on the whole
range of possible file descriptors.
- optimization: compiler optimizations for (REPLACE vector list) now apply
given :START1 and/or :END1 keyword arguments.
- optimization: CONCATENATE is faster for concatenating list arguments to a
VECTOR.
- optimization: ROUND for integers is more compact.
- optimization: on 64-bit x86, implement TRUNCATE using the Lemire, Kaser,
Kurz transform.
Older SBCL releases