The release of SBCL 2.4.2 (Steel Bank Common Lisp), a free implementation of the Common Lisp programming language, has been published. The project's code is written in Common Lisp and C, and is distributed under the BSD license.
In the new release:
- Self-compilation on x86-64 systems with Linux now produces bitwise identical cross-compiled fasls where the build host is cmucl, ccl, clisp, or sbcl itself.
- Optimizations:
- A large number of internal tables, particularly those related to Unicode support, have been converted to use collision-free hash functions (perfect), improving speed and reducing size.
- FIND, POSITION, ASSOC, and RASSOC with arguments of immutable sequences containing symbols as keys now compile for search using collision-free hashes.
- On x86-64 systems, the compiler has eliminated jump-to-jump transitions.
- Bug fixes:
- Restored inheritance from both SEQUENCE and SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
- COERCE will not convert lambda forms to functions if the specified type name is a subclass of FUNCTION.
- LOG with double-float and rational arguments (in any order) does not lose precision through an intermediate single-float argument.
- LOG to base 2 for integral powers of two is likely to yield a mathematically exact answer.
- LOG on rational numbers close to one, with numerators or denominators close to powers of two, will use log1p, thereby losing less precision.
- External utf-8 format with Unix-style line endings updates its character size information when applying a fast path for ASCII character buffers.
- Content of possibly invalid dynamically existing conses was not printed in the PRINT-OBJECT method for THREAD objects.
- Constant placement of external entry points for functions before any other local functions.
- Removal of inactive optimization notes for quoted forms and single calls to APPEND at high speed.
- Infinite loop in COPY-SEQ on zero-length arrays with element type NIL.
- Fix for the compilation of non-top-level structure constructors.
- Fixes in SB-SIMD:
- Improved bounds checking in SB-SIMD.
- Fix for SB-SIMD AVX f64.4-reverse.
- Fix for SB-SIMD shuffling on AVX and SSE2.
- Fix for lifetime in sse+xmm0 VOPs.
Source: opennet.ru
