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.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)
New in version 2.5.8, 2025-08-29
Back to top- minor incompatible change: SB-THREAD:MAIN-THREAD-P can only be applied to
threads, not arbitrary lisp objects.
- minor incompatible change: the instruction-combining (peephole)
optimization pass does not run if COMPILATION-SPEED has a higher value
than SPEED.
- platform support:
- on arm64, provide better backtraces in the statistical profiler's
reporting, along with better detection of assembly routines, local
functions and callers of foreign code.
- on ppc64le, make --dynamic-space-size behave as documented.
(#2121255)
- on x86-64, handle more cases in the ALU+TEST peephole optimization.
- bug fix: for file-streams with :DIRECTION :IO, input and output file
positions should no longer get out of sync. (#1600610, reported by
Guillaume le Vaillant, test cases by Brent Benson)
- bug fix: an infinite loop in SUBTYPEP for types involving negations of
CONS of specialized ARRAY types. (#2114755)
- bug fix: miscompilation of a CASE form with small numeric keys.
(#2119035)
- bug fix: anonymous alien structs definitions are deduplicated, making it
harder to overflow internal data structures. (#2114943, reported by
Brooke Tilley)
- bug fix: allow ALU+TEST peephole optimizations to fire on x86-64.
(#2120547, reported by Christoph Breitkopf)
- bug fix: miscompilation of a LOOP form with rational arithmetic on
variables involved in termination tests. (#2121178, reported by 3b)
- bug fix: the compiler is better able to associate some forms in a
macroexpanion with the original sources.
- optimization: improve array construction with LIST or SEQUENCE
:INITIAL-CONTENTS.
Older SBCL releases