Skip to content
changes in sbcl-2.3.8 relative to sbcl-2.3.7:
  * enhancement: a mark-region parallel garbage collector is available as a
    build-time option; it can be enabled by adding
      `--without-gencgc --with-mark-region-gc`
    to the build command line.  (Thanks to Hayley Patton)
  * enhancement: Stack allocation via DYNAMIC-EXTENT is now possible for
    conditionals even when not all branches are stack-allocatable. Previously
    all branches needed to be stack-allocatable for the otherwise-inaccessible
    subparts to get stack allocated.
  * platform support:
    ** on Mac OS X Sonoma, loading the memory image no longer fails.
       (lp#2029430, reported by cladur)
    ** on Darwin, we no longer reimplement nanosleep().
    ** on PPC64, undefined function errors now work.
    ** on ARM64/OpenBSD, enable the GCC TLS feature. (thanks to Sébastien
       Marie)
    ** when building the system, only display a reasonable amount of timing
       precision.  (thanks to Philipp Marek)
  * bug fix: handling of inlining functions compiled to return unboxed values
    no longer crashes the compiler.  (lp#2029020, reported by Pascal
    J. Bourguignon)
  * bug fix: the source location for code executed within a top-level
    (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) form is now more useful.
  * bug fix: address a race between user threads cancelling finalizers and the
    finalizer thread executing them.  (lp#2029306)
  * bug fix: complex division returns the same value when evaluated inline and
    out-of-line.  (lp#2030097)
  * bug fix: the pretty-printer no longer deletes syntactically-significant
    whitespace immediately preceding a newline.  (lp#1985814, reported by Mark
    David)
  * optimization: the compiler is more aware of the result type of the
    NUMERATOR function.
  * optimization: EQUAL and EQUALP compile to more efficient code when the two
    arguments are known to be of the same nullable type.
  * optimization: converting bignums to floats uses no intermediate memory.