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.3, 2026-03-29
Back to top- minor incompatible change: (MAKE-ARRAY X :ELEMENT-TYPE 'UNDEFINED) now
signals an error, consistent with (UPGRADED-ARRAY-ELEMENT-TYPE
'UNDEFINED).
- platform support:
- fix disassembler on ppc for the MFLR and ISEL instructions
- the Lisp Return Address object (as part of the Lisp calling convention)
is no longer needed or supported on PPC, SPARC, MIPS or ARM. (This
also frees up a widetag slot previously held by return-pc-widetag)
- remove sensitivity to SBCL init files when building embedcore-sbcl.
(thanks to Robert Brown)
- add support for the ADCX and ADOX instructions on x86-64. (thanks to
Robert Smith)
- on PPC64, indicate the number of return values through flags, making
function calls four times faster.
- fix FFI involving int128 arguments on x86-64. (thanks to Andreas
Franke)
- fix build on OpenIndiana/x86-64. (thanks to Andreas Wacknitz)
- fix build on Haiku/x86-64.
- bug fix: improved stability of (particularly) the mark-region garbage
collector. (#2142711)
- bug fix: compiler type error in complicated expression involving BOOLE and
conditionals. (#2142949)
- bug fix: dotted lists involving symbols whose names begins with "DEF" are
not definitions. (#2143114, reported by Glenn Thompson)
- bug fix: STABLE-SORT miscompiled on declared union types involving both
LIST and VECTOR. (#2143163, reported by akater, thanks to Vasily
Postnicov)
- bug fix: more consistent results between compiler and interpreter in
numerical computations involving negative zeros. (#2143383)
- bug fix: USE-PACKAGE once again signals the correct error if an attempt is
made to use the KEYWORD package.
- bug fix: EQUALP on hash tables is no longer sensitive to irrelevant
aspects of the hash table.
- bug fix: SB-INTROSPECT:DEFTYPE-LAMBDA-LIST is more robust against types
defined in low debug situations.
- bug fix: ENSURE-GENERIC-FUNCTION ensures that the allocation of a generic
function does not happen in an arena. (Thanks to Andreas Franke)
- optimization: actually return early when we hit the cache for a
:MAKUNBOUND slot access. (thanks to John Mallery)
- optimization: streams opened with WITH-OPEN-FILE avoid having finalizers.
- optimization: improvement of COUNT on non-simple bit-vectors, or simple
ones with :START/:END arguments. (#2142062, thanks to Andrew Berkley)
- optimization: SIMD routines for checking strings for ASCII-only content
are more compact.
- optimization: the reader prefers base-string symbol-names of uninterned
symbols if possible.
- optimization: (length (remove-duplicates a s)) doesn't cons an
intermediate sequence.
- optimization: REMOVE-DUPLICATES uses hash-tables in more situations.
- optimization: UPGRADED-ARRAY-ELEMENT-TYPE is now faster.
New in version 2.6.2, 2026-02-27
Back to top- minor incompatible change: IMAGPART of a negative float returns 0.0, not
-0.0, consistent with a treatment of reals as complexes with an imaginary
part of strictly 0.0, but strictly incompatible with the requirement that
the IMAGPART equal (* 0 <float>)
- platform support:
- support for Windows on arm64 has been added. (thanks to Masatoshi SANO)
- various mismatches and bugs related to mismatches between Win32 and
Unix have been addressed.
- fixed an issue in unsigned 32-bit compare-and-swap on RISC-V (thanks to
Andreas Schwab) and LoongArch.
- fixed the integration of the system with the (lack of) floating point
traps on RISC-V. (thanks to Andreas Schwab)
- implemented the missing runtime breakpoint-related functions on RISC-V.
(#2130944)
- fix for assembling large relative jumps on MIPS.
- fix for GC safety of function calling on RISC-V and LoongArch.
(reported by Will Sinatra)
- support little-endian PPC64 to write cores in ELF format.
- fix for SB-POSIX:STAT on Windows with the UCRT C library.
- numerous other fixes related to architecture definitions, particularly
on RISC-V, but also on LoongArch, MIPS, PPC and PPC64, and ARM64.
- enhancement: support stack allocation of results for struct return values
from alien functions. (thanks to Jesse Bouwman)
- bug fix: rounding of floats converted from ratios. (#2139007)
- bug fix: SCALE-FLOAT and RATIONALIZE on denormals gave wrong answers, and
converting ratios to denormals is both more correct and faster.
- bug fix: the ~E FORMAT directive scales its float more correctly.
(#1854151, #2016431, #2125287, reported by Michał "phoe" Herda,
Robert Dodier and Francis Wright)
- bug fix: the error when failing to bind in DESTRUCTURING-BIND is now a
PROGRAM-ERROR.
- bug fix: the compiler respects INLINE and NOTINLINE declarations to
control compiler macros that apply to macros. (#1490345)
- bug fix: converting bignums to float will trap or return floating point
infinities as appropriate to the prevailing floating point modes.
- bug fix: division with a (COMPLEX FLOAT) result will be more consistent
with results involving negative zeros.
- bug fix: allow the full range of hash values in weak hash-tables with
user-defined hash functions. (#2141482, reported by Patrick Poitras)
- bug fix: malformed OPTIMIZE declarations no longer cause the compiler to
stop.
- bug fix: symbols with terminating macro characters in their names (or
non-terminating ones at the start) print with escapes when *PRINT-ESCAPE*
is true.
- bug fix: documentation issues, in README and the manual. (thanks to Carl
Gay)
- bug fix: compiler crash while transforming arithmetic operations on known
non-numeric inputs. (#2142297)
- bug fix: unsafe concurrent access to synchronized weak hash tables.
(#2142714)
- optimization: avoid consing when right-shifting a bignum gives a fixnum
result.
- optimization: various type tests in the presence of intersecting
constraints do less redundant work.
Older SBCL releases