Subject: CVS commit: pkgsrc/lang/sbcl
From: Robert Swindells
Date: 2023-06-03 14:42:24
Message id: 20230603124224.B3EC3FA88@cvs.NetBSD.org

Log Message:
Changes in sbcl-2.3.5 relative to sbcl-2.3.4

    * enhancement: Unicode support has been updated to support version
      15.0.0 of the Unicode standard, including addition of characters
      and their collation keys, and refinements to grapheme-, word-
      and line-breaking algorithms.
    * new contrib module: an interface to perf, a
      performance-analysing tool for Linux. (thanks to Luke Gorrie and
      Philipp Marek)
    * platform support:
        * on x86-64, prefer using the LEAVE instruction rather than
          MOV/POP at function epilogue to restore RSP/RBP.
        * support SB-FUTEX on OpenBSD. (thanks to Elijah Stone)
        * support SB-FUTEX on Darwin/arm64. (thanks to Elijah Stone)
        * fix compilation with clang on Windows. (#2018601, thanks to
          Andrew)
    * bug fix: inspecting objects with unbound slots produces output
      that is less confusable with the string "unbound". (thanks to
      Nicolas Martyanoff)
    * optimization: make TN-REFs doubly-linked, allowing faster
      deletion. (#2018124, reported by Matt Kaufmann)
    * optimization: MAPCAN/MAPCON are less accidentally
      quadratic. (thanks to Gleefre)
    * optimization: improved arithmetic operations in the form of (the
      word-sized-type (-+* word-sized word-sized)) when the result can
      overflow. For arm64 and x86-64.

Changes in sbcl-2.3.4 relative to sbcl-2.3.3

    * enhancement: attempts to call non-callable objects can now
      provide USE-VALUE restarts on x86-64 and arm64.
    * bug fix: ioctl() (both in SBCL's internals and through SB-POSIX)
      was broken on ARM64/Darwin. (reported by fiddlerwoaroof)
    * platform support:
        * support for cross-compiling the system to Android has been
          added; (thanks to Gleefre)
        * include likely absolute paths for gmp and mpfr on
          ARM64/Darwin; (thanks to Elias Lawson-Fox)
        * include another absolute path for mpfr on Windows; (thanks
          to Ari Projansky)
        * the PROMISE-COMPILE feature from the SB-CONCURRENCY contrib
          is now available on all threaded platforms;
    * optimization: VALUES-LIST performs less redundant work on x86-64
      and ARM64.

Changes in sbcl-2.3.3 relative to sbcl-2.3.2

    * enhancement: LET-bound anonymous closures declared dynamic
      extent can now be stack allocated, just like closures bound with
      FLET or LABELS. Otherwise-inaccessible closure subparts of
      objects declared dynamic extent can now also be stack allocated
    * optimization: many standard CL functions which take functional
      arguments will automatically stack allocate any downward funarg
      closures.
    * optimization: better arithmetic between signed and unsigned
      words on arm64.
    * optimization: reduce consing when doing arithmetic resulting in
      small (3 words or fewer) bignums.
    * bug fix: miscompilation of some additions of signed and unsigned
      words on x86-64. (#2008673)
    * bug fix: loading the SB-SIMPLE-STREAMS contrib no longer
      incompatibly overwrites CL:OPEN's function type. (#2008811)
    * bug fix: implement the special-case automatic function
      definition for PCL's slot accessor functions in the SB-EVAL
      interpreter. (#2008922, reported by Jonathan Braud)
    * bug fix: allow the build to succeed under SBCLs older than 2.0.0
      in the event that the host emits STYLE-WARNINGs while compiling
      the cross-compiler. (#2009493, reported by Kirill)
    * bug fix: restore compilation on ARM64 with OpenBSD. (#2009585,
      reported by okflo)
    * bug fix: compiling a HANDLER-BIND with a function undefined at
      compile-time produces a compile-time STYLE-WARNING. (#2010176)
    * bug fix: support files bigger than 4GB on ARM64/Linux,
      *BSD. (#2011453, reported by Yan)
    * bug fix: it is now possible to run sb-simd tests on systems
      without AVX2. (#2011923, thanks to Sergio Durigan Junior)
    * bug fix: miscompilation of some conditional moves. (#2012312,
      reported by Patrick Poitras)
    * bug fix: SB-GMP no longer signals a TYPE-ERROR when raising a
      ratio base to a negative integer exponent. (#2012577, thanks to
      Ari Projansky)
    * bug fix: warn the user when they have declared a structure or
      standard-object slot of :TYPE NIL.

Changes in sbcl-2.3.2 relative to sbcl-2.3.1

    * incompatible change: the :ORDER long-form-option in
      DEFINE-METHOD-COMBINATION accepts NIL as well as
      :MOST-SPECIFIC-FIRST and :MOST-SPECIFIC-LAST. A value of NIL
      implies no particular ordering of the methods, and so disables
      checks of multiple methods with the same specializers in that
      group.
    * bug fix: evaluate the :ORDER long-form-option in
      DEFINE-METHOD-COMBINATION properly, avoiding an infinite loop in
      DEFINE-METHOD-COMBINATION if the :ORDER argument leads to a
      cycle of compile-time constants.
    * bug fix: better compile time on chains of conditionals which
      have gaps in integer ranges. (#1992349, reported by Mykola
      Matvyeyev)
    * bug fix: type derivation of VECTOR-LENGTH leading to wrong type
      handling for MEMBER types involving vectors. (#2004094)
    * bug fix: equality constraint propagation in the presence of
      constants could cause code to be not deleted when it should have
      been. (#2006487)
    * bug fix: better compile time when the compiler needs to perform
      checks to see if fixnum or word computations result in
      overflow. (#2007741)
    * bug fix: miscompilation on ARM64. (#2007758, reported by Stephen
      Westfold)
    * optimization: on x86-64, use SIMD instructions for UTF-8 buffer
      decoding;
    * various type-driven optimizations:
        * comparisons of rationals with constant ratios or floats;
        * comparisons of unsigned-bytes with fixnums;
        * comparisons of fixnums with constant powers of two;
        * equality of numbers with integers too large to be exactly
          represented as floats;
        * arithmetic operations on a mixture of signed and unsigned
          word-sized quantities;

Changes in sbcl-2.3.1 relative to sbcl-2.3.0

    * sb-graph has been removed. To visualize IR1 in sbcl, it is
      recommended to use the function IR1-TO-DOT (which only survives
      the final tree shake if the feature :sb-devel is enabled at
      build time).
    * platform support:
        * implement some peephole optimizations on arm64;
        * support float traps on arm64;
    * bug fix: package-manipulation operations within fasls work as
      expected in the absence of explicit block compilation
      requests. (#2000004, reported by Shubhamkar Ayare)
    * bug fix: incorrect type simplification of certain CONS
      types. (#1999352, reported by Paul Dietz)
    * bug fix: method combination group selection interprets the
      symbol * as a wildcard element within proper qualifier-pattern
      lists. (reported by Maciej Katafiasz and by Daniel Kochmański)
    * bug fix: &WHOLE can be used without error in
      define-method-combination arguments lambda lists. (reported by
      Daniel Kochmański)
    * bug fix: bogus debug variables generated for closure variables
      whose value cell had not yet been allocated could cause
      segfaults and gc crashes (reported by _death on #sbcl)
    * bug fix: handling of float NaNs in two-arg numeric comparison
      functions is more consistent with the required semantics in IEEE
      754 when comparing with rationals.
    * bug fix: ensure that the hide-packages test passes even when the
      system retains internal cross-reference metadata. (#2002896,
      reported by 3b)
    * bug fix: don't trip an internal assertion in weak hash tables
      with finalizers. (#1998064)
    * optimization: load-time only code is no longer retained at
      runtime when functions close over top level bindings.
    * optimization: GO and RETURN-FROM now elide out-of-extent tag
      checks when the compiler can prove it's safe even on high
      safety.
    * optimization: addition of a fixnum to a bignum generates less garbage.
    * optimization: in many cases, type inference and code generation
      is improved for and around numerical comparison functions.

Changes in sbcl-2.3.0 relative to sbcl-2.2.11

    * enhancement: support for SLOT-VALUE and friends has been
      extended to structure and condition instances.
    * enhancement: the error message for invalid array index
      conditions is clearer. (#1999337, reported by Hadrien Lacour)
    * minor incompatible change: COMPILED-FUNCTION-P now returns false
      for generic functions.
    * minor incompatible change: the compiler emit STYLE-WARNING
      conditions for FIND and POSITION where the item sought can never
      be present in the sequence.
    * optimization: support computing the remainder of a constant
      division by multiplication.
    * optimization: faster out of line float truncation routines.
    * optimization: faster RATIONAL on 64-bit platforms.
    * optimization: more compact testing of widetags on x86-64 and arm64.
    * bug fix: type intersections of RATIONAL ranges with (NOT
      INTEGER) are computed more consistently. (#1998008)
    * bug fix: fix miscompilation of integer/fixnum comparisons where
      both arguments are on the stack.

Changes in sbcl-2.2.11 relative to sbcl-2.2.10

    * platform support:
        * arm64: allow the use of CLISP as a build host. (#1996942,
          reported by Andrew Patterson)
    * enhancement: improvements to constraint propagation around
      comparison functions.
    * optimization: conditional move VOPs can work on boxed values and
      produce less consing.
    * optimization: NUNION and UNION are generally faster.
    * bug fix: slot-makunbound-using-class can be redefined without
      redefining the other slot methods. (#1956621, reported by Michał
      Herda)
    * bug fix: GETHASH on a table created without ":synchronized t"
      when run concurrently in multiple threads could have returned
      incorrect results.
    * bug fix: build of contributed modules assumed that 'cat' was
      always in /bin/cat on POSIX systems. (#1995224, reported by
      Kasper Gałkowski)
    * bug fix: INSPECT on an (ARRAY NIL) no longer hangs. (#1995639,
      reported by Michał Herda)
    * bug fix: Fix miscompilation of FILE-STRING-LENGTH when the first
      argument has a known FILE-STREAM type. (#1995881)

Changes in sbcl-2.2.10 relative to sbcl-2.2.9

    * platform support:
        * win32: improved handling of stack overflow exceptions. (#1302866)
        * Mac OS X: enforce stronger alignment when building the
          runtime. (#1991485, reported by Yan)
        * arm64: support for building the system without the
          sb-unicode feature (i.e. with 8-bit characters) is restored.
    * bug fix: do not elide the GC store barrier in
      closures. (#1982608, reported by Andrew Berkley)
    * bug fix: make sb-introspect tests pass when the system is built
      without support for source locations. (#1635349, reported by
      Tomas Hlavaty)
    * bug fix: erroneous assumption that the format-control of a
      simple condition was a string. (#1803727)
    * bug fix: compiler consistency failure in modular arithmetic
      widening. (#1990715)
    * bug fix: provide a stub for a helper function (#1992316)

Changes in sbcl-2.2.9 relative to sbcl-2.2.8

    * platform support:
        * fix build on Darwin platforms with -fno-common. (#1980570,
          thanks to Sergei Trofimovich)
        * include /usr/local paths when building on
          FreeBSD. (#1981112, reported by William G Lederer)
        * several micro-optimizations on x86-64, including: better use
          of INC/SUB, better SAP+, shorter KEYWORDP, better argument
          count verification
        * arm64: better KEYWORDP, better argument count verification
        * fix build on 32-bit Windows. (#1988534, thanks to Alexis Rivera)
        * x86-64: WITH-PINNED-OBJECTS can pin constants. (#1989037)
    * bug fix: make sb-simd build in compiler-only SBCL. (thanks to
      Tonas Hlavaty)
    * bug fix: SB-SPROF:WITH-PROFILING now returns the value of its
      body (as was advertised in its documentation).
    * bug fix: catch malformed LET* forms in DEFMETHOD
      bodies. (#1988880, reported by Patrick Poitras)
    * enhancement: better source form tracking for atoms in LET bindings.
    * optimization: reader character macro lookup is simpler and faster.
    * optimization: FILL-POINTER (and its setter) are more compact.

Changes in sbcl-2.2.8 relative to sbcl-2.2.7

    * minor incompatible change: support for 32-bit x86/Darwin has
      been removed.
    * bug fix: fix miscompilation related to empty infinite loops
      preceded by conditional expressions. (#1986810, reported by
      Artyom Bologov)
    * bug fix: fix gc invariant violations. (#1983218, reported by
      Marius Gerbershagen; #1983248, reported by Vasily Postnicov)
    * bug fix: use CC to compile SBCL as a shared library. (#1976148,
      reported by Pierre Neidhardt)
    * bug fix: don't crash the system completely if RUN-PROGRAM fails
      to create a pipe. (#1979841, reported by Thor Kristofferson)
    * bug fix: be more disciplined about use of C system
      includes. (#1981799, reported by Mark Evenson)
    * bug fix: STRING/= returning wrong results for some cases when
      :END1/:END2 were not compile-time constants. (#1983284)
    * bug fix: compile-time checking of :START and :END keyword
      arguments to FILL is more complete.
    * optimization: adjacent type tests on the same value are more
      compact (arm64, x86-64).
    * optimization: the compiler can inline COPY-STRUCTURE in more cases.
    * optimization: type checks for non-simple arrays are shorter.
    * optimization: printing strings (as Lisp data) is faster.

Changes in sbcl-2.2.7 relative to sbcl-2.2.6

    * minor incompatible change: the compiler emits full WARNINGs for
      undefined references to variables in TYPE and DYNAMIC-EXTENT
      declarations, and for SETQ of an undefined variable. (This was
      the historic behaviour for everything except the DYNAMIC-EXTENT
      case, which used to emit a STYLE-WARNING, but these diagnostics
      got lost in a refactoring since sbcl-2.2.2)
    * minor incompatible change: literal objects (strings, in
      particular) in compiled code may at the discretion of the
      runtime be placed in read-only memory. Violations of CLHS 3.7.1
      could produce memory faults. If ":PURIFY NIL" is given to
      SAVE-LISP-AND-DIE then no read-only memory will be used.
    * enhancement: Unicode support has been updated to support version
      10.0.0 of the Unicode standard, including addition of characters
      and refinements to breaking and collation algorithms.
    * bug fix: AVX is no longer used for loading simd-pack-256
      constants. (#1928097)
    * bug fix: fix building the manual when some contribs are blocked
      or otherwise disabled. (#1979821, thanks to Robert Schiele)
    * bug fix: fix type derivation of sequence functions with
      highly-specific declared argument types. (#1980292, reported by
      James Kalenius)
    * bug fix: internal error when optimizing chains of conditionals
      in local functions. (#1981607, reported by Pasha K)
    * bug fix: fix comparison of negative floats with bignums.
    * optimization: faster TRUNCATE with float arguments.
    * optimization: EQUALP hashing of large floating point values
      should generate less garbage.

Changes in sbcl-2.2.6 relative to sbcl-2.2.5

    * minor incompatible change: support for 32-bit x86 on macOS has
      been removed.
    * new contrib: sb-simd, to provide a convenient interface for SIMD
      programming on x86-64. (Thanks to Marco Heisig and other sb-simd
      contributors)
    * enhancement: core compression now uses zstd instead of zlib. (#1881089)
    * enhancement: provide compiler warnings for specialized array
      type mismatches in CONCATENATE.
    * enhancement: provide compiler warnings for bad sequence bounding
      index designator arguments to sequence functions.
    * enhancement: The sb-mpfr contrib now allows coercion from
      MPFR-FLOATs to CL:RATIONAL. (Thanks to Robert Smith)
    * bug fix: fix compilation failure related to declaiming types of
      constants. (#1977726, reported by Pierre Neidhardt)
    * bug fix: fix race condition in CLOS optimized constructors. (#1951341)
    * bug fix: fix too-eager elision of allocation barriers when
      initializing closure and structure objects.
    * optimization: fasl files are now usually smaller (up to 10% on
      default policy) and may load faster, especially on high debug.
    * optimization: faster string comparisons on arm64, x86-64.
    * optimization: faster [n]string-down/upcase on arm64, x86-64.
    * optimization: faster [n]reverse for 8- and 32-bit element
      vectors on arm64, x86-64.
    * optimization: faster type tests for (CONS (EQL symbol)) on x86-64.

Files:
RevisionActionfile
1.96modifypkgsrc/lang/sbcl/Makefile
1.25modifypkgsrc/lang/sbcl/PLIST