Release of SBCL 2.4.0 (Steel Bank Common Lisp), a free implementation of the Common Lisp programming language. The project code is written in Common Lisp and C, and is distributed under the BSD license.
In the new release:
- Changes that break compatibility:
- *COMPILE-VERBOSE* and *LOAD-VERBOSE* are bound to NIL when running the system with the command-line argument "--script".
- When searching for a core file, the system checks the validity of what is specified in /proc/self/exe, and if /proc/self/exe turns out to be invalid, it checks argv[0].
- The system no longer provides type names for standard (CL) symbols ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX, or FLOAT-DIGITS.
- Platform support:
- On arm64 systems, support for enabling a parallel garbage collector using the mark-region algorithm has been added.
- Build issues in new releases of FreeBSD have been resolved.
- Bug fixes:
- Compiler type output has been restored correctly for REDUCE calls with ":INITIAL-VALUE" but without ":FROM-END".
- A compiler bug when declaring "SB-EXT:MUFFLE-CONDITIONS" for an unknown type has been fixed.
- In some cases, the disassembler produced poorly formatted output for registers.
- The likelihood of the system exhausting the stack again when outputting a stack exhaustion error has been slightly reduced;
- Optimizations:
- Many write barriers in the garbage collector have been eliminated.
- Type output for iterative variables with mixed types has been improved.
- Unused initialization values for LET bindings have been removed, improving register type selection.
- EQUALP/EQUAL/EQL have been reduced to EQL/EQ in FIND/MEMBER based on input types.
- Type output for DPB, LOGIOR has been improved.
Source: opennet.ru
