./lang/sbcl, SBCL, a Common Lisp implementation

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.4.10, Package name: sbcl-2.4.10, Maintainer: pkgsrc-users

Steel Bank Common Lisp (SBCL) is an Open Source complier and runtime
system for ANSI Common Lisp. It provides an interactive environment
including an integrated native compiler, a debugger, and many
extensions.


Required to build:
[lang/clisp] [pkgtools/cwrappers]

Master sites:

Filesize: 7977.713 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-28 16:03:55 by Robert Swindells | Files touched by this commit (3) | Package updated
Log message:
Update to sbcl-2.3.11.

Enable NetBSD/i386 build again.

Changes in sbcl-2.3.11 relative to sbcl-2.3.10

    * minor incompatible change: streams with an external-format
      specified with :REPLACEMENT will use their replacement data once
      per stream unit that causes a decoding error (rather than, in
      some cases, once for a sequence of bytes none of which is a
      valid character start position for that external-format).
    * minor incompatible change: external-format designators with
      unsupported or unrecognized options now signal an error when
      used.
    * enhancement: During generic function dispatch, for a generic
      function using standard- or short-method-combination, if there
      are no applicable primary methods the system will call the
      generic function SB-PCL:NO-PRIMARY-METHOD, whose default
      behaviour is to signal an error. Users may define methods on
      this generic function.
    * enhancement: external formats for unibyte encodings and utf-8
      now support newline variants.
    * enhancement: character decoding and encoding errors signalled by
      stream or octet functions now provide a USE-VALUE restart for
      handlers to provide replacement input or output.
    * enhancement: READ-SEQUENCE and WRITE-SEQUENCE support
      user-defined sequences; the default implementation proceeds
      element-by-element, reading or writing single bytes or
      characters to or from the stream as appropriate.
    * bug fix: OCTETS-TO-STRING using unibyte external formats with
      unallocated codepoints (e.g. iso-8859-3) correctly signal or use
      replacements rather than taking bits from the address of NIL and
      converting those bits to a character.
    * bug fix: FILE-STRING-LENGTH now returns NIL if the input datum
      is not encodable in the stream's external format.
    * bug fix: table-based multibyte external formats (EUC-JP,
      Shift-JIS, GBK) now honour a replacement character (in the
      external format or through restarts) when encoding to octets.
    * bug fix: converting from octets using the UCS-2, UCS-4 and
      UTF-32 external formats no longer reads past the end of an octet
      array with a non-integral number of two- or four-byte units.
    * bug fix: converting from octets using the UCS-2, UCS-4, UTF-16
      or UTF-32 external formats now returns a simple string, as
      required by the type declaration of OCTETS-TO-STRING.
    * bug fix: providing an invalid external format argument to OPEN
      or WITH-OPEN-FILE (or the internal MAKE-FD-STREAM) no longer
      leaks a file descriptor.
    * bug fix: SB-ROTATE-BYTE recognizes out-of-relevant-range BYTE
      specifications for integers before attempting to cons up
      enormous bignums for masking and shifting. (#2042937)
    * bug fix: fix type derivation on compiling SB-ROTATE-BYTE forms
      with non-zero POSITION in the byte specifier. (#2042775)
    * bug fix: fix multiple assembler errors when compiling
      MAKE-ARRAY, MAKE-STRING and similar with a large constant
      size. (#2037347, #2038744)
    * bug fix: fix internal error when compiling (SETF SBIT) with a
      large constant index. (#2037415)
    * bug fix: fix internal compiler error on invalid lambda list
      parameters in LABELS. (#2040334)
    * bug fix: fix internal compiler error when compiling some
      infinitely-recursive LABELS forms. (#2042704)
    * bug fix: fix internal compiler error when attempting to inline a
      jump to a label that has been deleted. (#2043262)
    * bug fix: FILL-POINTER should never be made to go negative. (#2042452)
    * optimization: external formats with :REPLACEMENT no longer bind
      handlers for coding errors around conversion functions, and so
      should cons less and be faster.
    * optimization: when the :EXTERNAL-FORMAT argument to
      STRING-TO-OCTETS or OCTETS-TO-STRING is a compile-time constant,
      the external format is resolved at load time rather than on each
      call.
    * optimization: the compiler is able to constrain the types of
      inputs to some functions given a derived or asserted type of the
      function's return value.
    * optimization: the compiler performs fewer redundant type checks
      in ASSOC, GETF and similar functions.

Changes in sbcl-2.3.10 relative to sbcl-2.3.9

    * enhancement: The compiler now allows stack allocating vectors of
      any size on all safety levels, not just those which it can prove
      are of sub-page sizes. It can do this because it now inserts
      code to check for stack overflow explicitly on higher safety
      levels.
    * enhancements to the disassembler:
        * on arm64, x86-64, DISASSEMBLE annotates references to static
          symbols.
    * bug fix: calls to generic functions now detect erroneous
      keywords (in the sense of CLHS 7.6.5) passed as arguments even
      when auxiliary methods are applicable.
    * bug fix: the standard method on SB-MOP:COMPUTE-EFFECTIVE-METHOD
      no longer inserts calls to implementation-defined local
      macros. (reported by Daniel Kochmański)
    * bug fix: compiler error from state-machine-like LABELS forms in
      some circumstances. (#2037318)
    * bug fix: fix compile-time error in constant-folding RATIONAL on
      literal float infinities. (#2037455)
    * bug fix: failure on x86-64 to assemble code for EQL tests of
      comparisons with immediates. (#2037456)
    * bug fix: infinite loop in the compiler for simplification of
      type tests of complicated union types. (#2038112, reported by
      Paul M. Rodriguez)
    * bug fix: inability to dump a literal displaced array containing
      copies of its displacement target. (#2038233, reported by James
      Kalenius)
    * bug fix: compiler error in LOGBITP type derivation. (#2038241)
    * bug fix: compiler error in AREF type derivation. (#2038659)
    * bug fix: compiler internal consistency failure in overflow type
      checks. (#2038736)
    * bug fix: work around an infinite loop in type simplification by
      not providing such types from the compiler. (#2038980, reported
      by Richard Holcombe)
    * bug fix: spurious run-time argument count errors from generic
      function calls on arm64. (#2039006, reported by fiddlerwoaroof)
    * bug fix: errors in SCALE-FLOAT on floating-point
      infinities. (#2039613)
    * bug fix: ROOM is slightly more robust to
      incompletely-initialized instances at the point of running
      ROOM. (Reported by Andreas Franke)
    * bug fix: finalizers saved through SAVE-LISP-AND-DIE and
      subsequently executed do not trigger memory faults. (Reported by
      Bohong Huang)
    * optimization: improvements to type derivation for ISQRT,
      INTEGER-LENGTH, LOGCOUNT, LOG, DENOMINATOR.

Changes in sbcl-2.3.9 relative to sbcl-2.3.8

    * enhancement: stack allocation via DYNAMIC-EXTENT now applies to
      all values that a variable can take on (for example via SETQ),
      not just the initial binding. This permits for example building
      complex or recursive structures on the stack more easily via
      iteration. See the updated manual entry for more details.
    * minor incompatible change: some interfaces in the SB-POSIX
      contrib module adhere to the spec that a NULL result from the C
      library is an error if and only if errno was altered by the
      call. SYSCALL-ERROR will be signaled if so.
    * enhancement: the SB-POSIX contrib module provides DO-PASSWDS and
      DO-GROUPS to allow users to iterate over password and group
      databases safely.
    * platform support:
        * support for Darwin on x86 and PowerPC has been
          restored. (#2033287, thanks to Kirill A. Korinsky, Sergey
          Fedorov and barracuda156)
    * bug fix: miscompilation due to erroneous type derivation in the
      presence of multiplication of fixnums by ratios. (#2033695,
      reported by Patrick Dussud)
    * bug fix: compiler error when compiling signed- and unsigned
      64-bit type checks in some cases. (#2033997, reported by Eric
      Smith)
    * bug fix: compiler error when the :INITIAL-CONTENTS argument to
      MAKE-ARRAY is a constant non-sequence. (#2037328)
    * bug fix: compiler error when constant-folding sequence functions
      with :TEST or :KEY functions erroring on the given
      sequence. (#2037341)
    * bug fix: compiler error when arguments to array or sequence
      functions imply a very large sequence size. (#2037443, #2037348)
    * bug fix: compiler error when the return value of ADJUST-ARRAY is
      not used. (#2037450)
    * optimization: function types derived by the compiler can in some
      cases be propagated backwards through the intermediate
      representation.
    * optimization: better type derivations for LDB, LOGBITP, RATIO.
    * optimization: eliminate bound checks in more cases involving
      transitive comparisons.
   2023-11-23 09:36:21 by Thomas Klausner | Files touched by this commit (1)
Log message:
sbcl: mark as broken on i386/NetBSD

https://mail-index.netbsd.org/pkgsrc-bulk/2023/11/21/msg024562.html
   2023-09-01 00:29:43 by Robert Swindells | Files touched by this commit (1)
Log message:
Move MKPIE_SUPPORTED line before include of bsd.prefs.mk.
   2023-08-31 23:05:39 by Robert Swindells | Files touched by this commit (2) | Package updated
Log message:
Update to sbcl 2.3.8.

Add dependency on devel/gmp.
Set MKPIE_SUPPORTED to no.

Changes in sbcl-2.3.8 relative to sbcl-2.3.7

    * enhancement: a mark-region parallel garbage collector is
      available as a build-time option; it can be enabled by adding
      `--without-gencgc --with-mark-region-gc` to the build command
      line. (Thanks to Hayley Patton)
    * enhancement: Stack allocation via DYNAMIC-EXTENT is now possible
      for conditionals even when not all branches are
      stack-allocatable. Previously all branches needed to be
      stack-allocatable for the otherwise-inaccessible subparts to get
      stack allocated.
    * platform support:
        * on Mac OS X Sonoma, loading the memory image no longer
          fails. (#2029430, reported by cladur)
        * on Darwin, we no longer reimplement nanosleep().
        * on PPC64, undefined function errors now work.
        * on ARM64/OpenBSD, enable the GCC TLS feature. (thanks to
          Sébastien Marie)
        * when building the system, only display a reasonable amount
          of timing precision. (thanks to Philipp Marek)
    * bug fix: handling of inlining functions compiled to return
      unboxed values no longer crashes the compiler. (#2029020,
      reported by Pascal J. Bourguignon)
    * bug fix: the source location for code executed within a
      top-level (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) form is now more
      useful.
    * bug fix: address a race between user threads cancelling
      finalizers and the finalizer thread executing them. (#2029306)
    * bug fix: complex division returns the same value when evaluated
      inline and out-of-line. (#2030097)
    * bug fix: the pretty-printer no longer deletes
      syntactically-significant whitespace immediately preceding a
      newline. (#1985814, reported by Mark David)
    * optimization: the compiler is more aware of the result type of
      the NUMERATOR function.
    * optimization: EQUAL and EQUALP compile to more efficient code
      when the two arguments are known to be of the same nullable
      type.
    * optimization: converting bignums to floats uses no intermediate memory.

Changes in sbcl-2.3.7 relative to sbcl-2.3.6

    * minor incompatible change: MACROLET macro functions are now
      compiled with (SPEED 1), leading to fewer efficiency notes being
      emitted when compiled in otherwise high-SPEED environments.
    * minor incompatible change: when coalescing list data, the file
      compiler respects substructure equality more accurately, with
      the side-effect of coalescing along CDR chains as well as
      CARs. (#2025086)
    * minor incompatible change: FUNCTION type declarations for local
      variables generate assertions around their use when called.
    * platform support
        * on OpenBSD, the regression test suite expectations have been
          updated. (#2026809, thanks to Sebastien Marie)
        * on OpenBSD, the data limit is now 1GB. (#2027536, thanks to
          Sebastien Marie)
        * on Darwin with the SB-FUTEX feature, do not use unpaired
          mach_thread_self() syscalls, avoiding resource leaks when
          creating threads.
        * on 64-bit RISCV, add support for some REM-by-multiplication
          optimizations.
        * on Windows, work around a C compiler bug relating to SYSV_ABI.
    * bug fix: FILE-POSITION on string output streams no longer
      crashes or causes arbitrary memory overwrites. (#1839040)
    * bug fix: the compiler no longer constant-folds POSITION to NIL
      if the START or END arguments are not valid.
    * optimization: the compiler derives types of &KEY arguments in
      local calls. (#655562)
    * optimization: type tests of values of known union type can be
      faster if the type being tested for has a non-trivial
      intersection with the known type.
    * optimization: the low-level implementation of NUMBERP, REALP and
      RATIONALP has been improved on x86-64 and arm64.
    * optimization: the compiler removes known-NIL arguments from
      calls to APPEND and NCONC, and empty sequences from calls to
      CONCATENATE.
    * optimization: checks for symbols being bindable are now
      memoized, speeding up compiled uses of PROGV.
    * optimization: SLOT-VALUE on STRUCTURE-OBJECTs with non-constant
      slot-name argument is faster.
   2023-07-04 09:55:56 by Robert Swindells | Files touched by this commit (2)
Log message:
Update to sbcl 2.3.6.

Add dependency on math/mpfr.

Changes in sbcl-2.3.6 relative to sbcl-2.3.5

    * platform support:
	* restore building contribs on riscv; (#2002930)
	* shorter constant-loading sequences on riscv;
	* on OpenBSD, map the stack without executable permission
          (thanks to Sébastien Marie)
	* Restore OpenBSD/arm64 for OpenBSD 7.3 (#2024003, reported by
          Robert Palm)
    * bug fix: AREF on multidimensional arrays with the wrong number
      of indices now signals an error. (#2022327, reported by EU)
    * bug fix: the nature of NIL as both STRING and SEQUENCE is
      correctly handled in the compiler's handling of string
      functions. (#2023118, reported by Patrick Poitras)
    * bug fix: the sb-bsd-sockets tests no longer fail on systems
      configured without IPv6. (reported by Will Senn)
    * bug fix: the compiler no longer transforms into
      incompletely-known functions (#1824351)
    * optimization: better (the word-sized-type (ASH word-sized
      word-sized)) when the result can overflow. For arm64 and x86-64.
    * optimization: better unoptimized calls to CEILING, FLOOR.
    * optimization: functions that involve coercing floats now cons
      less. For arm64 and x86-64.
    * optimization: array displacement to simple arrays is slightly
      faster. (reported by Shubhamkar Ayare)
   2023-06-06 14:42:56 by Taylor R Campbell | Files touched by this commit (1319)
Log message:
Mass-change BUILD_DEPENDS to TOOL_DEPENDS outside mk/.

Almost all uses, if not all of them, are wrong, according to the
semantics of BUILD_DEPENDS (packages built for target available for
use _by_ tools at build-time) and TOOL_DEPEPNDS (packages built for
host available for use _as_ tools at build-time).

No change to BUILD_DEPENDS as used correctly inside buildlink3.

As proposed on tech-pkg:
https://mail-index.netbsd.org/tech-pkg/2023/06/03/msg027632.html
   2023-06-04 20:54:37 by Thomas Klausner | Files touched by this commit (1) | Package updated
Log message:
sbcl: update distinfo to match Makefile update
   2023-06-03 14:42:24 by Robert Swindells | Files touched by this commit (2) | Package updated
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.