sbcl-2.4.2 released

Christophe Rhodes <[email protected]> Thu, 29 Feb 2024 08:15:35 +0000
Newsgroups gmane.lisp.steel-bank.announce
Message-ID <[email protected]>
Dear all,

Happy Leap Day!  I have seized the moment in this extra day to release
sbcl-2.4.2; the version is tagged in git, and artifacts are on their way
around the world to mirrors near you.  Notable changes in this version
are summarized below.

Best wishes,

Christophe

changes in sbcl-2.4.2 relative to sbcl-2.4.1:
  * bug fix: restore the ability to inherit from both SEQUENCE and
    SB-MOP:FUNCALLABLE-STANDARD-OBJECT.  (lp#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.  (lp#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.
    (lp#2026195, reported by Jake Connor)
  * bug fix: place external entry points for functions consistently before any
    local functions.  (lp#2051169, reported by Fedorov Alexander)
  * bug fix: remove unactionable optimization notes for backquoted forms and
    ordinary calls to APPEND at high speed.  (lp#2051401, reported by Robert
    Brown)
  * bug fix: infinite loop in COPY-SEQ on zero-length arrays of element-type
    NIL.  (lp#2051759, reported by Devon Sean McCullough)
  * bug fix: fix compilation of non-top-level struct constructors.
    (lp#2052329, reported by Robert Poitras)
  * bug fixes in SB-SIMD:
    ** improve bounds checking in SB-SIMD.  (lp#2012010, reported by Patrick
       Poitras)
    ** fix SB-SIMD AVX f64.4-reverse (lp#2012986, thanks to Ari Projansky)
    ** fix SB-SIMD shuffles on AVX and SSE2 (lp#2012990, reported by Ari
       Projansky)
    ** fix lifetimes in sse+xmm0 VOPs (lp#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.