Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: pkubaj/sbcl

Tags

sbcl-2.6.0

Toggle sbcl-2.6.0's commit message
changes in sbcl-2.6.0 relative to sbcl-2.5.11:

  * enhancement: the compiler will recognize certain combinations of
    high-level optimizations as expressible by shorter machine instruction
    sequences, documented in the manual under "Recognized idioms" in the
    "Efficiency" section.
  * enhancement: the SB-COVER code coverage tool can emit a report in a format
    compatible with the LCOV open-source tool.
  * bug fix: compiled code calling EXPT with constant integer exponent (or
    1/2) and floating point base is more consistent with out-of-line EXPT.
    (lp#1899969, lp#2136082)
  * bug fix: fix SCALE-FLOAT on denormal floats.  (lp#2000178, re-reported by
    Barton Willis)
  * bug fix: the system's test of constructing an ELF core is compatible with
    storing code coverage information.  (lp#2131956)
  * bug fix: inconsistent result from SUBTYPEP on array types.  (lp#2132250)
  * bug fix: the SB-COVER reporting utilities can now annotate source files
    containing array literals using #A(<dims> <eltype> . <contents>) syntax.
    (lp#2134290)
  * bug fix: compiler error resulting from losing some already-computed
    derived type information.  (lp#2136852)
  * bug fix: miscompilation of DPB involving non-word-sized intermediate
    results but a word-sized final result.  (lp#2137028)
  * bug fix: compiler error when asserting the result of a known non-list to
    be of a type union involving a CONS with a given CAR.  (lp#2137030)
  * bug fix: miscompilation of DPB with constant byte positions above the
    number of bits in a word.  (lp#2137046)
  * bug fix: miscompilation of PHASE with a negative zero argument.
    (lp#2137068, lp#2137119)
  * bug fix: failure to round-trip types involving positive and negative zeros
    of different floating point representations.  (lp#2137140)
  * optimization: machine arithmetic can be used when bit-shifting bignum
    inputs in a modular arithmetic context.
  * optimization: extending an association list, including using backquote
    notation, is recognized as ACONS and is potentially stack-allocatable.
  * optimization: some intermediate copies of lists are elided for calls to
    maybe-copying operations surrounded by a call to COPY-LIST.
  * optimization: a number of comparison operations on rationals are
    simplified where possible.
  * optimization: a number of arithmetic operations recognize and elide double
    negations or calls to ABS.
  * optimization: tracking code with coverage information uses a weak vector
    per fasl file, rather than a list of per-function weak pointers.
  * optimization: REDUCE has been tweaked for better performance both on lists
    and vectors.
  * optimization: for simple-bit-vectors of the right alignment and length,
    REVERSE will operate a word-at-a-time.

sbcl-2.5.11

Toggle sbcl-2.5.11's commit message
changes in sbcl-2.5.11 relative to sbcl-2.5.10:

  * incompatible change: the compiler's internal representation of "source
    paths" for unquoted forms within backquotes has changed.  Other developer
    tools using this representation, including callers of some exported
    SB-INTROSPECT functions, will misreport the location of signalled
    conditions and/or definitions in top-level forms including backquotes and
    commas.
  * minor incompatible change: undefined syntaxes following
    *READ-BASE*-related reader macros (such as #B, #O, #X, #R) now signal
    reader errors.
  * minor incompatible change: the convenience reader syntax pkg::(...) no
    longer triggers package locks for the PKG package.
  * minor incompatible change: building with the SB-DEVEL feature inhibits
    identical code folding at the end of the build of the SBCL system itself.
  * enhancement: improve the compiler's knowledge of the dimensions of the
    result of MAKE-ARRAY.  (lp#2130477, thanks to Vasily Postnicov)
  * enhancement: the SB-COVER contributed module has been made substantially
    more robust; collecting coverage no longer inhibits various CLOS
    optimizations.  (For SBCL developers, it is now capable of reporting on
    the coverage of the SBCL system itself, provided it is built with the new
    :SB-COVER-FOR-INTERNALS build-time feature.)
  * bug fix: REQUIREing the SB-MD5 contributed module no longer installs a
    compiler optimization policy restriction of SPACE being at least 1.
  * bug fix: don't miscompute the sizes of garbage collector data structures
    for running with dynamic space heap sizes above 128GiB.
  * bug fix: ENOUGH-NAMESTRING when the pathname and defaults arguments are
    both logical pathnames with the same host returns a shorter string than
    previously.
  * bug fix: the compiler retains fewer temporary data structures when
    compiling code with coverage data.
  * bug fix: requiring the SB-MD5 contrib module no longer installs a
    restriction on the SPACE optimization quality.
  * bug fix: internal compiler floating point error while compiling certain calls
    to CEILING.  (lp#2132231)
  * bug fix: miscompilation of TYPEP on intersections of types including
    rational ranges.  (lp#2132207)
  * bug fix: miscompilation of MISMATCH from insufficiently cautious type
    derivation.  (lp#2132187)
  * bug fix: internal compiler error while compiling ASH from an incorrect
    consistency check.  (lp#2132156)
  * bug fix: internal compiler error from missing constant-folding stub for
    internal function.  (lp#2132126)
  * bug fix: miscompilation of GET-PROPERTIES at low SAFETY optimization
    qualities.  (lp#2131985)
  * bug fix: internal compiler error while generating code for multiplications
    of fixnums where the result is also asserted to be a fixnum. (lp#2131894)
  * bug fix: the asserted real range of ATANH was incorrectly stated as
    [-1,1].  (lp#2131711)
  * bug fix: incorrect type error resulting from wrong type derivation of
    REDUCE #'LOGIOR.  (lp#2131699)
  * bug fix: specialized XEPs should not be generated during
    block-compilation or interpretation.  (lp#2131118)
  * bug fix: fix a wrong compiler transform for MAKE-ARRAY leading to
    miscompilation.  (lp#2131048)
  * bug fix: miscompilation of type checks of (UNSIGNED-BYTE <X>) for large
    <X>.  (lp#2130028)
  * bug fix: it is now possible to inline functions containing SPECIAL
    declarations on symbols in locked packages.  (lp#2129827, reported by
    Scott L. Burson)
  * bug fix: various internal compiler errors.  (lp#2132022, lp#2129649)
  * bug fix: various wrong results and inconsistencies from SUBTYPEP on ARRAY
    types.  (lp#2130374, lp#2130424, lp#2130441, lp#2130457, lp#2130508,
    lp#2130518, lp#2130526, lp#2130542, lp#2130588, lp#2130950, lp#2131079,
    lp#2131149, lp#2131179, lp#2131186, lp#2131271, lp#2131618, lp#2130262)
  * optimization: LOGTEST participates in compiler transforms related to
    modular (machine-sized) arithmetic.
  * optimization: more arithmetic combinations simplifications.
  * optimization: (car (list a)) doesn't allocate a list.

sbcl-2.5.10

Toggle sbcl-2.5.10's commit message
changes in sbcl-2.5.10 relative to sbcl-2.5.9:

  * platform support:
    ** handling of "./" and "../" in pathname functions on Windows is improved.
       (lp#2125908, reported by khbit)
    ** use x29 for the control frame pointer on arm64, improving backtrace
       tooling.
    ** provide a plugin to lldb to display backtraces (contrib/lldb_bt.py).
    ** an experimental option for performing GC without interrupting and
       stopping foreign function calls. Enabled via --with-nonstop-foreign-call
       (for arm64, x86-64 (outside of Windows, where that's already the case.))
  * bug fix: some interactions between TWO-WAY-STREAM (and ECHO-STREAM) and
    user-defined streams have been cleaned up.
  * bug fix: the SB-COVER contributed module can now annotate source files
    containing COMPLEX literals.  (A number of other more minor cosmetic
    issues have also been fixed).
  * bug fix: compiler crash from reoptimizing with some stale type information.
    (lp#2125944)
  * optimization: SLOT-VALUE calls with known slot-name on values which are of
    type (OR NULL <STRUCT>) are transformed to a null check and a structure
    access.
  * optimization: the compiler will apply constraints to the result of calling
    RANDOM.  (lp#2126978, thanks to Vasily Postnicov)
  * optimization: the compiler will perform type derivation on CL:APPLY called
    with a known function.
  * optimization: fusion of type checking and move of 64-bit integers is
    enabled on arm64 and x86-64.
  * optimization: allocation fusion for (PUSH (CONS A B) LIST) on x86-64.
  * optimization: improvements of type derivation for float rounding operations.
  * optimization: constant folding when one of the arguments is
    (if v constant1 constant2)

sbcl-2.5.9

Toggle sbcl-2.5.9's commit message
changes in sbcl-2.5.9 relative to sbcl-2.5.8:

  * minor incompatible change: remove (SETF SB-EXT:POSIX-GETENV), which only
    ever existed as an operator in SBCL on Windows.
  * minor incompatible change: (LOG -0.0) now returns
    SINGLE-FLOAT-NEGATIVE-INFINITY, more consistently with IEEE 754.
  * minor incompatible change: (EXPT 0.0 0.0) now returns 1.0, rather than
    signalling an error.
  * platform support
    ** restore functionality on NetBSD.  (thanks to Masatoshi SANO)
    ** fix building SBCL as a shared library on ARM64.  (lp#2122059, reported
       by Guillaume LE VAILLANT)
  * optimization: TYPEP with array types does less work in many cases.
  * optimization: COMPLEMENT on a known function can be transformed away in
    more cases.
  * optimization: calls to local functions with &REST arguments can be
    optimized in more cases.
  * optimization: bound checks can be eliminated in ROW-MAJOR-AREF based on
    constraints relating the index to the available array elements.
    (lp#2121253, thanks to Vasily Postnicov)
  * optimization: function type declarations no longer inhibit inlining local
    functions.  (lp#2121351, reported by kbhit)
  * optimization: bulk movement of memory in the system is implemented with
    less overhead around memmove().
  * optimization: MAKE-ARRAY with dimensions coming from ARRAY-DIMENSIONS on
    an array with known dimensions avoids consing an intermediate dimensions
    list.
  * optimization: a number of arithmetic operators and relations in
    combination with some constant arguments do partial expression
    simplification at compile-time.  (lp#2122063 for %NEGATE thanks to Vasily
    Postnicov)

sbcl-2.5.8

Toggle sbcl-2.5.8's commit message
changes in sbcl-2.5.8 relative to sbcl-2.5.7:

  * minor incompatible change: SB-THREAD:MAIN-THREAD-P can only be applied to
    threads, not arbitrary lisp objects.
  * minor incompatible change: the instruction-combining (peephole)
    optimization pass does not run if COMPILATION-SPEED has a higher value
    than SPEED.
  * platform support:
    ** on arm64, provide better backtraces in the statistical profiler's
       reporting, along with better detection of assembly routines, local
       functions and callers of foreign code.
    ** on ppc64le, make --dynamic-space-size behave as documented.
       (lp#2121255)
    ** on x86-64, handle more cases in the ALU+TEST peephole optimization.
  * bug fix: for file-streams with :DIRECTION :IO, input and output file
    positions should no longer get out of sync.  (lp#1600610, reported by
    Guillaume le Vaillant, test cases by Brent Benson)
  * bug fix: an infinite loop in SUBTYPEP for types involving negations of
    CONS of specialized ARRAY types.  (lp#2114755)
  * bug fix: miscompilation of a CASE form with small numeric keys.
    (lp#2119035)
  * bug fix: anonymous alien structs definitions are deduplicated, making it
    harder to overflow internal data structures.  (lp#2114943, reported by
    Brooke Tilley)
  * bug fix: allow ALU+TEST peephole optimizations to fire on x86-64.
    (lp#2120547, reported by Christoph Breitkopf)
  * bug fix: miscompilation of a LOOP form with rational arithmetic on
    variables involved in termination tests.  (lp#2121178, reported by 3b)
  * bug fix: the compiler is better able to associate some forms in a
    macroexpanion with the original sources.
  * optimization: improve array construction with LIST or SEQUENCE
    :INITIAL-CONTENTS.

sbcl-2.5.7

Toggle sbcl-2.5.7's commit message
changes in sbcl-2.5.7 relative to sbcl-2.5.6:

  * enhancement: the encapsulate mechanism can be used to wrap functions that
    are currently not FBOUNDP.
  * bug fix: internal compiler error in a failure of stack analysis during
    propagation of dynamic-extent.  (lp#2113935)
  * bug fix: address regression in type inference for TRUNCATE and other
    division-related operators.  (lp#2115305, reported by Vasiliy Postnicov)
  * bug fix: cleanup of the main thread is performed more carefully when SBCL
    is used as a shared library.  (lp#2115669, reported by Fedorov Alexander)
  * bug fix: the compiler does not lose track of the types of specialized
    external entry points for user-defined functions.  (lp#2115955, reported
    by Matt Kaufmann)
  * bug fix: adjust compiler template argument acceptability for increased
    usage scope.  (lp#2116150)
  * bug fix: provide a stub for ROTATE-RIGHT-WORD for constant-folding during
    compilation.  (lp#2117080)
  * bug fix: provide a stub for %MAKE-DOUBLE-FLOAT for constant-folding during
    compilation.  (reported by Eric Marsden)
  * bug fix: don't loop infinitely in the presence of type-mismatching
    circular #S read syntax.  (reported by Bohong Huang)
  * optimization: calls to SLOT-VALUE (and related functions) within methods,
    on values that are not a specialized argument to those methods, are
    optimized similarly to calls to SLOT-VALUE in non-method code.
  * optimization: calls to REPLACE with VECTOR first argument and LIST second
    argument are improved.
  * optimization: TYPECASE over a set of structure types known not to be
    extensible is converted to an array lookup.

sbcl-2.5.6

Toggle sbcl-2.5.6's commit message
changes in sbcl-2.5.6 relative to sbcl-2.5.5:

  * enhancement: the compiler now recognizes when local functions (both named
    and anonymous) are used only as downward funargs in many situations and
    can stack allocate such closures even without explicit dynamic extent
    declarations. See the updated manual entry on stack allocation for more
    information and how user-code can declare funargs as downward.
  * minor incompatible change: optimization notes for a variable declared to
    be of type LIST will not be emitted for various transforms which are
    defined to operate on (OR NULL VECTOR).
  * minor incompatible change: some forms, including a THE form with an
    invalid type specifier, or a CASE form with bad entries, no longer produce
    a runtime error.  (They continue to provide a full warning at
    compile-time).
  * platform support
    ** on arm64, breakpoint-based stepping is now thread-safe.
    ** on arm64, backtraces after interrupts should be more correct.
    ** on x86-64 with the immobile-space feature, calling from assembly
       routines to lisp routines is more efficient.
    ** if arenas are enabled, users can define a lisp function to act as a
       handler to customize behaviour on arena exhaustion.
  * bug fix: address several bugs related to dynamic-extent declarations,
    inference, and stack allocation.
  * bug fix: the stack return page protection is temporarily disabled during
    GC, so that GC can complete even if it needs to write in the return page.
  * bug fix: the compiler generates code to the right entry point for specialized
    functions.  (lp#2111876, reported by Matt Kaufmann)
  * bug fix: the compiler's constraint derivation would sometimes not terminate.
    (lp#2113747)
  * bug fix: when the runtime structure representing a thread is re-used, the
    stack guard pages are restored.
  * bug fix: type checks for &OPTIONAL arguments are done only once.
  * bug fix: CEILING's docstring was wrong.  (reported by Dave Tenny)
  * bug fix: APPLY could be called with too many arguments when parsing MEMBER
    type specifications.  (reported by Zach Beane)
  * bug fix: the compiler could allow constant values of bad types to trigger
    optimizations.  (lp#2113977)
  * bug fix: internal compiler error when attempting to write out a type check
    for a value already proved to never exist (i.e. be of type NIL).
    (lp#2112475)
  * optimization: better division for signed-word dividends and unsigned-word
    divisors on arm64 and x86-64.
  * optimization: improvements to subtraction involving bignums and words on
    x86-64.
  * optimization: perfect-hash-based transformations are applied to sequence
    functions with keys including fixnums and characters as well as symbols.

sbcl-2.5.5

Toggle sbcl-2.5.5's commit message
changes in sbcl-2.5.5 relative to sbcl-2.5.4:

  * minor incompatible change: the output from TRACE is now prefixed by a
    FRESH-LINE on *TRACE-OUTPUT*.
  * platform support:
    ** On Linux, the system is better at negotiating with the kernel to find
       locations for Lisp memory spaces, succeeding more often than
       previously.
  * bug fix: resolve signed/unsigned char mismatch in RUN-PROGRAM on Windows.
    (lp#2110525, reported by awlygj)
  * bug fix: compiler confusion given sufficiently complex derived type
    constraints.  (lp#2109902)
  * bug fix: compiler inconsistency in low-level representation leading to
    inconsistent transformations.  (lp#2109837)
  * bug fix: return NIL from calls to DOCUMENTATION on illegal function names.
  * bug fix: calls to APPLY or VALUES-LIST on some combinations of constant
    arguments could lose the constant nature after transformation.  (thanks to
    Hayley Patton)
  * optimization: some micro-improvements to bignum operations, particularly
    on x86-64 and arm64
  * optimization: allow the result of MAKE-STRING to be allocated on the stack
    when :element-type is unknown.
  * optimization: the compiler will recognize the use of ZEROP on the results
    of LENGTH and REM (on suitable operands) to avoid full computation of the
    intermediate result.

sbcl-2.5.4

Toggle sbcl-2.5.4's commit message
changes in sbcl-2.5.4 relative to sbcl-2.5.3:

  * enhancement: :FUN-END breakpoints now support the known values return
    convention when DEBUG > 0. This means that tracing local functions works
    in more situations.
  * platform support:
    ** on x86-64, relocation of static space is always enabled.
    ** save-lisp-and-die with :callable-exports can be used for sbcl.dll on
       Windows.
    ** Building with UCRT64 on Windows is now fully supported.
  * bug fix: :FUN-END breakpoints work on PowerPC, SPARC, and MIPS again.
  * bug fix: incorrect rounding when converting some bignums to floats.
  * bug fix: the second value of the truncation functions is more consistently
    computed for bignum floats.
  * bug fix: fix code generation for constants being considered from
    conflicting type propagation information.  (lp#2107652)
  * bug fix: fix 32-bit range check code generation on x86-64.  (lp#2106432)
  * bug fix: types are correctly propagated from the keyword argument
    processor to their uses.  (lp#2106358, reported by Vasily Postnicov)
  * bug fix: fix compilation error from CHECK-TYPE when the value checked is a
    keyword argument and the type specifier argument is not a valid type
    specifier.  (lp#2104089)
  * bug fix: generate stack-manipulation code in the presence of non-local
    exits and dynamic-extent declarations even more carefully.  (lp#2043242)
  * optimization: (LOGIOR A (- (MASK-FIELD (BYTE 1 constantN) A))), or its
    equivalent (LOGIOR A (- (LOGAND (ASH 1 constantN) A))), is recognized as
    an idiom for sign-extending the N+1-bit field in A, and can be used for
    signed modular arithmetic.
  * optimization: ROUND is faster for floats.
  * optimization: TRUNCATE/FLOOR/etc. are faster on ratios.
  * optimization: MAKE-SEQUENCE does not invoke the full type algebra when the
    provided type specifier is simple.
  * optimization: don't attempt to align branch targets if the SPACE
    optimization quality is greater than 1.
  * optimization: circularity detection for printing now places its temporary
    data structures on the stack.
  * optimization: faster GCD on fixnums, especially when the difference in
    magnitude is large.
  * optimization: the implementation of ISQRT has been replaced with the
    (faster) algorithm currently implemented in CPython.

sbcl-2.5.3

Toggle sbcl-2.5.3's commit message
changes in sbcl-2.5.3 relative to sbcl-2.5.2:

  * enhancement: breakpoint debugger commands have been added.  Included is a
    stepper based on breakpoints requiring no extra instrumentation.  However,
    it still has less functionality than the existing single stepper.  See the
    new debugger manual section titled "Breakpoint Commands" for more
    information on the new commands.
  * minor incompatible change: the behaviour of :save-runtime-options has been
    restored to match the documentation.  (lp#2096995, reported by Zach Beane)
  * minor incompatible change: invoking CHANGE-CLASS from user code no longer
    grabs the CLOS world lock.  Callers must take responsibility for ordering
    execution of CHANGE-CLASS and any changes to the class hierarchy.
  * platform support:
    ** (CAS SAP) is implemented on ARM v8.1 directly with CAS instructions.
    ** on x86-64, list constructors emit more compact code sequences,
       particularly in the presence of multiple references to the same object.
    ** on x86 and x86-64, fix the stack overflow check to use signed
       comparisons.
    ** on Darwin/arm64 and Linux/x86-64, provide a restart to disable
       floating-point exceptions of the type signalled, and another to disable
       all floating-point exceptions.
  * bug fix: cycle detection in class precedence lists happens before adding
    classes to the direct subclasses of the parent.
  * bug fix: stack-allocated unaligned cons cells no longer cause errors in
    the debugger.
  * bug fix: local function type declarations no longer inhibit tail calls in
    (SAFETY 0) code.  (lp#2039301)
  * bug fix: bad or unknown type specifiers in CHECK-TYPE do not crash or slow
    down the compiler.  (lp#2102644, lp#2102653, lp#2102714, lp#2104048)
  * bug fix: numerous bug fixes relating to the type system's handling of
    arrays make SUBTYPEP more reliable and less likely to express a
    contradiction.  (lp#1996980, lp#2100563, lp#2100728, lp#2100779,
    lp#2100784, lp#2100812, lp#2100825, lp#2101192, lp#2101215, lp#2101803,
    lp#2102684)
  * bug fix: improve other aspects of the type system's self-consistency.
    (lp#2101073, lp#2101170, lp#2101183, lp#2101189, lp#2101399, lp#2101589)
  * bug fix: fix compiler type error when deriving the type of FTRUNCATE.
    (lp#2101073)
  * bug fix: fix compiler error when deriving constraints for single-floats.
    (lp#2102759)
  * bug fix: startup tuning for particular microarchitectures no longer
    accidentally disables one of the optimizations.
  * optimization: ROW-MAJOR-AREF is transformed to use the same array
    machinery as one-dimensional array references.  (Thanks to Scott Burson
    for the suggestion)
  * optimization: list constructors emit shorter code sequences on x86-64,
    particularly in the presence of multiple references to the same object.
  * optimization: FLOOR and CEILING on ratios do not unnecessarily cons.
  * optimization: provide specialized CALL-NEXT-METHOD functions for the
    no-argument and full-argument cases.