SBCL 2.4.1 Released, Common Lisp Implementation

SBCL 2.4.1 (Steel Bank Common Lisp), a free implementation of the programming language
Common Lisp has been published. The project code is written in Common Lisp and SI languages,
and is distributed under the BSD license.

In the new issue:

  • In a parallel garbage collector, partial support for compact copy headlines has been added using the Mark-Region algorithm.
  • For functions with declared return types in optimization modes with large values of Safety and in Debug 3 mode,
    the type check for returned values is ensured.
  • A layout with LibptHread has been implemented on the FreeBSD platform and the randomization of the address space (ASLR) is disabled.
  • The assembly at 64-bit architectures RISCV and PPC is restored.
  • Support for Fastrem-32 (for optimized Floor calculations) has been implemented for all platforms.
  • An error that caused re-cleaning of moved lines after memory compaction with the parallel collector of the Mark-Region garbage
    has been eliminated.
  • The problem with the bouncing of the compiler when processing some structures with types of satispies has been solved.
  • Hash tables used in various parts of the system (packages, unicode tables) are transformed to use a hash of functions
    delivered from conflicts (perfration).
  • The Typecase macro for hierarchies of classes is implemented using hash without conflicts.
  • The boundaries of the boundaries for relative displacements have been removed to optimize performance.
  • Additional data on optimization digit-char has been added to the compiler.
  • The compiler now implements the possibility of eliminating intermediate values in some calls of Apply, Concatenate, and
    Make-Arrey for arguments built from sequences with fresh Cons-modifications.
  • The operation of the “(Loop for X in (Reverse List) …)” cycle has been accelerated, using less Conses.
  • The “(look … append …)”
/Reports, release notes, official announcements.