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.5.10, 2025-10-27
Back to top- platform support:
- handling of "./" and "../" in pathname functions on Windows is improved.
(#2125908, reported by khbit)
- use x29 for the control frame pointer on arm64, improving backtrace
tooling.
- provide a plugin to lldb to display backtraces (contrib/lldb_bt.py).
- an experimental option for performing GC without interrupting and
stopping foreign function calls. Enabled via --with-nonstop-foreign-call
(for arm64, x86-64 (outside of Windows, where that's already the case.))
- bug fix: some interactions between TWO-WAY-STREAM (and ECHO-STREAM) and
user-defined streams have been cleaned up.
- bug fix: the SB-COVER contributed module can now annotate source files
containing COMPLEX literals. (A number of other more minor cosmetic
issues have also been fixed).
- bug fix: compiler crash from reoptimizing with some stale type information.
(#2125944)
- optimization: SLOT-VALUE calls with known slot-name on values which are of
type (OR NULL <STRUCT>) are transformed to a null check and a structure
access.
- optimization: the compiler will apply constraints to the result of calling
RANDOM. (#2126978, thanks to Vasily Postnicov)
- optimization: the compiler will perform type derivation on CL:APPLY called
with a known function.
- optimization: fusion of type checking and move of 64-bit integers is
enabled on arm64 and x86-64.
- optimization: allocation fusion for (PUSH (CONS A B) LIST) on x86-64.
- optimization: improvements of type derivation for float rounding operations.
- optimization: constant folding when one of the arguments is
(if v constant1 constant2)
New in version 2.5.9, 2025-09-29
Back to top- minor incompatible change: remove (SETF SB-EXT:POSIX-GETENV), which only
ever existed as an operator in SBCL on Windows.
- minor incompatible change: (LOG -0.0) now returns
SINGLE-FLOAT-NEGATIVE-INFINITY, more consistently with IEEE 754.
- minor incompatible change: (EXPT 0.0 0.0) now returns 1.0, rather than
signalling an error.
- platform support
- restore functionality on NetBSD. (thanks to Masatoshi SANO)
- fix building SBCL as a shared library on ARM64. (#2122059, reported
by Guillaume LE VAILLANT)
- optimization: TYPEP with array types does less work in many cases.
- optimization: COMPLEMENT on a known function can be transformed away in
more cases.
- optimization: calls to local functions with &REST arguments can be
optimized in more cases.
- optimization: bound checks can be eliminated in ROW-MAJOR-AREF based on
constraints relating the index to the available array elements.
(#2121253, thanks to Vasily Postnicov)
- optimization: function type declarations no longer inhibit inlining local
functions. (#2121351, reported by kbhit)
- optimization: bulk movement of memory in the system is implemented with
less overhead around memmove().
- optimization: MAKE-ARRAY with dimensions coming from ARRAY-DIMENSIONS on
an array with known dimensions avoids consing an intermediate dimensions
list.
- optimization: a number of arithmetic operators and relations in
combination with some constant arguments do partial expression
simplification at compile-time. (#2122063 for %NEGATE thanks to Vasily
Postnicov)
Older SBCL releases