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.3, 2024-03-29
Back to top- enhancement: when dumping debug information to fasl files, the system
respects the SOURCE_DATE_EPOCH environment variable (if set) as the latest
timestamp to be used.
- contributed module: the sb-perf contributed module, an interface
originally by Luke Gorrie to Linux's perf, is now included by default on
Linux. (Thanks to Philipp Marek)
- platform support:
- on Linux and BSD variants, timezone querying is now faster.
- Arm64/Darwin: allow configuring the system with a relocatable static
space.
- PPC64: allow configuring the system with fasteval.
- bug fix: erroneous transform of EQUALP on characters (#2055425)
- bug fix: float rounders (FTRUNCATE and related functions) handle minus
zero more consistently, returning minus zero as the primary value when
rounding to zero from a negative value.
- bug fix: type checks for (VECTOR T) were giving the wrong answer for
vectors displayed to simple multi-dimensional arrays. (reported by
_death)
- bug fix: do not transform away division by BIT when the BIT might still
include 0. (#2056184, reported by xizang)
- bug fix: various errors related to imperfections in the perfect hash
generator. (#2055794, #2056341)
- bug fix: respect declarations for symbol macros inside defmethod.
(#2056514, reported by Jonathan Braud)
- bug fix: failure to set structure slots to floats on Arm64. (#2058148,
reported by Bibek Panthi)
- optimization: improvements to the implementation of CASE.
- optimization: faster PARSE-INTEGER :radix 10/16 on word-sized integers.
- optimization: improvements to LOGBITP.
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. (#2012010, 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.
Older SBCL releases