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.1, 2025-01-31
Back to top- minor incompatible change: SBCL now reveals details of its COMPLEX
representations through UPGRADED-COMPLEX-PART-TYPE, rather than hiding
them.
- minor incompatible change: the compiler will warn on the use of a
SATISFIES type with an undefined function. (#576608, reported by Roman
Marynchak)
- minor incompatible change: (room t) now counts the space taken by the
internals of hash-tables and CLOS instances.
- platform support
- fixes to the included version of ASDF, and to sockets functions, for
the Haiku operating system. (thanks to Alexandru Popa)
- add support for CAS (compare-and-swap) on SAPs for arm64, x86-64 and
(partially) RISC-V. (#1894057, reported by Yukari Hafner)
- the system is now consistent with 64-bit time_t on 32-bit linux
platforms. (#2063340, reported by Peter van Eynde)
- restore building on 32-bit ARM with newer gcc versions. (#1839783,
reported by Sébastien Villemot)
- fix large stack allocation on 64-bit Windows.
- CL portability fixes to the definitions of certain compiler structures,
detected by CLISP. (#2064301, #2064312, thanks to Robert Brown)
- bug fix: a misplaced assertion regarding weak hash tables would trigger
if a garbage collection hit at just the wrong time. (#2096998)
- bug fix: structure BOA constructors with &REST arguments no longer cause
structure slots named NIL or T to be unconditionally initialized with the
values NIL and T respectively.
- bug fix: structure BOA constructors without values for some slots no
longer cause compilation errors for initforms that are not a single
variable.
- bug fix: sequence functions handle :TEST and :TEST-NOT both being given
uniformly. (#309143)
- bug fix: the type system is better equipped to handle complicated unions
of numeric types. (#308937, #1694839, #1734959, #2073544)
- bug fix: misoptimization of VALUES-LIST in the presence of intervening
stack operations. (reported by haruhi.s)
- bug fix: apply the limit to inline expansions more selectively.
(#2092518, reported by Andrew Kravchuk)
- bug fix: compiler-detected type mismatches are reported even given the
presence of inlined functions. (#2092613, reported by Vasily Postnicov)
- bug fix: improved type error detection for inlined array construction forms.
(#2092889, reported by Vasily Postnicov)
- bug fix: accesses to multidimensional arrays are now checked based on the
(internal) INSERT-ARRAY-BOUNDS-CHECKS declaration, as with one-dimensional
arrays. (#2095155, thanks to Vasily Postnicov)
- bug fix: sb-bsd-sockets:socket-connect handles EINTR caused by GC signals.
New in version 2.5.0, 2024-12-29
Back to top- platform support:
- improve support for the Haiku operating system. (thanks to Al Hoang,
Estevan Castilho and Alexandru Popa)
- bug fix: generic functions with a large number of required arguments, with
methods with specializations on exactly STANDARD-OBJECT or
FUNCALLABLE-STANDARD-OBJECT, test the types of their arguments more
correctly.
- bug fix: defining a method on SB-MOP:SLOT-VALUE-USING-CLASS where the
object argument is specialized to a CONDITION-CLASS no longer leads to an
internal error.
- bug fix: the dissassembler on x86-64 correctly disassembles the vcvttpd2dq
AVX2 instruction.
- bug fix: ensure that the dispatch function for generic functions is
compiled with a known compilation policy. (reported by Neil Goldman)
- bug fix: the compiler retains less intermediate data between COMPILE-FILE
forms. (#1557590, reported by andy arvid)
- bug fix: the (invalid) :INITARGS slot option keyword is reported on.
(#1887014, reported by Wayne Rittiman, Jr)
- bug fix: the SB-SIMD s16.8-maddubs accepts packs of 16 8-bit quantities,
not 8 16-bit quantities. (#2069538, reported by Georgios Makris)
- bug fix: compiling a TYPECASE to dispatch between many user-defined
classes no longer takes exponential time. (#2089311, reported by Tomas
Hlavaty)
- bug fix: derive the new type for a variable when setting it to a function
of its previous version. (#2090997, reported by Vasily Postnicov)
- bug fix: properly clear compiler annotations on variables set to new
values involving functions of themselves. (#2090967, reported by Kirill
A. Korinskiy)
- bug fix: handle BY in LOOP forms involving iteration on the reverse of a
list. (#2091210, reported by James Kalenius)
- bug fix: fix miscompilation of IF where the consequent and alternative
would have the same value but for an intervening side-effect.
(#2092588, reported by JA)
- optimization: SLOT-VALUE and (SETF SLOT-VALUE) on method arguments
specialized to structure classes are compiled to the corresponding
structure accessor.
- optimization: calls to SLOT-VALUE (and related operators) on method
arguments specialized to instances of SB-MOP:FUNCALLABLE-STANDARD-CLASS
are optimized similarly to calls on method arguments specialized to
instances of STANDARD-CLASS.
- optimization: (coerce (reverse list) 'vector) doesn't cons a list.
- optimization: (replace vector (reverse list)) doesn't cons a list.
Older SBCL releases