-
-
-
-
-
sbcl-2.0.111c72fac · ·
changes in sbcl-2.0.1 relative to sbcl-2.0.0: * minor incompatible change: some symbols have been removed from *FEATURES* based on a determination of which should be impermissible to examine via #+ and #- reader macros in user-written code. * optimization: DEFSTRUCT copiers including COPY-STRUCTURE are able to stack-allocate the result when declared dynamic-extent. * bug fix: loop analysis code more robust. In particular, loop nesting depth is computed more accurately, improving the register allocation around loops.
-
-
-
sbcl-2.0.075ef262e · ·
changes in sbcl-2.0.0 relative to sbcl-1.5.9: * minor incompatible change: heap relocation now works on Windows. Since this feature now works on all platforms, it is enabled unconditionally and the :RELOCATABLE-HEAP symbol no longer appears on *FEATURES* in any builds. (Thanks to Luís Borges de Oliveira) * enhancement: malformed type specifiers and occurrences of deprecated types in :TYPE initargs of DEFCLASS and DEFINE-CONDITION slot specifications are detected and result in compile-time errors and warnings respectively. * enhancement: parallel contrib building, controlled by SBCL_MAKE_JOBS=-jX the same as for the C runtime. * bug fix: add a walker template for WITH-SOURCE-FORM. * bug fix: start the summary of a compilation unit on a fresh line. (Thanks to Zach Beane) * bug fix: on Windows, PARSE-NATIVE-NAMESTRING produces an absolute directory when parsing a bare drive name and :AS-DIRECTORY is specified. (Thanks to Luís Borges de Oliveira) * bug fix: on RISCV, the runtime is linked with libz if the core compression feature is requested. (Thanks to Andreas Schwab) * bug fix: ADJOIN using an EQL test and a KEY function only transforms into an EQ test if the key function returns values for which EQ and EQL are guaranteed to be the same. * optimizations: ** the instruction sequence for multiple-value calls is more efficient on x86-64. ** the direction flag is now unused on x86 and x86-64 when handling an unknown number of return values. (Thanks to Fanael Linithien) ** the x86-64 backend is better able to use memory operands for arithmetic operations. ** compilation of TYPECASE to a jump table is enabled when all the types being tested are frozen. ** compilation of CASE and ECASE into a jump table has been implemented on 32- and 64-bit powerpc platforms. ** the implementation of Unicode normalization has been sped up. ** pretty-printing dispatch on conses is faster, particularly with the standard pretty-print dispatch table. Deeply-nested forms should also pretty-print faster.
-
-
-
sbcl-1.5.92d37109c · ·
changes in sbcl-1.5.9 relative to sbcl-1.5.8: * platform support: ** a message intended to be more helpful will be displayed for an mmap failure on OpenBSD. ** the soft-float ABI on ARM32 is better supported, in particular in returning double floats from calls into C. * optimizations: ** CASE and ECASE with symbols as keys may be optimized into a vector lookup if all result forms are quoted or self-evaluating objects. ** CASE and ECASE can be optimized into a jump table on the x86[-64] backends with arbitrary result forms provided that the clause keys are either all fixnums, all characters, or all symbols. ** a number of forms are converted to use CASE in circumstances where that makes sense, including calls to POSITION, MEMQ and MEMBER, and TYPECASE where the types are MEMBER/EQL types. ** POSITION of a variable symbol in a constant sequence of symbols is converted to CASE and thence to a jump table. ** TYPECASE of a variable where the clauses are member types is converted to CASE and thence to a jump table. ** a number of slow instructions are no longer used on x86 and x86-64 machines. (Thanks to Fanael Linithien) ** the compiler is better at tracking the implications of branches after EQ and EQL tests. ** parsing &KEY lists is slightly less register-intensive. ** a pattern-based peephole optimizer pass has been added, running some simple transformations on the x86-64 backend. * enhancements: more thorough compile-time type checking of various initforms (defclass, &key, defstruct). * bug fix: unions of complicated CONS types are less likely to cause an infinite loop. (lp#1799719) * bug fix: DESCRIBE on functions not named by extended function designators no longer signals a type error. (lp#1850531, reported by Michal Herda)
-
-
-
sbcl-1.5.8f410b0c9 · ·
changes in sbcl-1.5.8 relative to sbcl-1.5.7: * platform support: ** support for Mac OS X Catalina ** improvements in interoperability with C code compiled with memory sanitization options ** libsbcl.so links to zlib when sb-core-compression is enabled. (lp#1845763, thanks to Juan M. Bello-Rivas) ** workarounds for BSD issues around mmap() and pthread_attr_setstack(). (lp#1845936) ** support SSE for bzero if available on OpenBSD * optimizations: ** improved type understanding and translations for division operators (including TRUNCATE, GCD, LCM). ** sequential comparisons and branches can elide intermediate comparisons. (lp#1847284) ** convert EQUAL and EQUALP to EQL if either of the arguments is a type for which the structural equality predicate is identical to the simpler equality check. (lp#1848583) ** internal operators implementing string comparisons produce simpler-to-consume values. (lp#1848776) * bug fix: inspecting adjustable arrays and vectors with fill pointers works better. (lp#1846191, reported by Yves Pagani)
-
-
-
sbcl-1.5.736d65834 · ·
changes in sbcl-1.5.7 relative to sbcl-1.5.6: * platform support: ** many bug fixes to the experimental 64-bit PowerPC/Linux port, to the extent that the little-endian variant passes all applicable tests in the regression test suite; the big-endian variant currently has some failures ** experimental support for sb-threads on 64-bit PowerPC/Linux ** support threads on x86-64 Sun OS (lp#1841280) ** handle PAX restrictions on mprotect() on NetBSD ** experimental support for HaikuOS ** the runtime is built as a position-independent executable by default on x86-64 Linux and x86-64 Darwin * fixes and enhancements related to Unicode: ** update of the data files to Unicode 8.0 ** fix a bug in the implementation of the Unicode line breaking algorithm regarding hebrew letters and hyphens * enhancement: add a restart to OPEN with :IF-EXISTS :ERROR to allow re-opening with :APPEND. (lp#806398, reported by Tobias Rittweiler) * bug fix: compiler optimizations on SEARCH with :FROM-END T didn't account for the empty sequence. (lp#1844821) * bug fix: handle SETF of nested empty VALUES correctly. (lp#1806478) * optimization: FLOOR and CEILING on rationals are simpler, and the compiler's understanding of them is better.
-
-
-