Skip to content
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)