Skip to content

Tags: mayerrobert/sbcl

Tags

sbcl-2.1.8

Toggle sbcl-2.1.8's commit message
changes in sbcl-2.1.8 relative to sbcl-2.1.7:

  * minor incompatible change: the experimental DEFINE-CAS-EXPANDER macro has
    been removed.
  * minor incompatible change: the hooks in *INIT-HOOKS* are called before
    starting the finalizer or other non-user threads.  (thanks to Sean Whitton)
  * platform support:
    ** many improvements to code generation on arm64.
    ** avoid slow forms of the bit test instructions BT, BTS, BTR on x86-64.
    ** fix a bug in loading large core files on the Apple M1/arm64.  (thanks
       to Mayank Manjrekar)
    ** fix a bug in loading core loading on the Apple M1/arm64.  (reported by
       Eric Timmons)
  * enhancement: the block-compiler is more robust to files with intermingled
    compile-time and load-time effects.  The semantics of the block-compiler
    remain not-entirely ANSI compatible.  (thanks to Sean Maher)
  * enhancement: (CAS SAP-REF-<x>) and CAS on alien integers is implemented on
    ppc64 and x86-64, working towards fixing lp#1894057
  * bug fix: fix OPEN-STREAM-P on streams closed by saving a core.
    (lp#1938433, reported by Guillaume LE VAILLANT)
  * bug fix: remove a spurious warning from COERCE.  (lp#1920931, reported by
    Andrew Berkley)
  * bug fix: remove a warning from inlining SET-EXCLUSIVE-OR.  (lp#1936470,
    reported by Jerome Abela)

sbcl-2.1.7

Toggle sbcl-2.1.7's commit message
changes in sbcl-2.1.7 relative to sbcl-2.1.6:

  * incompatible change: on certain platforms (currently just x86-64),
    dynamic-extent arrays specialized on character and numeric types and
    created without either :INITIAL-ELEMENT or :INITIAL-CONTENTS will reflect
    previous contents of the stack instead of #\null (or 0) in all elements.
  * minor incompatible change: SB-SPROF:START-PROFILING no longer silently
    does nothing if the clock is already running. It instead stop and restarts
    with the newly provided options, and warns.
  * minor incompatible change: the system attempts to refer to the supplied
    pathname in compiler diagnostics, if relevant, rather than the truename.
  * enhancement: new contrib module sb-graph producing graphical
    visualizations of Intermediate Representations of SBCL compilation data
    structures.
  * platform support:
    ** improved code generation for unary minus in modular contexts on arm64.
    ** make the disassembler annotations slightly more robust on arm64.
    ** release space back to the Operating System on Windows.
    ** improve the test for whether pages need to be committed on Windows.
    ** fix a bug in the use of the VPCMPEQD opcode on x86-64.  (lp#1928516,
       thanks to Marco Heisig)
  * optimization: the type of (LOOP ... COLLECT ...), and the type of COLLECT
    INTO variables, is derived as LIST.  (lp#1934577, reported by SATO
    shinichi)

sbcl-2.1.6

Toggle sbcl-2.1.6's commit message
changes in sbcl-2.1.6 relative to sbcl-2.1.5:

  * minor incompatible change: COMPILE-FILE does not merge the input file's
    pathname-directory into the output path if :OUTPUT-FILE was specified
    and has a directory that is not :UNSPECIFIC.
  * platform support:
    ** improvements to unwind code generation on arm64.
    ** on x86-64, accept three operands for vshufpd.  (reported by Bela
       Pecsek)
    ** on x86-64, improvements to use of popcount
    ** improve exception handling on 64-bit Windows.  (thanks to Luis Borges
       de Oliveira)
  * bug fix: allow use of macros with improper argument list.  (lp#1929623,
    thanks to Sean Maher)
  * bug fix: COERCE no longer attempts to guess what the user meant if they
    provide a type specifier of a union of types other than STRING.
    (lp#1929614)
  * bug fix: print a single trailing zero after the decimal point for FORMAT
    ~E if there are no digits remaining to be printed and the width allows it.
    (lp#883520)

sbcl-2.1.5

Toggle sbcl-2.1.5's commit message
changes in sbcl-2.1.5 relative to sbcl-2.1.4:

  * minor incompatible change: on x86-64, the backend instruction encoders for
    movzx and for string opcodes have changed their semantics.
  * platform support:
    ** compatibility: support the latest MinGW on x86.  (lp#1923325, thanks to
       Alexis Rivera)
    ** bug fix: on x86-64, fix instruction encoding for TEST on RIP-relative
       addresses.  (lp#1925808, reported by Shinmera on #sbcl, thanks also to
       3b)
    ** bug fix: on x86-64, loading all-1s into an AVX2 register no longer
       causes an error.  (thanks to Marco Heisig)
    ** bug fix: on arm64, improve disassembly of ADD with constant 0 as MOV
    ** enhancement: on arm64, support debugger commands RETURN-FROM-FRAME and
       RESTART-FRAME more efficiently.
    ** enhancement: on x86-64, add support for vshuf* AVX2 instructions.
       (reported by Bela Pecsek)
    ** optimization: faster function calls on arm64.
    ** optimization: (SETF SBIT) is faster on x86-64.
  * bug fix: INTEGER-DECODE-FLOAT was computing the wrong answer for denormal
    double floats.  (lp#1926383, reported by Stavros Macrakis)
  * bug fix: RANDOM on a floating point argument now does not cons.  (reported
    by Tito Latini)
  * bug fix: fix a compiler crash in type derivation of LOGTEST.  (lp#1928243)
  * bug fix: fix a compiler failure when a declared function type contains a
    literal structure with a valid MAKE-LOAD-FORM method.  (lp#1929160, thanks
    to Yurii Hryhorenko)
  * optimization: FBOUNDP on a constant symbol is now faster.
  * optimization: file compilation now produces smaller fasls for files which
    reference package literals.
  * optimization: derive the type of calls to FLOAT-SIGN.

sbcl-2.1.4

Toggle sbcl-2.1.4's commit message
changes in sbcl-2.1.4 relative to sbcl-2.1.3:

  * platform support:
    ** work around address-space randomization causing instability on new
       versions of MinGW.  (lp#1921141)
  * bug fix: RANDOM on floats returns values strictly less than the float
    argument.
  * bug fix: compiler error on x86-64 resulting from attempting to zero a
    memory location with xor.  (reported by Eric Marsden)
  * optimization: extended loops updating iteration variables with THEN can
    perform specialized arithmetic for those updates.
  * optimization: in some cases, the jump table resulting from a compilation
    of TYPECASE is simpler.
  * optimization: on x86-64, IF BOUNDP followed by SYMBOL-VALUE can elide some
    memory loads and tests.

sbcl-2.1.3

Toggle sbcl-2.1.3's commit message
changes in sbcl-2.1.3 relative to sbcl-2.1.2:

  * minor incompatible change: support for the :SB-SAFEPOINT-STRICTLY,
    :SB-THRUPTION, and :SB-WTIMER build features has been removed
  * platform support:
    ** support for :SB-CORE-COMPRESSION on Darwin/ARM64
    ** support ARM v8.1 atomic and compare-and-swap instructions
    ** x86, x86-64: microoptimizations in multiple type-checking routines
  * bug fix: structures and conditions are now TYPEP all classes in the class
    precedence list of their class.  (reported by Luis Oliveira)
  * bug fix: derivation of the result type from subtraction sometimes
    erroneously excluded zero.  (lp#1916895)
  * bug fix: reduce the number of places where the system permissively accepts
    * as a type specifier where it should not be accepted.  (lp#1860919)
  * bug fix: the code-walker used by the system's implementation of CLOS can
    handle defuns declared inline.  (reported by Don Cohen)
  * optimization: EQUALP on specialized vectors and arrays is faster.
  * optimization: support routines for EQUALP hash tables generate less garbage.

sbcl-2.1.2

Toggle sbcl-2.1.2's commit message
changes in sbcl-2.1.2 relative to sbcl-2.1.1:

  * platform support:
    ** support for ARM64 macOS;
    ** improvement in coverage mark implementation on non-x86oid backends,
       approaching the existing x86oid support;
    ** more empirically-robust retrieval of the program counter from illegal
       instruction traps on SPARC;
    ** retain fewer dead objects when saving cores with precise collectors.
  * incompatible change: MAP-ALL-SAMPLES and MAP-TRACE-SAMPLES
    are no longer present in the SB-SPROF contrib module.
  * minor incompatible change: SB-SPROF:WITH-PROFILING defaults to all
    threads. SB-SPROF:START-PROFILING no longer accepts a :SAMPLING keyword.
  * enhancement: the sb-introspect contrib now supports finding the lambda
    lists of method combinations.  (thanks to Didier Verna)
  * enhancement: short-form DEFSETF now stores a source-location.
  * bug fix: canonical unions of CONS types were being incorrectly computed.
    (lp#1912863, reported by James Kalenius)
  * bug fix: better understanding of array simplicity (or otherwise) in the
    type system.  (lp#1903241)
  * bug fix: unions of rational and integer types now have a single canonical
    form, allowing more correct reasoning about them in the type system.
  * bug fix: less likely to overclaim certainty about type equality of union
    types.  (lp#1916040)
  * bug fix: HANDLER-BIND evaluates the forms producing handler functions only
    once.  (lp#1916302, reported by Christophe Junke)
  * optimization: FIND on constant sequences can be compiled into a jump
    table, in a similar manner to POSITION
  * optimization: the compiler's awareness of numeric contagion rules for
    operations on pairs of floating point numbers is improved.  (lp#1914094,
    thanks to Andrew Berkley)

sbcl-2.1.1

Toggle sbcl-2.1.1's commit message
changes in sbcl-2.1.1 relative to sbcl-2.1.0:

  * platform support:
    ** restore non-threaded NetBSD builds;
    ** adjust how the finalizer thread is started; (lp#1906571, lp#1907872)
    ** fix the encoding of PEXTR on x86-64;
  * minor incompatible change: emit warnings for list iteration forms when the
    object being iterated over is known not to be a list.  (lp#1908819,
    reported by Michael Fiano)
  * bug fix: detect 2 or 1 as an invalid number of arguments passed to
    optimized slot writing or reading effective method respectively.
    (lp#1909659, reported by Michal Herda)
  * bug fix: division by zero errors were in some cases not being signalled.
    (lp#1910098, reported by il71)
  * bug fix: erroneous coercions in the type system could lose precision.
    (lp#1910294)
  * bug fix: literal (read-time evaluated) NaNs in source code no longer cause
    compiler crashes.  (lp#1909881, reported by Michal Herda)
  * bug fix: detect more erroneous syntax in method bodies.  (lp#1912362,
    reported by Paul M. Rodriguez)
  * optimization: the compiler's understanding of EXPT is improved, reducing
    the introduction of COMPLEX types.  (lp#1908830, reported by Michael Fiano)
  * optimization: the compiler is better at computing numeric contagion when
    (COMPLEX FLOAT) types are involved.
  * micro-optimizations:
    ** moving from slightly-bigger-than-fixnum ranges is more efficient on x86-64;
    ** encode character comparisons with smaller operands on x86-64;
    ** truncating (and related operations) on floats can be inlined in more
       cases on 64-bit platforms;
    ** rounding can use specialized instructions on ARM64 and on x86-64 when
       SSE4 is available;

sbcl-2.1.0

Toggle sbcl-2.1.0's commit message
changes in sbcl-2.1.0 relative to sbcl-2.0.11:

  * minor incompatible change: the MAKE-EA internal function, used in the
    assembler, has been removed (affecting some libraries defining their own
    Virtual Operations)
  * new feature: SB-EXT:PRIMITIVE-OBJECT-SIZE can be used to interrogate the
    low-level size in memory of objects.  (lp#1636910, reported by anquegi)
  * platform support:
    ** pass required -std argument to the compiler on Solaris (lp#1885751,
       thanks to Jesse Off)
    ** better treatment of non-ASCII program arguments on Windows (lp#1907970,
       reported by Timofei Shatrov)
    ** implement the improved TYPEP with structure types on all other
       supported platforms (32-bit PowerPC, ARM, ARM64, MIPS, SPARC, RISC-V)
  * enhancement: stream dispatch (to vanilla ANSI / Gray / Simple variants) has
    been rewritten and optimized, fixing a number of bugs including:
    ** performance of WRITE-SEQUENCE on composite streams (lp#309136)
    ** handling of CLOSE on SYNONYM-STREAM (lp#1904257, reported by Richard M
       Kreuter)
    ** handling of CLOSE on BROADCAST-STREAM with no components (lp#1904722,
       reported by Richard M Kreuter)
    ** loading SB-SIMPLE-STREAMS breaks functionality of other stream classes
       (lp#1908132)
    ** some excessive consing in READ-LINE
  * enhancements related to RUN-PROGRAM:
    ** improved the documentation related to the ARGS argument (lp#806733,
       reported by mon_key)
    ** added a PRESERVE-FDS argument
  * bug fix: ensure that TYPE-OF returns something even on internal instances,
    which may become visible in the debugger.  (lp#1908261, reported by
    Philipp Marek)
  * bug fix: iteration variables established by standard forms should always
    be considered used by the compiler.  (lp#719585, reported by Roman
    Marynchak)
  * bug fix: don't allow compiler transformations to weaken the requirement
    against extended (list-form) function names in FUNCALL and related
    operators.  (lp#310069)
  * bug fix: improve automated version number generation in branches.
    (lp#897867, thanks to Martin Cracauer)
  * bug fix: add possibly-spurious futex wakes when unwinding from a call to
    futex-wait, to avoid deadlocks from interrupted waits.  (lp#1038034)
  * bug fixes in the compiler:
    ** error on malformed DESTRUCTURING-BIND (lp#1738638)
    ** error on malformed SPECIAL declaration (lp#1740756)
    ** error from use of VALUES type in COERCE (lp#1887712)
    ** enforcement of FTYPE types involving &OPTIONAL (lp#1903932)
    ** checking for proper-list-ness before applying transforms (lp#1905512)
    ** compilation of LAMBDA form including a malformed DEFUN (lp#1906056)
    ** memory fault from VALUES-related handling in high DEBUG code
       (lp#1906563)
    ** transforms handle explicit NIL arguments in :END arguments to SEARCH
       (lp#1907924)
  * bug fix: return COMPILED-FUNCTION for TYPE-OF on compiled functions.
    (lp#1906583)
  * some bugs were also closed in this release cycle as obsolete, having been
    fixed by the passage of time or other change in the environment:
    ** floating point error reporting on OS X (lp#309454)
    ** load-shared-library not working from non-main threads on OS X (lp#592425)
  * optimization: CONSTANTLY on constant arguments returns a more efficient
    function.  (lp#1852585)
  * optimization: perform fewer Lisp/Alien representation conversions in
    callbacks.
  * optimization: perform fewer redundant widetag tests when doing type tests
    of complicated union types.
  * optimization: signed-integer division on machine-word sized operands is
    now implemented using multiplication, affecting TRUNCATE, FLOOR, CEILING,
    MOD and REM.  (This optimization was already performed on unsigned-integer
    division)

sbcl-2.0.11

Toggle sbcl-2.0.11's commit message
changes in sbcl-2.0.11 relative to sbcl-2.0.10:

  * minor incompatible change: (ARRAY NIL (*)) is not a subtype of STRING,
    as is consistent with a majority of maintained CL implementations.
  * minor incompatible change: ARRAY-RANK-LIMIT is decreased from 65529 to 256
  * optimization: TYPEP on structure types is faster and more compact on
    x86[-64] and ppc64.
  * optimization: LOGCOUNT is faster on arm64.
  * optimization: SIGNUM can be inlined if its argument type is known.
    (lp#1903533)
  * bug fix: compiler crash in tail call handling.  (lp#1903938)
  * bug fix: crash in traceroot.  (lp#1903419, reported by Michal Herda)
  * bug fix: DESCRIBE called with a string as second argument no longer mutates
    that string.  (lp#1903901, reported by Michal Herda)
  * bug fix: stack clobbering by 256-bit SIMD packs on x86-64.  (lp#1901685,
    reported by Marco Heisig)