Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • debian/2%2.5.10-1

    sbcl release 2:2.5.10-1 for unstable
    
    [dgit distro=debian split --quilt=linear]
    [dgit please-upload source=sbcl version=2:2.5.10-1 upstream-tag=sbcl-2.5.10 upstream=cf47fbabf04c92f676a165a9039cb8e5bf65c673]
    
  • sbcl-2.5.10

    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

    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)
    
  • debian/2%2.5.8-1

    sbcl release 2:2.5.8-1 for unstable
    
    [dgit distro=debian split --quilt=linear]
    [dgit please-upload source=sbcl version=2:2.5.8-1 upstream-tag=sbcl-2.5.8 upstream=3d7c5355f66c469f4aa8290e3f4cf224d972e3fe]
    
  • sbcl-2.5.8

    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.
    
  • debian/2%2.5.7-1

    sbcl release 2:2.5.7-1 for unstable
    
    [dgit distro=debian split --quilt=linear]
    [dgit please-upload source=sbcl version=2:2.5.7-1 upstream-tag=sbcl-2.5.7 upstream=898643fc7b0b136f4ade762d9c5190e28c20ea28]
    
  • sbcl-2.5.7

    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

    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

    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

    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

    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.
    
  • archive/debian/2%2.5.2-1

    sbcl release 2:2.5.2-1 for unstable (sid) [dgit]
    
    [dgit distro=debian no-split --quilt=linear]
    
  • debian/2%2.5.2-1

    sbcl release 2:2.5.2-1 for unstable (sid) [dgit]
    
    [dgit distro=debian no-split --quilt=linear]
    
  • sbcl-2.5.2

    changes in sbcl-2.5.2 relative to sbcl-2.5.1:
      * minor incompatible change: in some instances when the compiler cannot
        prove that a NIL-valued branch is unreachable, where NIL is not compatible
        with the expected type, a type warning will no longer be issued.
      * minor incompatible change: the compiler will more strictly treat type
        declarations for &OPTIONAL and &KEY arguments in FTYPE declarations, no
        longer effectively adding an implicit (OR ... <default>) type when the
        function itself has a default value not matching the declared type for
        that argument.
      * enhancement: type errors in structure constructors are now restartable,
        with a USE-VALUE restart provided.
      * enhancement: CHECK-TYPE warns about type conflicts at compile-time.
      * enhancement: FTYPE declarations for functions which set their parameters
        are checked.
      * enhancement: new print control variable SB-EXT:*PRINT-CIRCLE-NOT-SHARED*,
        when used in conjunction with *PRINT-CIRCLE*, prints #1# only for
        circularities and not simple sharing.
      * platform support
        ** on Windows, make sure to commit memory after zeroing during
           save-lisp-and-die. (lp#2097197, reported by _3b)
        ** on Linux, add the TCP_USER_TIMEOUT constant to SB-BSD-SOCKETS.  (thanks
           to Mihai Bazon)
        ** on *BSD, make TCP_KEEPCNT, TCP_KEEPIDLE and TCP_KEEPINTVL available
           where the OS supports it.
        ** on x86-64, optimize BOUNDP for known-global symbols.
        ** on x86-64, optimize KEYWORDP for some arguments.
        ** on arm64, don't trigger an assertion when using FMOV on complex
           single-float registers.
        ** on arm64, improve type checking for (AND SYMBOL (NOT NULL)).
      * bug fix: using structure read macros with shared structure markers no
        longer signals type errors when the shared structure is in a slot with a
        type.  (lp#308936)
      * bug fix: non-conforming user macros which modify their source no longer
        trigger internal errors.  (lp#1371719, reported by _3b)
      * bug fix: the combination of CONSTANTLY and DYNAMIC-EXTENT declarations no
        longer causes an internal compiler error.  (lp#2059950, reported by
        bohonghuang)
      * bug fix: treat inlined functions analogously to constants in the compiler.
        (lp#2095560, reported by Vasiliy Postnicov)
      * bug fix: FTYPE declarations for &optional and &key arguments do not
        include default values when checking types.
      * bug fix: Storing coverage data no longer leads to miscompilations allowing
        reachability of unreachable code.  (lp#2092451, reported by mrkissinger)
      * optimization: elide bounds-checking for multidimensional arrays with known
        dimensions.  (reported by aeth)
      * optimization: alien callbacks are generally less heavyweight.
      * optimization: REMOVE shares the tail of the input list when there's
        nothing to remove.
    
  • archive/debian/2%2.5.1-1

    sbcl release 2:2.5.1-1 for unstable (sid) [dgit]
    
    [dgit distro=debian no-split --quilt=linear]
    
  • debian/2%2.5.1-1

    sbcl release 2:2.5.1-1 for unstable (sid) [dgit]
    
    [dgit distro=debian no-split --quilt=linear]
    
  • sbcl-2.5.1

    changes in sbcl-2.5.1 relative to sbcl-2.5.0:
      * minor incompatible change: SBCL now reveals details of its COMPLEX
        representations through UPGRADED-COMPLEX-PART-TYPE, rather than hiding
        them.
      * minor incompatible change: the compiler will warn on the use of a
        SATISFIES type with an undefined function.  (lp#576608, reported by Roman
        Marynchak)
      * minor incompatible change: (room t) now counts the space taken by the
        internals of hash-tables and CLOS instances.
      * platform support
        ** fixes to the included version of ASDF, and to sockets functions, for
           the Haiku operating system.  (thanks to Alexandru Popa)
        ** add support for CAS (compare-and-swap) on SAPs for arm64, x86-64 and
           (partially) RISC-V.  (lp#1894057, reported by Yukari Hafner)
        ** the system is now consistent with 64-bit time_t on 32-bit linux
           platforms. (lp#2063340, reported by Peter van Eynde)
        ** restore building on 32-bit ARM with newer gcc versions.  (lp#1839783,
           reported by Sébastien Villemot)
        ** fix large stack allocation on 64-bit Windows.
      * CL portability fixes to the definitions of certain compiler structures,
        detected by CLISP.  (lp#2064301, lp#2064312, thanks to Robert Brown)
      * bug fix: a misplaced assertion regarding weak hash tables would trigger
        if a garbage collection hit at just the wrong time.  (lp#2096998)
      * bug fix: structure BOA constructors with &REST arguments no longer cause
        structure slots named NIL or T to be unconditionally initialized with the
        values NIL and T respectively.
      * bug fix: structure BOA constructors without values for some slots no
        longer cause compilation errors for initforms that are not a single
        variable.
      * bug fix: sequence functions handle :TEST and :TEST-NOT both being given
        uniformly.  (lp#309143)
      * bug fix: the type system is better equipped to handle complicated unions
        of numeric types.  (lp#308937, lp#1694839, lp#1734959, lp#2073544)
      * bug fix: misoptimization of VALUES-LIST in the presence of intervening
        stack operations.  (reported by haruhi.s)
      * bug fix: apply the limit to inline expansions more selectively.
        (lp#2092518, reported by Andrew Kravchuk)
      * bug fix: compiler-detected type mismatches are reported even given the
        presence of inlined functions.  (lp#2092613, reported by Vasily Postnicov)
      * bug fix: improved type error detection for inlined array construction forms.
        (lp#2092889, reported by Vasily Postnicov)
      * bug fix: accesses to multidimensional arrays are now checked based on the
        (internal) INSERT-ARRAY-BOUNDS-CHECKS declaration, as with one-dimensional
        arrays.  (lp#2095155, thanks to Vasily Postnicov)
      * bug fix: sb-bsd-sockets:socket-connect handles EINTR caused by GC signals.
    
  • debian/2%2.5.0-1

    bc46c1d5 · Prepare for release ·
    sbcl Debian release 2:2.5.0-1
  • upstream/2.5.0

    Upstream version 2.5.0
  • sbcl-2.5.0

    changes in sbcl-2.5.0 relative to sbcl-2.4.11:
      * platform support:
        ** improve support for the Haiku operating system.  (thanks to Al Hoang,
           Estevan Castilho and Alexandru Popa)
      * bug fix: generic functions with a large number of required arguments, with
        methods with specializations on exactly STANDARD-OBJECT or
        FUNCALLABLE-STANDARD-OBJECT, test the types of their arguments more
        correctly.
      * bug fix: defining a method on SB-MOP:SLOT-VALUE-USING-CLASS where the
        object argument is specialized to a CONDITION-CLASS no longer leads to an
        internal error.
      * bug fix: the dissassembler on x86-64 correctly disassembles the vcvttpd2dq
        AVX2 instruction.
      * bug fix: ensure that the dispatch function for generic functions is
        compiled with a known compilation policy.  (reported by Neil Goldman)
      * bug fix: the compiler retains less intermediate data between COMPILE-FILE
        forms.  (lp#1557590, reported by andy arvid)
      * bug fix: the (invalid) :INITARGS slot option keyword is reported on.
        (lp#1887014, reported by Wayne Rittiman, Jr)
      * bug fix: the SB-SIMD s16.8-maddubs accepts packs of 16 8-bit quantities,
        not 8 16-bit quantities.  (lp#2069538, reported by Georgios Makris)
      * bug fix: compiling a TYPECASE to dispatch between many user-defined
        classes no longer takes exponential time.  (lp#2089311, reported by Tomas
        Hlavaty)
      * bug fix: derive the new type for a variable when setting it to a function
        of its previous version.  (lp#2090997, reported by Vasily Postnicov)
      * bug fix: properly clear compiler annotations on variables set to new
        values involving functions of themselves.  (lp#2090967, reported by Kirill
        A. Korinskiy)
      * bug fix: handle BY in LOOP forms involving iteration on the reverse of a
        list.  (lp#2091210, reported by James Kalenius)
      * bug fix: fix miscompilation of IF where the consequent and alternative
        would have the same value but for an intervening side-effect.
        (lp#2092588, reported by JA)
      * optimization: SLOT-VALUE and (SETF SLOT-VALUE) on method arguments
        specialized to structure classes are compiled to the corresponding
        structure accessor.
      * optimization: calls to SLOT-VALUE (and related operators) on method
        arguments specialized to instances of SB-MOP:FUNCALLABLE-STANDARD-CLASS
        are optimized similarly to calls on method arguments specialized to
        instances of STANDARD-CLASS.
      * optimization: (coerce (reverse list) 'vector) doesn't cons a list.
      * optimization: (replace vector (reverse list)) doesn't cons a list.