sbcl-2.5.9 released

Christophe Rhodes via Sbcl-announce <[email protected]> Mon, 29 Sep 2025 09:53:20 +0100
Newsgroups gmane.lisp.steel-bank.announce
Message-ID <[email protected]>
Dear all,

SBCL 2.5.9 is now available from the usual places (version control, file
release system at sourceforge); binaries for some platforms will
probably trickle in over the course of the next day or so.  The most
immediately pertinent changes in this release are summarized below.  As
ever, feedback, success reports, problem reports are welcome.

Christophe

changes in sbcl-2.5.9 relative to sbcl-2.5.8:
  * minor incompatible change: remove (SETF SB-EXT:POSIX-GETENV), which only
    ever existed as an operator in SBCL on Windows.
  * minor incompatible change: (LOG -0.0) now returns
    SINGLE-FLOAT-NEGATIVE-INFINITY, more consistently with IEEE 754.
  * minor incompatible change: (EXPT 0.0 0.0) now returns 1.0, rather than
    signalling an error.
  * platform support
    ** restore functionality on NetBSD.  (thanks to Masatoshi SANO)
    ** fix building SBCL as a shared library on ARM64.  (lp#2122059, reported
       by Guillaume LE VAILLANT)
  * optimization: TYPEP with array types does less work in many cases.
  * optimization: COMPLEMENT on a known function can be transformed away in
    more cases.
  * optimization: calls to local functions with &REST arguments can be
    optimized in more cases.
  * optimization: bound checks can be eliminated in ROW-MAJOR-AREF based on
    constraints relating the index to the available array elements.
    (lp#2121253, thanks to Vasily Postnicov)
  * optimization: function type declarations no longer inhibit inlining local
    functions.  (lp#2121351, reported by kbhit)
  * optimization: bulk movement of memory in the system is implemented with
    less overhead around memmove().
  * optimization: MAKE-ARRAY with dimensions coming from ARRAY-DIMENSIONS on
    an array with known dimensions avoids consing an intermediate dimensions
    list.
  * optimization: a number of arithmetic operators and relations in
    combination with some constant arguments do partial expression
    simplification at compile-time.  (lp#2122063 for %NEGATE thanks to Vasily
    Postnicov)