You can subscribe to this list here.
2000 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(2) |
Oct
(2) |
Nov
(1) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2002 |
Jan
(4) |
Feb
|
Mar
(1) |
Apr
(2) |
May
|
Jun
(3) |
Jul
(1) |
Aug
|
Sep
(3) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2003 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
(4) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
(1) |
2004 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(2) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(2) |
2005 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2006 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(3) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(10) |
2007 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(2) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(2) |
2009 |
Jan
|
Feb
|
Mar
(1) |
Apr
(2) |
May
|
Jun
(2) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(1) |
2010 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
|
2011 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(2) |
Dec
(1) |
2012 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(2) |
2013 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(2) |
May
(1) |
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
|
2014 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2015 |
Jan
(1) |
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(2) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(1) |
2016 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
(1) |
2017 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2018 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2019 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(4) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2020 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2021 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2022 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2023 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2024 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Christophe R. <cs...@ca...> - 2024-03-29 17:27:46
|
Dear all, I have gone through the release steps, and SBCL 2.4.3 is now tagged in git and downloadable from SourceForge; major changes in this release are summarized below. Additionally, registration for SBCL25, a workshop / collaborative development event in Vienna on May 2-3, is now open. There are more details about the workshop, and a link to the registration form, at <https://www.sbcl.org/sbcl25/>. I warmly invite anyone wishing to spend a couple of days in the details of SBCL development, or to share their stories of using or deploying SBCL, to register and attend: and to consider staying for the European Lisp Symposium at the start of the following week. Best wishes, Christophe changes in sbcl-2.4.3 relative to sbcl-2.4.2: * enhancement: when dumping debug information to fasl files, the system respects the SOURCE_DATE_EPOCH environment variable (if set) as the latest timestamp to be used. * contributed module: the sb-perf contributed module, an interface originally by Luke Gorrie to Linux's perf, is now included by default on Linux. (Thanks to Philipp Marek) * platform support: ** on Linux and BSD variants, timezone querying is now faster. ** Arm64/Darwin: allow configuring the system with a relocatable static space. ** PPC64: allow configuring the system with fasteval. * bug fix: erroneous transform of EQUALP on characters (lp#2055425) * bug fix: float rounders (FTRUNCATE and related functions) handle minus zero more consistently, returning minus zero as the primary value when rounding to zero from a negative value. * bug fix: type checks for (VECTOR T) were giving the wrong answer for vectors displayed to simple multi-dimensional arrays. (reported by _death) * bug fix: do not transform away division by BIT when the BIT might still include 0. (lp#2056184, reported by xizang) * bug fix: various errors related to imperfections in the perfect hash generator. (lp#2055794, lp#2056341) * bug fix: respect declarations for symbol macros inside defmethod. (lp#2056514, reported by Jonathan Braud) * bug fix: failure to set structure slots to floats on Arm64. (lp#2058148, reported by Bibek Panthi) * optimization: improvements to the implementation of CASE. * optimization: faster PARSE-INTEGER :radix 10/16 on word-sized integers. * optimization: improvements to LOGBITP. |
From: Christophe R. <cs...@ca...> - 2024-02-29 08:15:50
|
Dear all, Happy Leap Day! I have seized the moment in this extra day to release sbcl-2.4.2; the version is tagged in git, and artifacts are on their way around the world to mirrors near you. Notable changes in this version are summarized below. Best wishes, Christophe changes in sbcl-2.4.2 relative to sbcl-2.4.1: * bug fix: restore the ability to inherit from both SEQUENCE and SB-MOP:FUNCALLABLE-STANDARD-OBJECT. (lp#2050088, reported by Christophe Junke) * bug fix: COERCE will not convert lambda forms to functions if given a type naming a (strict) subclass of FUNCTION. * bug fix: LOG with a double-float and a ratio argument (in either order) do not lose precision through a single-float intermediate argument. * bug fix: LOG to the base 2 of integer powers of 2 are more likely to get the mathematically precise answer. * bug fix: LOG on ratios very near 1 with numerator or denominator being near a power of 2 will use log1p and so will lose less precision. * bug fix: the utf-8 external format with Unix line-endings updates its character size information when taking the fast path for a buffer of ascii characters. (lp#2054169, reported by John Carroll) * bug fix: don't print the contents of a possibly no-longer-valid dynamic-extent cons in PRINT-OBJECT method for THREAD objects. (lp#2026195, reported by Jake Connor) * bug fix: place external entry points for functions consistently before any local functions. (lp#2051169, reported by Fedorov Alexander) * bug fix: remove unactionable optimization notes for backquoted forms and ordinary calls to APPEND at high speed. (lp#2051401, reported by Robert Brown) * bug fix: infinite loop in COPY-SEQ on zero-length arrays of element-type NIL. (lp#2051759, reported by Devon Sean McCullough) * bug fix: fix compilation of non-top-level struct constructors. (lp#2052329, reported by Robert Poitras) * bug fixes in SB-SIMD: ** improve bounds checking in SB-SIMD. (lp#2012010, reported by Patrick Poitras) ** fix SB-SIMD AVX f64.4-reverse (lp#2012986, thanks to Ari Projansky) ** fix SB-SIMD shuffles on AVX and SSE2 (lp#2012990, reported by Ari Projansky) ** fix lifetimes in sse+xmm0 VOPs (lp#2015329, reported by Ari Projansky) * optimization: a number of internal tables, particularly those related to Unicode support have been converted to use perfect hash mechanisms, improving both speed and space. * optimization: FIND, POSITION, ASSOC and RASSOC with constant sequence arguments containing symbols as keys are compiled to perfect hash lookups. * optimization: the compiler runs a jump-to-jump elimination pass on x86-64. * system integrity: compiling the system itself on x86-64/linux now produces bitwise-identical cross-compiled fasls whether the build host is cmucl, ccl, clisp or sbcl itself. |
From: Christophe R. <cs...@ca...> - 2024-01-28 11:31:45
|
Dear all, I've tagged sbcl-2.4.1 in version control, and uploaded some release artifacts to SourceForge. Notable changes in this release are listed below. Some dates for your diaries: on Thursday/Friday 2-3 May, we are expecting to hold an SBCL-themed Workshop in Vienna (Austria), to celebrate (slightly in advance) SBCL's 25th birthday, and to lead in to the European Lisp Symposium held in the same venue on Monday/Tuesday of the following week. There have been two previous similar workshops, in 2009 and in 2019 -- I enjoyed both, and it would be good to see many of you there. Best wishes, Christophe changes in sbcl-2.4.1 relative to sbcl-2.4.0: * enhancement: compact instance headers are partially supported with the mark-region parallel garbage collector. * enhancement: functions with declared return types have their return values type-checked in optimization regimes with high SAFETY and (DEBUG 3). * platform support: ** disable ASLR on FreeBSD. (lp#2047655, thanks to Konstantin Belousov) ** link to libpthread on FreeBSD. (thanks to Konstantin Belousov) ** restore build on 64-bit riscv. (lp#2034713, lp#2048869, reported by Guillaume LE VAILLANT) ** restore build on 64-bit ppc. ** fix case in referring to a header file. (lp#2047726, thanks to Andrew Kravchuk) ** the fastrem-32 feature (for optimized computations of FLOOR) is now available on all platforms. * bug fix: resweep moved lines after compaction in the mark-region parallel garbage collector. * bug fix: infinite loops in the compiler on some constructs with SATISFIES types. (lp#2047289, lp#2047706, lp#2049631) * optimization: various hash tables implementing part of the system (packages, Unicode data tables) have been converted to use perfect hash functions. * optimization: TYPECASE on structure class hierarchies is implemented using a perfect hash. * optimization: eliminate bound checks with relative offsets. (lp#1830314) * optimization: the compiler has more knowledge of how to optimize DIGIT-CHAR. * optimization: the compiler can elide intermediates for some calls to APPLY, CONCATENATE and MAKE-ARRAY with arguments that are freshly-consed modifications of existing sequences. * optimization: (LOOP FOR X IN (REVERSE LIST) ...) is now faster and conses less. * optimization: (LOOP ... APPEND ...) is more compact, and does less work if appending NIL. * optimization: type tests of various array types are faster and shorter. |
From: Christophe R. <cs...@ca...> - 2023-12-28 10:09:27
|
Dear all, I have tagged and released SBCL 2.4.0, which is now available from SourceForge; the list of changes in this release is below. Compliments of the season to all. Best wishes, Christophe changes in sbcl-2.4.0 relative to sbcl-2.3.11: * minor incompatible change: *COMPILE-VERBOSE* and *LOAD-VERBOSE* are bound to NIL when the system is started with the --script command-line argument. (reported by Hraban Luyat, thanks to Nicolas Martyanoff) * minor incompatible change: when looking for its core file, the system checks the validity of whatever is pointed to by /proc/self/exe, and assesses argv[0] if /proc/self/exe is invalid. (thanks to Philipp Marek) * minor incompatible change: the system no longer provides type names on the standard (CL) symbols ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX or FLOAT-DIGITS. (lp#2045559) * platform support ** the mark-region parallel garbage collector can be enabled on arm64. (Thanks to Hayley Patton) ** fix build on modern FreeBSDs. (lp#2046996, thanks to David J. Flander) * bug fix: restore compiler type inference correctness on calls to REDUCE with :INITIAL-VALUE but no :FROM-END. (lp#2044856, reported by Patrick Poitras) * bug fix: compiler error when declaring SB-EXT:MUFFLE-CONDITIONS on an unknown type. (lp#2045442) * bug fix: the disassembler provided non-pretty output for registers in some cases. (lp#2046004, reported by Fedorov Alexander) * bug fix: the system is slightly less likely to exhaust the stack again when reporting a control stack exhaustion error. * optimization: GC write barriers are eliminated in more cases. * optimization: improved type derivation of iteration variables with mixed types. * optimization: remove unused initial values from LET bindings, improving register type selection. * optimization: lower EQUALP/EQUAL/EQL to EQL/EQ in FIND/MEMBER based on the input types. * optimization: better type derivation for DPB, LOGIOR. |
From: Christophe R. <cs...@ca...> - 2023-11-27 17:14:26
|
Dear all, I have released SBCL 2.3.11 today; the release is tagged in version control, and sources and a binary are available at SourceForge. The list of changes in this release (below) is longer than usual, because the development branch improving SBCL's support for external formats -- including new support for Windows and (old) MacOS line ending conventions -- has been merged. I hope that this proves useful, and would encourage you to report successes or (perhaps particularly) problems on the sbcl-help or sbcl-devel mailing lists. Best wishes, Christophe changes in sbcl-2.3.11 relative to sbcl-2.3.10: * minor incompatible change: streams with an external-format specified with :REPLACEMENT will use their replacement data once per stream unit that causes a decoding error (rather than, in some cases, once for a sequence of bytes none of which is a valid character start position for that external-format). * minor incompatible change: external-format designators with unsupported or unrecognized options now signal an error when used. * enhancement: During generic function dispatch, for a generic function using standard- or short-method-combination, if there are no applicable primary methods the system will call the generic function SB-PCL:NO-PRIMARY-METHOD, whose default behaviour is to signal an error. Users may define methods on this generic function. * enhancement: external formats for unibyte encodings and utf-8 now support newline variants. * enhancement: character decoding and encoding errors signalled by stream or octet functions now provide a USE-VALUE restart for handlers to provide replacement input or output. * enhancement: READ-SEQUENCE and WRITE-SEQUENCE support user-defined sequences; the default implementation proceeds element-by-element, reading or writing single bytes or characters to or from the stream as appropriate. * bug fix: OCTETS-TO-STRING using unibyte external formats with unallocated codepoints (e.g. iso-8859-3) correctly signal or use replacements rather than taking bits from the address of NIL and converting those bits to a character. * bug fix: FILE-STRING-LENGTH now returns NIL if the input datum is not encodable in the stream's external format. * bug fix: table-based multibyte external formats (EUC-JP, Shift-JIS, GBK) now honour a replacement character (in the external format or through restarts) when encoding to octets. * bug fix: converting from octets using the UCS-2, UCS-4 and UTF-32 external formats no longer reads past the end of an octet array with a non-integral number of two- or four-byte units. * bug fix: converting from octets using the UCS-2, UCS-4, UTF-16 or UTF-32 external formats now returns a simple string, as required by the type declaration of OCTETS-TO-STRING. * bug fix: providing an invalid external format argument to OPEN or WITH-OPEN-FILE (or the internal MAKE-FD-STREAM) no longer leaks a file descriptor. * bug fix: SB-ROTATE-BYTE recognizes out-of-relevant-range BYTE specifications for integers before attempting to cons up enormous bignums for masking and shifting. (lp#2042937) * bug fix: fix type derivation on compiling SB-ROTATE-BYTE forms with non-zero POSITION in the byte specifier. (lp#2042775) * bug fix: fix multiple assembler errors when compiling MAKE-ARRAY, MAKE-STRING and similar with a large constant size. (lp#2037347, lp#2038744) * bug fix: fix internal error when compiling (SETF SBIT) with a large constant index. (lp#2037415) * bug fix: fix internal compiler error on invalid lambda list parameters in LABELS. (lp#2040334) * bug fix: fix internal compiler error when compiling some infinitely-recursive LABELS forms. (lp#2042704) * bug fix: fix internal compiler error when attempting to inline a jump to a label that has been deleted. (lp#2043262) * bug fix: FILL-POINTER should never be made to go negative. (lp#2042452) * optimization: external formats with :REPLACEMENT no longer bind handlers for coding errors around conversion functions, and so should cons less and be faster. * optimization: when the :EXTERNAL-FORMAT argument to STRING-TO-OCTETS or OCTETS-TO-STRING is a compile-time constant, the external format is resolved at load time rather than on each call. * optimization: the compiler is able to constrain the types of inputs to some functions given a derived or asserted type of the function's return value. * optimization: the compiler performs fewer redundant type checks in ASSOC, GETF and similar functions. |
From: Christophe R. <cs...@ca...> - 2023-10-30 20:14:40
|
Dear all, I have released SBCL 2.3.10; sources and a binary are available for download, and the most significant changes are listed below. Note perhaps in particular the new tendency of the compiler to stack-allocate large vectors (if requested through a DYNAMIC-EXTENT declaration); this has the potential to trigger stack overflow, where previously such an allocation might well have happened on the heap. Best wishes, Christophe changes in sbcl-2.3.10 relative to sbcl-2.3.9: * enhancement: The compiler now allows stack allocating vectors of any size on all safety levels, not just those which it can prove are of sub-page sizes. It can do this because it now inserts code to check for stack overflow explicitly on higher safety levels. * enhancements to the disassembler: ** on arm64, x86-64, DISASSEMBLE annotates references to static symbols. * bug fix: calls to generic functions now detect erroneous keywords (in the sense of CLHS 7.6.5) passed as arguments even when auxiliary methods are applicable. * bug fix: the standard method on SB-MOP:COMPUTE-EFFECTIVE-METHOD no longer inserts calls to implementation-defined local macros. (reported by Daniel Kochmański) * bug fix: compiler error from state-machine-like LABELS forms in some circumstances. (lp#2037318) * bug fix: fix compile-time error in constant-folding RATIONAL on literal float infinities. (lp#2037455) * bug fix: failure on x86-64 to assemble code for EQL tests of comparisons with immediates. (lp#2037456) * bug fix: infinite loop in the compiler for simplification of type tests of complicated union types. (lp#2038112, reported by Paul M. Rodriguez) * bug fix: inability to dump a literal displaced array containing copies of its displacement target. (lp#2038233, reported by James Kalenius) * bug fix: compiler error in LOGBITP type derivation. (lp#2038241) * bug fix: compiler error in AREF type derivation. (lp#2038659) * bug fix: compiler internal consistency failure in overflow type checks. (lp#2038736) * bug fix: work around an infinite loop in type simplification by not providing such types from the compiler. (lp#2038980, reported by Richard Holcombe) * bug fix: spurious run-time argument count errors from generic function calls on arm64. (lp#2039006, reported by fiddlerwoaroof) * bug fix: errors in SCALE-FLOAT on floating-point infinities. (lp#2039613) * bug fix: ROOM is slightly more robust to incompletely-initialized instances at the point of running ROOM. (Reported by Andreas Franke) * bug fix: finalizers saved through SAVE-LISP-AND-DIE and subsequently executed do not trigger memory faults. (Reported by Bohong Huang) * optimization: improvements to type derivation for ISQRT, INTEGER-LENGTH, LOGCOUNT, LOG, DENOMINATOR. |
From: Christophe R. <cs...@ca...> - 2023-09-28 07:20:26
|
Dear all, I've taken the steps needed to tag and release SBCL 2.3.9; some artifacts are available on Sourceforge, and more may come in as time goes on. The major changes are listed below, and it's perhaps worth calling out explicitly that the compiler will stack-allocate more things bound to variables declared DYNAMIC-EXTENT, which has the potential to cause crashes if those declarations are not in fact true. Not mentioned in the notes, the parallel mark-region garbage collector has seen some minor fixes, and experience reports using this collector are still very welcome. Best wishes, Christophe changes in sbcl-2.3.9 relative to sbcl-2.3.8: * enhancement: stack allocation via DYNAMIC-EXTENT now applies to all values that a variable can take on (for example via SETQ), not just the initial binding. This permits for example building complex or recursive structures on the stack more easily via iteration. See the updated manual entry for more details. * minor incompatible change: some interfaces in the SB-POSIX contrib module adhere to the spec that a NULL result from the C library is an error if and only if errno was altered by the call. SYSCALL-ERROR will be signaled if so. * enhancement: the SB-POSIX contrib module provides DO-PASSWDS and DO-GROUPS to allow users to iterate over password and group databases safely. * platform support: ** support for Darwin on x86 and PowerPC has been restored. (lp#2033287, thanks to Kirill A. Korinsky, Sergey Fedorov and barracuda156) * bug fix: miscompilation due to erroneous type derivation in the presence of multiplication of fixnums by ratios. (lp#2033695, reported by Patrick Dussud) * bug fix: compiler error when compiling signed- and unsigned 64-bit type checks in some cases. (lp#2033997, reported by Eric Smith) * bug fix: compiler error when the :INITIAL-CONTENTS argument to MAKE-ARRAY is a constant non-sequence. (lp#2037328) * bug fix: compiler error when constant-folding sequence functions with :TEST or :KEY functions erroring on the given sequence. (lp#2037341) * bug fix: compiler error when arguments to array or sequence functions imply a very large sequence size. (lp#2037443, lp#2037348) * bug fix: compiler error when the return value of ADJUST-ARRAY is not used. (lp#2037450) * optimization: function types derived by the compiler can in some cases be propagated backwards through the intermediate representation. * optimization: better type derivations for LDB, LOGBITP, RATIO. * optimization: eliminate bound checks in more cases involving transitive comparisons. |
From: Christophe R. <cs...@ca...> - 2023-08-28 10:24:49
|
Dear all, SBCL 2.3.8 has now been tagged, and some artifacts are already available on SourceForge; more will probably come in due course. The major changes are listed below; probably the most significant item is the addition of a build-time option to select a different Garbage Collection algorithm, contributed by Hayley Patton. Some details about the garbage collection are in the design document in the sources (in doc/internals-notes/mark-region); others are in the European Lisp Symposium paper, of which a preprint is available at <https://applied-langua.ge/~hayley/swcl-gc.pdf>. Experience reports using this collector would be very welcome. Best wishes, Christophe changes in sbcl-2.3.8 relative to sbcl-2.3.7: * enhancement: a mark-region parallel garbage collector is available as a build-time option; it can be enabled by adding `--without-gencgc --with-mark-region-gc` to the build command line. (Thanks to Hayley Patton) * enhancement: Stack allocation via DYNAMIC-EXTENT is now possible for conditionals even when not all branches are stack-allocatable. Previously all branches needed to be stack-allocatable for the otherwise-inaccessible subparts to get stack allocated. * platform support: ** on Mac OS X Sonoma, loading the memory image no longer fails. (lp#2029430, reported by cladur) ** on Darwin, we no longer reimplement nanosleep(). ** on PPC64, undefined function errors now work. ** on ARM64/OpenBSD, enable the GCC TLS feature. (thanks to Sébastien Marie) ** when building the system, only display a reasonable amount of timing precision. (thanks to Philipp Marek) * bug fix: handling of inlining functions compiled to return unboxed values no longer crashes the compiler. (lp#2029020, reported by Pascal J. Bourguignon) * bug fix: the source location for code executed within a top-level (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) form is now more useful. * bug fix: address a race between user threads cancelling finalizers and the finalizer thread executing them. (lp#2029306) * bug fix: complex division returns the same value when evaluated inline and out-of-line. (lp#2030097) * bug fix: the pretty-printer no longer deletes syntactically-significant whitespace immediately preceding a newline. (lp#1985814, reported by Mark David) * optimization: the compiler is more aware of the result type of the NUMERATOR function. * optimization: EQUAL and EQUALP compile to more efficient code when the two arguments are known to be of the same nullable type. * optimization: converting bignums to floats uses no intermediate memory. |
From: Christophe R. <cs...@ca...> - 2023-07-29 08:19:37
|
Dear all, I have just released SBCL 2.3.7, tagged in source control and with sources uploaded to SourceForge. The major changes in this release are summarized below. Please compile responsibly. Christophe changes in sbcl-2.3.7 relative to sbcl-2.3.6: * minor incompatible change: MACROLET macro functions are now compiled with (SPEED 1), leading to fewer efficiency notes being emitted when compiled in otherwise high-SPEED environments. * minor incompatible change: when coalescing list data, the file compiler respects substructure equality more accurately, with the side-effect of coalescing along CDR chains as well as CARs. (lp#2025086) * minor incompatible change: FUNCTION type declarations for local variables generate assertions around their use when called. * platform support ** on OpenBSD, the regression test suite expectations have been updated. (lp#2026809, thanks to Sebastien Marie) ** on OpenBSD, the data limit is now 1GB. (lp#2027536, thanks to Sebastien Marie) ** on Darwin with the SB-FUTEX feature, do not use unpaired mach_thread_self() syscalls, avoiding resource leaks when creating threads. ** on 64-bit RISCV, add support for some REM-by-multiplication optimizations. ** on Windows, work around a C compiler bug relating to SYSV_ABI. * bug fix: FILE-POSITION on string output streams no longer crashes or causes arbitrary memory overwrites. (lp#1839040) * bug fix: the compiler no longer constant-folds POSITION to NIL if the START or END arguments are not valid. * optimization: the compiler derives types of &KEY arguments in local calls. (lp#655562) * optimization: type tests of values of known union type can be faster if the type being tested for has a non-trivial intersection with the known type. * optimization: the low-level implementation of NUMBERP, REALP and RATIONALP has been improved on x86-64 and arm64. * optimization: the compiler removes known-NIL arguments from calls to APPEND and NCONC, and empty sequences from calls to CONCATENATE. * optimization: checks for symbols being bindable are now memoized, speeding up compiled uses of PROGV. * optimization: SLOT-VALUE on STRUCTURE-OBJECTs with non-constant slot-name argument is faster. |
From: Christophe R. <cs...@ca...> - 2023-06-28 07:27:24
|
Dear all, I have performed the release incantations for SBCL 2.3.6; the fruits of this month's efforts are available in source form (and a x86-64/linux binary) at SourceForge, and binaries for some other platforms may follow shortly. Changes in this release are summarized below. There is also some work going on in various longer-lived branches. I myself have been working on improving external-format support, initially motivated by adding support for newline ending conventions, but in the process addressing a number of other issues. Development is not yet complete but the branch at https://github.com/csrhodes/sbcl/tree/external-format-line-endings should be in a usable state, and any testing, experience reports or comments about it would be welcome. Christophe changes in sbcl-2.3.6 relative to sbcl-2.3.5: * platform support: ** restore building contribs on riscv; (lp#2002930) ** shorter constant-loading sequences on riscv; ** on OpenBSD, map the stack without executable permission (thanks to Sébastien Marie) ** Restore OpenBSD/arm64 for OpenBSD 7.3 (lp#2024003, reported by Robert Palm) * bug fix: AREF on multidimensional arrays with the wrong number of indices now signals an error. (lp#2022327, reported by EU) * bug fix: the nature of NIL as both STRING and SEQUENCE is correctly handled in the compiler's handling of string functions. (lp#2023118, reported by Patrick Poitras) * bug fix: the sb-bsd-sockets tests no longer fail on systems configured without IPv6. (reported by Will Senn) * bug fix: the compiler no longer transforms into incompletely-known functions (lp#1824351) * optimization: better (the word-sized-type (ASH word-sized word-sized)) when the result can overflow. For arm64 and x86-64. * optimization: better unoptimized calls to CEILING, FLOOR. * optimization: functions that involve coercing floats now cons less. For arm64 and x86-64. * optimization: array displacement to simple arrays is slightly faster. (reported by Shubhamkar Ayare) |
From: Christophe R. <cs...@ca...> - 2023-05-28 11:03:33
|
Dear all, I've just uploaded release artifacts for sbcl-2.3.5 to sourceforge. Changes in this release are summarized below, including an update to the Unicode support: so users may now express themselves with a wider set of emoji. While riding on a donkey, eating my pea and ginger soup, I came across a pair of itinerant musicians playing a flute and maraca duet. La! I said, unfolding my fan; this is too much! And I moved between and them, using my arms to push one left and one right. (I'm sure you can do better.) Best wishes, Christophe changes in sbcl-2.3.5 relative to sbcl-2.3.4: * enhancement: Unicode support has been updated to support version 15.0.0 of the Unicode standard, including addition of characters and their collation keys, and refinements to grapheme-, word- and line-breaking algorithms. * new contrib module: an interface to perf, a performance-analysing tool for Linux. (thanks to Luke Gorrie and Philipp Marek) * platform support: ** on x86-64, prefer using the LEAVE instruction rather than MOV/POP at function epilogue to restore RSP/RBP. ** support SB-FUTEX on OpenBSD. (thanks to Elijah Stone) ** support SB-FUTEX on Darwin/arm64. (thanks to Elijah Stone) ** fix compilation with clang on Windows. (lp#2018601, thanks to Andrew) * bug fix: inspecting objects with unbound slots produces output that is less confusable with the string "unbound". (thanks to Nicolas Martyanoff) * optimization: make TN-REFs doubly-linked, allowing faster deletion. (lp#2018124, reported by Matt Kaufmann) * optimization: MAPCAN/MAPCON are less accidentally quadratic. (thanks to Gleefre) * optimization: improved arithmetic operations in the form of (the word-sized-type (-+* word-sized word-sized)) when the result can overflow. For arm64 and x86-64. |
From: Christophe R. <cs...@ca...> - 2023-04-30 09:52:08
|
Dear all, SBCL 2.3.4 is now tagged, and sources and an x86-64 binary (built on a prerelease version of Debian bookworm, so probably with an even newer glibc dependency than previously) are available for download. A summary of the changes is below; I'd be interested to hear success (or other) reports regarding building on Android. Best wishes, Christophe changes in sbcl-2.3.4 relative to sbcl-2.3.3: * enhancement: attempts to call non-callable objects can now provide USE-VALUE restarts on x86-64 and arm64. * bug fix: ioctl() (both in SBCL's internals and through SB-POSIX) was broken on ARM64/Darwin. (reported by fiddlerwoaroof) * platform support: ** support for cross-compiling the system to Android has been added; (thanks to Gleefre) ** include likely absolute paths for gmp and mpfr on ARM64/Darwin; (thanks to Elias Lawson-Fox) ** include another absolute path for mpfr on Windows; (thanks to Ari Projansky) ** the PROMISE-COMPILE feature from the SB-CONCURRENCY contrib is now available on all threaded platforms; * optimization: VALUES-LIST performs less redundant work on x86-64 and ARM64. |
From: Christophe R. <cs...@ca...> - 2023-03-28 22:11:40
|
Dear all, I have tagged sbcl-2.3.3, and uploaded artifacts to SourceForge. Notable changes in this release are summarized below. For reasons to do with a laptop now failing to recognize its hard disk, this month the binary that goes along with the sources is for 32-bit armhf/Linux. For the same reasons, it's possible that some other parts of the release process have gone awry: for example, I know that the sha256sums list the binary's name as involving -arm-linux, whereas the platform table requires it to be named -armhf-linux. There may be other problems. Best wishes, Christophe changes in sbcl-2.3.3 relative to sbcl-2.3.2: * enhancement: LET-bound anonymous closures declared dynamic extent can now be stack allocated, just like closures bound with FLET or LABELS. Otherwise-inaccessible closure subparts of objects declared dynamic extent can now also be stack allocated * optimization: many standard CL functions which take functional arguments will automatically stack allocate any downward funarg closures. * optimization: better arithmetic between signed and unsigned words on arm64. * optimization: reduce consing when doing arithmetic resulting in small (3 words or fewer) bignums. * bug fix: miscompilation of some additions of signed and unsigned words on x86-64. (lp#2008673) * bug fix: loading the SB-SIMPLE-STREAMS contrib no longer incompatibly overwrites CL:OPEN's function type. (lp#2008811) * bug fix: implement the special-case automatic function definition for PCL's slot accessor functions in the SB-EVAL interpreter. (lp#2008922, reported by Jonathan Braud) * bug fix: allow the build to succeed under SBCLs older than 2.0.0 in the event that the host emits STYLE-WARNINGs while compiling the cross-compiler. (lp#2009493, reported by Kirill) * bug fix: restore compilation on ARM64 with OpenBSD. (lp#2009585, reported by okflo) * bug fix: compiling a HANDLER-BIND with an function undefined at compile-time produces a compile-time STYLE-WARNING. (lp2010176) * bug fix: support files bigger than 4GB on ARM64/Linux, *BSD. (lp#2011453, reported by Yan) * bug fix: it is now possible to run sb-simd tests on systems without AVX2. (lp#2011923, thanks to Sergio Durigan Junior) * bug fix: miscompilation of some conditional moves. (lp#2012312, reported by Patrick Poitras) * bug fix: SB-GMP no longer signals a TYPE-ERROR when raising a ratio base to a negative integer exponent. (lp#2012577, thanks to Ari Projansky) * bug fix: warn the user when they have declared a structure or standard-object slot of :TYPE NIL. |
From: Christophe R. <cs...@ca...> - 2023-02-26 11:39:08
|
Dear all, SBCL 2.3.2 is now released and available; highlights in this release are summarized below. Best wishes, Christophe changes in sbcl-2.3.2 relative to sbcl-2.3.1: * incompatible change: the :ORDER long-form-option in DEFINE-METHOD-COMBINATION accepts NIL as well as :MOST-SPECIFIC-FIRST and :MOST-SPECIFIC-LAST. A value of NIL implies no particular ordering of the methods, and so disables checks of multiple methods with the same specializers in that group. * bug fix: evaluate the :ORDER long-form-option in DEFINE-METHOD-COMBINATION properly, avoiding an infinite loop in DEFINE-METHOD-COMBINATION if the :ORDER argument leads to a cycle of compile-time constants. * bug fix: better compile time on chains of conditionals which have gaps in integer ranges. (lp#1992349, reported by Mykola Matvyeyev) * bug fix: type derivation of VECTOR-LENGTH leading to wrong type handling for MEMBER types involving vectors. (lp#2004094) * bug fix: equality constraint propagation in the presence of constants could cause code to be not deleted when it should have been. (lp#2006487) * bug fix: better compile time when the compiler needs to perform checks to see if fixnum or word computations result in overflow. (lp#2007741) * bug fix: miscompilation on ARM64. (lp#2007758, reported by Stephen Westfold) * optimization: on x86-64, use SIMD instructions for UTF-8 buffer decoding; * various type-driven optimizations: ** comparisons of rationals with constant ratios or floats; ** comparisons of unsigned-bytes with fixnums; ** comparisons of fixnums with constant powers of two; ** equality of numbers with integers too large to be exactly represented as floats; ** arithmetic operations on a mixture of signed and unsigned word-sized quantities; |
From: Christophe R. <cs...@ca...> - 2023-01-28 15:32:24
|
Dear all, I have tagged sbcl-2.3.1 and uploaded a binary to SourceForge; binaries for various other platforms are also beginning to be uploaded. changes in this release are summarized below. Best wishes, Christophe changes in sbcl-2.3.1 relative to sbcl-2.3.0: * sb-graph has been removed. To visualize IR1 in sbcl, it is recommended to use the function IR1-TO-DOT (which only survives the final tree shake if the feature :sb-devel is enabled at build time). * platform support: ** implement some peephole optimizations on arm64; ** support float traps on arm64; * bug fix: package-manipulation operations within fasls work as expected in the absence of explicit block compilation requests. (lp#2000004, reported by Shubhamkar Ayare) * bug fix: incorrect type simplification of certain CONS types. (lp#1999352, reported by Paul Dietz) * bug fix: method combination group selection interprets the symbol * as a wildcard element within proper qualifier-pattern lists. (reported by Maciej Katafiasz and by Daniel Kochmański) * bug fix: &WHOLE can be used without error in define-method-combination arguments lambda lists. (reported by Daniel Kochmański) * bug fix: bogus debug variables generated for closure variables whose value cell had not yet been allocated could cause segfaults and gc crashes (reported by _death on #sbcl) * bug fix: handling of float NaNs in two-arg numeric comparison functions is more consistent with the required semantics in IEEE 754 when comparing with rationals. * bug fix: ensure that the hide-packages test passes even when the system retains internal cross-reference metadata. (lp#2002896, reported by 3b) * bug fix: don't trip an internal assertion in weak hash tables with finalizers. (lp#1998064) * optimization: load-time only code is no longer retained at runtime when functions close over top level bindings. * optimization: GO and RETURN-FROM now elide out-of-extent tag checks when the compiler can prove it's safe even on high safety. * optimization: addition of a fixnum to a bignum generates less garbage. * optimization: in many cases, type inference and code generation is improved for and around numerical comparison functions. |
From: Christophe R. <cs...@ca...> - 2022-12-29 12:46:42
|
Dear all, I have just tagged and uploaded SBCL 2.3.0, the notable changes in which are listed below. I wish you all a happy new year and a prosperous 2023. Best wishes, Christophe changes in sbcl-2.3.0 relative to sbcl-2.2.11: * enhancement: support for SLOT-VALUE and friends has been extended to structure and condition instances. * enhancement: the error message for invalid array index conditions is clearer. (lp#1999337, reported by Hadrien Lacour) * minor incompatible change: COMPILED-FUNCTION-P now returns false for generic functions. * minor incompatible change: the compiler emit STYLE-WARNING conditions for FIND and POSITION where the item sought can never be present in the sequence. * optimization: support computing the remainder of a constant division by multiplication. * optimization: faster out of line float truncation routines. * optimization: faster RATIONAL on 64-bit platforms. * optimization: more compact testing of widetags on x86-64 and arm64. * bug fix: type intersections of RATIONAL ranges with (NOT INTEGER) are computed more consistently. (lp#1998008) * bug fix: fix miscompilation of integer/fixnum comparisons where both arguments are on the stack. |
From: Christophe R. <cs...@ca...> - 2022-11-28 20:40:37
|
Dear all, I have released SBCL 2.2.11, and uploaded some artifacts to SourceForge: more will probably be uploaded in due course. The major changes in this release are summarized below. Best wishes, Christophe changes in sbcl-2.2.11 relative to sbcl-2.2.10: * platform support: ** arm64: allow the use of CLISP as a build host. (lp#1996942, reported by Andrew Patterson) * enhancement: improvements to constraint propagation around comparison functions. * optimization: conditional move VOPs can work on boxed values and produce less consing. * optimization: NUNION and UNION are generally faster. * bug fix: slot-makunbound-using-class can be redefined without redefining the other slot methods. (lp#1956621, reported by Michał Herda) * bug fix: GETHASH on a table created without ":synchronized t" when run concurrently in multiple threads could have returned incorrect results. * bug fix: build of contributed modules assumed that 'cat' was always in /bin/cat on POSIX systems. (lp#1995224, reported by Kasper Gałkowski) * bug fix: INSPECT on an (ARRAY NIL) no longer hangs. (lp#1995639, reported by Michał Herda) * bug fix: Fix miscompilation of FILE-STRING-LENGTH when the first argument has a known FILE-STREAM type. (lp#1995881) |
From: Christophe R. <cs...@ca...> - 2022-10-30 20:27:32
|
Dear all, I have just tagged sbcl-2.2.10 and uploaded some artifacts to sourceforge; other builds will follow in due course. As well as the user-visible changes in this release (summarized below), there is the beginnings of support for user-controllable allocation arenas, allowing more control over allocation and particularly over when objects in those arenas can be considered garbage. This functionality is still in development and may change, but if it is something that might be of interest, please take a look at doc/internals-notes/arena-allocation.txt in the source tree and follow up on sbcl-devel. Christophe changes in sbcl-2.2.10 relative to sbcl-2.2.9: * platform support: ** win32: improved handling of stack overflow exceptions. (lp#1302866) ** Mac OS X: enforce stronger alignment when building the runtime. (lp#1991485, reported by Yan) ** arm64: support for building the system without the sb-unicode feature (i.e. with 8-bit characters) is restored. * bug fix: do not elide the GC store barrier in closures. (lp#1982608, reported by Andrew Berkley) * bug fix: make sb-introspect tests pass when the system is built without support for source locations. (lp#1635349, reported by Tomas Hlavaty) * bug fix: erroneous assumption that the format-control of a simple condition was a string. (lp#1803727) * bug fix: compiler consistency failure in modular arithmetic widening. (lp#1990715) * bug fix: provide a stub for a helper function (lp#1992316) |
From: Christophe R. <cs...@ca...> - 2022-09-29 08:22:39
|
Dear all, I have just released sbcl-2.2.9; some artifacts have already been uploaded to SourceForge, though the manual and website pages are still in the process of being built, and other binaries will become available in due course. The major changes in this release are summarized below. Looking forward, we will shortly be in the position that we will no longer need ASDF to build the contributed modules distributed alongside SBCL. This means that we now have some options regarding how we should handle distribution of ASDF. I have set up a poll allowing people to express their preference of various possible scenarios, or to suggest their own, at https://forms.gle/4WEvwqjJcu78cqtG9 -- I will read responses and feed them in to our decision-making; please do give your opinions. Best wishes, Christophe changes in sbcl-2.2.9 relative to sbcl-2.2.8: * platform support: ** fix build on Darwin platforms with -fno-common. (lp#1980570, thanks to Sergei Trofimovich) ** include /usr/local paths when building on FreeBSD. (lp#1981112, reported by William G Lederer) ** several micro-optimizations on x86-64, including: better use of INC/SUB, better SAP+, shorter KEYWORDP, better argument count verification ** arm64: better KEYWORDP, better argument count verification ** fix build on 32-bit Windows. (lp#1988534, thanks to Alexis Rivera) ** x86-64: WITH-PINNED-OBJECTS can pin constants. (lp#1989037) * bug fix: make sb-simd build in compiler-only SBCL. (thanks to Tonas Hlavaty) * bug fix: SB-SPROF:WITH-PROFILING now returns the value of its body (as was advertised in its documentation). * bug fix: catch malformed LET* forms in DEFMETHOD bodies. (lp#1988880, reported by Patrick Poitras) * enhancement: better source form tracking for atoms in LET bindings. * optimization: reader character macro lookup is simpler and faster. * optimization: FILL-POINTER (and its setter) are more compact. |
From: Christophe R. <cs...@ca...> - 2022-08-30 10:51:20
|
Dear all, I have just released SBCL 2.2.8; some artifacts are available from SourceForge, and others will follow shortly. The major changes in this release are listed below. Best wishes, Christophe changes in sbcl-2.2.8 relative to sbcl-2.2.7: * minor incompatible change: support for 32-bit x86/Darwin has been removed. * bug fix: fix miscompilation related to empty infinite loops preceded by conditional expressions. (lp#1986810, reported by Artyom Bologov) * bug fix: fix gc invariant violations. (lp#1983218, reported by Marius Gerbershagen; lp#1983248, reported by Vasily Postnicov) * bug fix: use CC to compile SBCL as a shared library. (lp#1976148, reported by Pierre Neidhardt) * bug fix: don't crash the system completely if RUN-PROGRAM fails to create a pipe. (lp#1979841, reported by Thor Kristofferson) * bug fix: be more disciplined about use of C system includes. (lp#1981799, reported by Mark Evenson) * bug fix: STRING/= returning wrong results for some cases when :END1/:END2 were not compile-time constants. (lp#1983284) * bug fix: compile-time checking of :START and :END keyword arguments to FILL is more complete. * optimization: adjacent type tests on the same value are more compact (arm64, x86-64). * optimization: the compiler can inline COPY-STRUCTURE in more cases. * optimization: type checks for non-simple arrays are shorter. * optimization: printing strings (as Lisp data) is faster. |
From: Christophe R. <cs...@ca...> - 2022-07-29 16:34:42
|
Dear all, I have just released SBCL 2.2.7, with some uploads to Sourceforge already completed (and probably some more binaries pending). The major changes are summarized below. I also wish to note that there is a last-minute change (thanks to Felix Lange) in this release to preserve CLSQL compatibility with SBCL, where CLSQL reaches a little too incautiously into internals of the LOOP implementation; I encourage any users of CLSQL with SBCL to collaborate together to make this integration a little more robust, because I hope to remove the workarounds in the near future. Best wishes, Christophe changes in sbcl-2.2.7 relative to sbcl-2.2.6: * minor incompatible change: the compiler emits full WARNINGs for undefined references to variables in TYPE and DYNAMIC-EXTENT declarations, and for SETQ of an undefined variable. (This was the historic behaviour for everything except the DYNAMIC-EXTENT case, which used to emit a STYLE-WARNING, but these diagnostics got lost in a refactoring since sbcl-2.2.2) * minor incompatible change: literal objects (strings, in particular) in compiled code may at the discretion of the runtime be placed in read-only memory. Violations of CLHS 3.7.1 could produce memory faults. If ":PURIFY NIL" is given to SAVE-LISP-AND-DIE then no read-only memory will be used. * enhancement: Unicode support has been updated to support version 10.0.0 of the Unicode standard, including addition of characters and refinements to breaking and collation algorithms. * bug fix: AVX is no longer used for loading simd-pack-256 constants. (lp#1928097) * bug fix: fix building the manual when some contribs are blocked or otherwise disabled. (lp#1979821, thanks to Robert Schiele) * bug fix: fix type derivation of sequence functions with highly-specific declared argument types. (lp#1980292, reported by James Kalenius) * bug fix: internal error when optimizing chains of conditionals in local functions. (lp#1981607, reported by Pasha K) * bug fix: fix comparison of negative floats with bignums. * optimization: faster TRUNCATE with float arguments. * optimization: EQUALP hashing of large floating point values should generate less garbage. |
From: Christophe R. <cs...@ca...> - 2022-06-30 08:29:53
|
Dear all, This morning I have released SBCL 2.2.6, and uploaded materials to SourceForge. The changes in this version are summarized below. It's perhaps worth mentioning a few things related to these notes in more detail. Firstly, the new core compression format uses zstd; to build the system with support for core compression (not enabled by default), as well as providing the --with-sb-core-compression build option, the build host will need development artifacts for libzstd -- on my Debian system, that's provided in the libzstd-dev package. Secondly, we have integrated the new sb-simd contrib developed by Marco Heisig and others. It is only built on systems which fully support AVX2, and even then can be turned off using the --without-sb-simd build option (which may be desireable as it adds significantly to the build time of the system). Please report successes and particularly failures with sb-simd to the sbcl-devel mailing list. Additionally, we have done some behind-the-scenes administration with the DNS, the major result of which is that we now support SSL on <https://sbcl.org/> and <https://www.sbcl.org/>. There should be no other observable change with the web presence; again, if you do notice anything awry, please report it to sbcl-devel. Best wishes, Christophe changes in sbcl-2.2.6 relative to sbcl-2.2.5: * minor incompatible change: support for 32-bit x86 on macOS has been removed. * new contrib: sb-simd, to provide a convenient interface for SIMD programming on x86-64. (Thanks to Marco Heisig and other sb-simd contributors) * enhancement: core compression now uses zstd instead of zlib. (lp#1881089) * enhancement: provide compiler warnings for specialized array type mismatches in CONCATENATE. * enhancement: provide compiler warnings for bad sequence bounding index designator arguments to sequence functions. * enhancement: The sb-mpfr contrib now allows coercion from MPFR-FLOATs to CL:RATIONAL. (Thanks to Robert Smith) * bug fix: fix compilation failure related to declaiming types of constants. (lp#1977726, reported by Pierre Neidhardt) * bug fix: fix race condition in CLOS optimized constructors. (lp#1951341) * bug fix: fix too-eager elision of allocation barriers when initializing closure and structure objects. * optimization: fasl files are now usually smaller (up to 10% on default policy) and may load faster, especially on high debug. * optimization: faster string comparisons on arm64, x86-64. * optimization: faster [n]string-down/upcase on arm64, x86-64. * optimization: faster [n]reverse for 8- and 32-bit element vectors on arm64, x86-64. * optimization: faster type tests for (CONS (EQL symbol)) on x86-64. |
From: Christophe R. <cs...@ca...> - 2022-05-30 15:09:27
|
Dear all, I have released SBCL 2.2.5, with the usual artifacts on their way to SourceForge. The major user-visible changes are summarized below. An upcoming change, not active in this release, will change the way top-level forms are handled by the file compiler; if any intrepid users wish to test the current state, setting the (internal) parameter `sb-c::top-level-lambda-max` to 20 will activate it for the current session; any success or failure reports using a non-zero value would be useful to the development team. Best wishes, Christophe changes in sbcl-2.2.5 relative to sbcl-2.2.4: * minor incompatible change: SB-EXT:*DERIVE-FUNCTION-TYPES* being NIL now means that function calls will strictly only use type information from proclaimed ftypes. The previous behavior (still the default) of using derived type information from the same file is specified with :SAME-FILE. (lp#1393302) * minor incompatible change: RENAME-FILE now overwrites the target file on Windows too, making its behaviour consistent with other platforms. * minor incompatible change: inlining of local function is inhibited if policy DEBUG = 3. * platform support: ** single-stepping is now supported on 64-bit PowerPC platforms. (thanks to Thomas Fitzsimmons) ** the :SB-LINKABLE-RUNTIME feature is now supported on 32-bit and 64-bit PowerPC platforms. (thanks to Thomas Fitzsimmons) * optimization: improved type derivation of REDUCE with some known reducing functions. * enhancement: debug source locations now work correctly for top level forms with policy DEBUG = 1, as well as for block compiled files. * enhancement: TRACE now supports tracing macro functions, compiler-macro functions, individual methods and local functions. See the user manual for more details. (lp#375314) * bug fix: fix integer comparisons on x86-64 and arm64 (lp#1971088, reported by Guillaume LE VAILLANT) * bug fix: coverage instrumentation behaves correctly with respect to non-local exits. * bug fix: ftype proclamations now take effect immediately during block compilation. * bug fix: block compilation of top-level closures now work. (lp#1931730, reported by Sean Maher) * bug fix: streams opened from RUN-PROGRAM but left unclosed because of a non-local exit no longer cause unrelated streams to be closed later. |
From: Christophe R. <cs...@ca...> - 2022-04-29 17:27:19
|
Dear all, I have just released SBCL 2.2.4; build artifacts will shortly be available on SourceForge. The major changes in this release are listed below. Best wishes, Christophe changes in sbcl-2.2.4 relative to sbcl-2.2.3: * enhancement: better constraint propagation in the compiler. Specifically, the compiler can now derive the type of X in control flow join situations such as (LAMBDA (X) (ECASE (1 ...) (2 ...)) X) or (LAMBDA (X) (ETYPECASE (INTEGER ...) (SYMBOL ...)) X) instead of forgetting all information about X after the E(TYPE)CASE. * optimization: inlined functions enclosed in local macro definitions no longer save their entire lexical environment, reducing unnecessary memory retention. * optimization: faster (< integer fixnum) comparisons (ARM64 and x86-64). * platform support: ** RUN-PROGRAM is faster on Linux and FreeBSD if close_range(2) is available. * bug fix: block compilation now interacts more correctly with the creation of new packages. * bug fix: internal compiler error in array reference optimizer. (lp#1966624) |
From: Christophe R. <cs...@ca...> - 2022-03-28 20:24:21
|
Dear all, I have just built and tagged sbcl; various artifacts are already available at SourceForge, and I expect more will come along in the next few days. The main changes in this release are listed below. Best wishes, Christophe changes in sbcl-2.2.3 relative to sbcl-2.2.2: * minor incompatible change: SB-THREAD:MUTEX-OWNER may return :THREAD-DEAD if the apparent owner either exited nearly instantly after releasing the mutex (and is not now the owner), or died and never released it. * minor incompatible change: building the system with the simple semi-space copying collector is no longer supported. * minor incompatible change: support for PPC/Darwin has been removed. * platform support: ** fix regressions in threads on RISC-V. (lp#1962598) ** threads are now enabled by default on RISC-V. ** The generational garbage collector is now supported on MIPS. * optimization: fasls containing standard object literals are now smaller and load more efficiently. * optimization: faster arithmetic (*-+) on word-sized integers when the result is not known to fit into a word (ARM64 and x86-64). * bug fix: EQness of constants is now always preserved when block compiling. |