Subject: CVS commit: pkgsrc/lang/sbcl
From: Robert Swindells
Date: 2025-06-01 20:18:14
Message id: 20250601181814.E5038FBE3@cvs.NetBSD.org

Log Message:
Update to 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. (#2110525, reported by awlygj)
    * bug fix: compiler confusion given sufficiently complex derived
      type constraints. (#2109902)
    * bug fix: compiler inconsistency in low-level representation
      leading to inconsistent transformations. (#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.

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. (#2107652)
    * bug fix: fix 32-bit range check code generation on
      x86-64. (#2106432)
    * bug fix: types are correctly propagated from the keyword
      argument processor to their uses. (#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. (#2104089)
    * bug fix: generate stack-manipulation code in the presence of
      non-local exits and dynamic-extent declarations even more
      carefully. (#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.

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. (#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. (#2039301)
    * bug fix: bad or unknown type specifiers in CHECK-TYPE do not
      crash or slow down the compiler. (#2102644, #2102653, #2102714,
      #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. (#1996980, #2100563, #2100728,
      #2100779, #2100784, #2100812, #2100825, #2101192, #2101215,
      #2101803, #2102684)
    * bug fix: improve other aspects of the type system's
      self-consistency. (#2101073, #2101170, #2101183, #2101189,
      #2101399, #2101589)
    * bug fix: fix compiler type error when deriving the type of
      FTRUNCATE. (#2101073)
    * bug fix: fix compiler error when deriving constraints for
      single-floats. (#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.

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. (#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. (#308936)
    * bug fix: non-conforming user macros which modify their source no
      longer trigger internal errors. (#1371719, reported by _3b)
    * bug fix: the combination of CONSTANTLY and DYNAMIC-EXTENT
      declarations no longer causes an internal compiler
      error. (#2059950, reported by bohonghuang)
    * bug fix: treat inlined functions analogously to constants in the
      compiler. (#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. (#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.

Files:
RevisionActionfile
1.110modifypkgsrc/lang/sbcl/Makefile
1.84modifypkgsrc/lang/sbcl/distinfo