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.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))
New in version 2.4.10, 2024-10-30
Back to top- minor incompatible change: SB-POSIX::POSIX-FORK is no longer exported from
SB-POSIX. (The interface function, SB-POSIX:FORK, remains exported).
- platform support:
- fix bugs in instruction encoding on RISC-V; (reported by Guillaume Le
Vaillant)
- fix the location of the linkage-table comment in disassembly on 64-bit
powerpc;
- elide allocation of empty number stack frames on arm64;
- fix crash on x86 platforms in compiling array dereferencing with
computed offsets with negative intermediate results. (#2084943)
- enhancement: the error message from standard object slot typecheck
functions in optimized constructors is clearer about the context of the
failed type check.
- enhancement: BREAK is no longer tail-called, even when in tail position.
- enhancement: on arm64 and x86-64, specialized entry points for functions
known to take or return fixed numbers of double floats are generated and
can be automatically called without boxing intermediate floats.
- bug fix: RUN-PROGRAM no longer leaks memory by referencing otherwise
unreachable stream instances.
- bug fix: exporting or unexporting symbols during package iteration no
longer causes any symbol to be visited more times than expected.
- bug fix: DISASSEMBLE preserves the comment marker across line-breaks for
long function or segment names. (#1889456, thanks to Fedorov Alexander)
- bug fix: the compiler no longer loops infinitely trying to compile
NOTINLINE calls to known functions with source transform definitions.
(#2085451, reported by Fedorov Alexander)
Older SBCL releases