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.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.
New in version 2.4.11, 2024-11-30
Back to top- enhancement: define SB-EXT:*DEFAULT-SOURCE-EXTERNAL-FORMAT* as the
external format for reading source files (for direct use in LOAD and
COMPILE-FILE). On Windows, this defaults to an external format with CRLF
line-endings. (#720517, reported by Mark David)
- minor incompatible change: the documentation of
SB-SEQUENCE:MAKE-SEQUENCE-LIKE has been altered to match its
implementation regarding the (un)initialization of the sequence if neither
:INITIAL-CONTENTS nor :INITIAL-ELEMENT is provided.
- minor incompatible change: the outputs from SB-GROVEL no longer contain
calls to SB-GROVEL::DEFINE-FOREIGN-ROUTINE, but call
SB-ALIEN:DEFINE-ALIEN-ROUTINE directly; the definitions of some other
SB-GROVEL utilities has also changed.
- platform support:
- The system is more likely to build with the musl C library. (thanks to
Masatoshi SANO)
- It is possible to build 32-bit binaries on NetBSD/x86-64 systems.
(thanks to Masatoshi SANO)
- Stale big-endian ARM code in callbacks is no longer present.
(#2087866, reported by Rongcui Dong)
- Correct the encoding of the VPSHUFD AVX2 instruction. (reported by
Dmitry Ignatiev)
- Implement the PINSRQ SSE instruction and provide access to it in
SB-SIMD.
- Fix some signed/unsigned and 32-bit issues in the runtime leading to
problems with large --dynamic-space-size. (#2087986)
- bug fix: cross-reference information about structure accessors is
preserved when compilation policy requires it.
- bug fix: changing &ALLOW-OTHER-KEYS in a generic function's lambda list
needs to invalidate the effective methods cache. (reported by Robert
Strandh)
- bug fix: calling DISASSEMBLE on a method-function provides a more useful
disassembly.
- bug fix: PROCESS-CLOSE no longer leaks a zombie process.
- bug fix: interaction between SYMBOL-MACROLET and SPECIAL declarations is
handled more correctly in the code walker. (#1053198)
- bug fix: better scaling when compiling large numbers of calls to local
functions. (#1379661, reported by 3b and Burton Samograd)
- bug fix: allow the compiler to approximate types involving large bignums
or ratios with large numerator or denominator. (#2085637)
- bug fix: miscompilation of type tests involving STRUCTURE-OBJECT.
(#2088417)
- optimization: CONCATENATE with consing arguments can elide some of the
intermediate consing.
- optimization: the implementations of various external-formats have been
sped up.
- optimization: elide %SAP-ALIEN calls if all uses dereference the resulting
ALIEN object.
- optimization: faster (expt integer integer) when computing fixnum results.
- optimization: (ash unknown-integer right) can use modular arithmetic.
- optimization: (apply x ... list) avoids consing intermediate lists in more
situations.
- optimizations for arm64, x86-64:
- AREF on non-simple arrays with known element type is faster, along with
uses such as LOOP ACROSS, VECTOR-PUSH/POP/EXTEND.
- SIMD variants for POSITION for strings, 8 and 32 bit integer arrays.
- faster overflow checking for (the fixnum (+ fixnum fixnum))
Older SBCL releases