Skip to content
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.