sbcl-2.0.5 released

Christophe Rhodes <[email protected]> Sun, 31 May 2020 15:55:06 +0100
Newsgroups gmane.lisp.steel-bank.announce
Message-ID <87367gkvcl.fsf@shin>
Dear all,

I've released sbcl-2.0.5 and uploaded artifacts to SourceForge.
Noteworthy changes in this release are summarized below.

I'd particularly like to highlight that hashing and equality predicates
have received some attention this month, and that it is possible that
code which previously worked by accident will no longer work, because an
implicit assumption which used to hold no longer does.  Specifically,
structure-objects of the same class now can have distinct SXHASH values,
use of SXHASH as a hash function for hash tables with EQUALP or some
other content-based equality predicate will no longer work, whereas in
the past (where all instances of a given structure class would have the
same hash value) this would result in a poorly-performing but valid hash
table.

Best wishes,

Christophe

changes in sbcl-2.0.5 relative to sbcl-2.0.4:
  * platform support:
    ** experimental support for ARM32 and ARM64 on OpenBSD
    ** better musl libc support.  (lp#1768368, thanks to Eric Timmons)
    ** more correct use of futexes on 64-bit Linux.  (lp#1876825, reported by
       Ilya Perminov)
    ** restore building on current Solaris.  (lp#1881393, thanks to Shawn
       Ellis)
  * enhancement: CMUCL-style START-BLOCK and END-BLOCK declarations are now
    supported for block compiling forms at a sub-file granularity.
  * enhancement: IPv6 support in sb-bsd-sockets is enabled on Windows.
  * minor change: *compile-print* now makes it more clear what block
    compilation is actually doing. The default output is now slightly more
    verbose as a result.
  * bug fix: number keys in EQUALP hash tables are correctly hashed.
    (lp#1878653, reported by Syll)
  * bug fix: EQness is better preserved given partial sharing of list contents
    in the file compiler.  (lp#1583753, reported by Denis Budyak)
  * bug fix: the peephole pass neglected to preserve jump table labels.
    (lp#1876485)
  * bug fix: fix compiler crash in block compilation merging of toplevel
    lambdas.  (lp#1865336, reported by il71)
  * bug fix: sb-introspect's function-lambda-arglist is better at extracting
    default values of nested macro arguments.  (lp#1876194)
  * bug fix: RESTART-BIND's body is an implicit progn, and so does not accept
    declarations.  (lp#1876303, reported by Michal Herda)
  * optimization: EQUAL hash tables with keys involving structure-objects will
    have fewer systematic collisions.