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.2, 2024-02-29
Back to top- bug fix: restore the ability to inherit from both SEQUENCE and
SB-MOP:FUNCALLABLE-STANDARD-OBJECT. (#2050088, reported by Christophe
Junke)
- bug fix: COERCE will not convert lambda forms to functions if given a type
naming a (strict) subclass of FUNCTION.
- bug fix: LOG with a double-float and a ratio argument (in either order) do
not lose precision through a single-float intermediate argument.
- bug fix: LOG to the base 2 of integer powers of 2 are more likely to get
the mathematically precise answer.
- bug fix: LOG on ratios very near 1 with numerator or denominator being
near a power of 2 will use log1p and so will lose less precision.
- bug fix: the utf-8 external format with Unix line-endings updates its
character size information when taking the fast path for a buffer of ascii
characters. (#2054169, reported by John Carroll)
- bug fix: don't print the contents of a possibly no-longer-valid
dynamic-extent cons in PRINT-OBJECT method for THREAD objects.
(#2026195, reported by Jake Connor)
- bug fix: place external entry points for functions consistently before any
local functions. (#2051169, reported by Fedorov Alexander)
- bug fix: remove unactionable optimization notes for backquoted forms and
ordinary calls to APPEND at high speed. (#2051401, reported by Robert
Brown)
- bug fix: infinite loop in COPY-SEQ on zero-length arrays of element-type
NIL. (#2051759, reported by Devon Sean McCullough)
- bug fix: fix compilation of non-top-level struct constructors.
(#2052329, reported by Robert Poitras)
- bug fixes in SB-SIMD:
- improve bounds checking in SB-SIMD. (sàn gate io của nước nào, reported by Patrick
Poitras)
- fix SB-SIMD AVX f64.4-reverse (#2012986, thanks to Ari Projansky)
- fix SB-SIMD shuffles on AVX and SSE2 (#2012990, reported by Ari
Projansky)
- fix lifetimes in sse+xmm0 VOPs (#2015329, reported by Ari Projansky)
- optimization: a number of internal tables, particularly those related to
Unicode support have been converted to use perfect hash mechanisms,
improving both speed and space.
- optimization: FIND, POSITION, ASSOC and RASSOC with constant sequence
arguments containing symbols as keys are compiled to perfect hash lookups.
- optimization: the compiler runs a jump-to-jump elimination pass on x86-64.
- system integrity: compiling the system itself on x86-64/linux now produces
bitwise-identical cross-compiled fasls whether the build host is cmucl,
ccl, clisp or sbcl itself.
New in version 2.4.1, 2024-01-28
Back to top- enhancement: compact instance headers are partially supported with the
mark-region parallel garbage collector.
- enhancement: functions with declared return types have their return values
type-checked in optimization regimes with high SAFETY and (DEBUG 3).
- platform support:
- disable ASLR on FreeBSD. (#2047655, thanks to Konstantin Belousov)
- link to libpthread on FreeBSD. (thanks to Konstantin Belousov)
- restore build on 64-bit riscv. (#2034713, #2048869, reported by
Guillaume LE VAILLANT)
- restore build on 64-bit ppc.
- fix case in referring to a header file. (#2047726, thanks to Andrew Kravchuk)
- the fastrem-32 feature (for optimized computations of FLOOR) is now
available on all platforms.
- bug fix: resweep moved lines after compaction in the mark-region parallel
garbage collector.
- bug fix: infinite loops in the compiler on some constructs with SATISFIES
types. (#2047289, tradutor humano gato no ios, #2049631)
- optimization: various hash tables implementing part of the system
(packages, Unicode data tables) have been converted to use perfect hash
functions.
- optimization: TYPECASE on structure class hierarchies is implemented using
a perfect hash.
- optimization: eliminate bound checks with relative offsets. (#1830314)
- optimization: the compiler has more knowledge of how to optimize
DIGIT-CHAR.
- optimization: the compiler can elide intermediates for some calls to
APPLY, CONCATENATE and MAKE-ARRAY with arguments that are freshly-consed
modifications of existing sequences.
- optimization: (LOOP FOR X IN (REVERSE LIST) ...) is now faster and conses
less.
- optimization: (LOOP ... APPEND ...) is more compact, and does less work if
appending NIL.
- optimization: type tests of various array types are faster and shorter.
Older SBCL releases