sbcl-2.3.9 released

Christophe Rhodes <[email protected]> Thu, 28 Sep 2023 08:19:37 +0100
Newsgroups gmane.lisp.steel-bank.announce
Message-ID <[email protected]>
Dear all,

I've taken the steps needed to tag and release SBCL 2.3.9; some
artifacts are available on Sourceforge, and more may come in as time
goes on.  The major changes are listed below, and it's perhaps worth
calling out explicitly that the compiler will stack-allocate more things
bound to variables declared DYNAMIC-EXTENT, which has the potential to
cause crashes if those declarations are not in fact true.  Not mentioned
in the notes, the parallel mark-region garbage collector has seen some
minor fixes, and experience reports using this collector are still very
welcome.

Best wishes,

Christophe

changes in sbcl-2.3.9 relative to sbcl-2.3.8:
  * enhancement: stack allocation via DYNAMIC-EXTENT now applies to all values
    that a variable can take on (for example via SETQ), not just the initial
    binding. This permits for example building complex or recursive structures
    on the stack more easily via iteration. See the updated manual entry for
    more details.
  * minor incompatible change: some interfaces in the SB-POSIX contrib module
    adhere to the spec that a NULL result from the C library is an error if
    and only if errno was altered by the call. SYSCALL-ERROR will be signaled
    if so.
  * enhancement: the SB-POSIX contrib module provides DO-PASSWDS and DO-GROUPS
    to allow users to iterate over password and group databases safely.
  * platform support:
    ** support for Darwin on x86 and PowerPC has been restored.  (lp#2033287,
       thanks to Kirill A. Korinsky, Sergey Fedorov and barracuda156)
  * bug fix: miscompilation due to erroneous type derivation in the presence
    of multiplication of fixnums by ratios.  (lp#2033695, reported by Patrick
    Dussud)
  * bug fix: compiler error when compiling signed- and unsigned 64-bit type
    checks in some cases.  (lp#2033997, reported by Eric Smith)
  * bug fix: compiler error when the :INITIAL-CONTENTS argument to MAKE-ARRAY
    is a constant non-sequence.  (lp#2037328)
  * bug fix: compiler error when constant-folding sequence functions with
    :TEST or :KEY functions erroring on the given sequence.  (lp#2037341)
  * bug fix: compiler error when arguments to array or sequence functions
    imply a very large sequence size.  (lp#2037443, lp#2037348)
  * bug fix: compiler error when the return value of ADJUST-ARRAY is not used.
    (lp#2037450)
  * optimization: function types derived by the compiler can in some cases be
    propagated backwards through the intermediate representation.
  * optimization: better type derivations for LDB, LOGBITP, RATIO.
  * optimization: eliminate bound checks in more cases involving transitive
    comparisons.