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

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


Branch: CURRENT, Version: 1.5.5, Package name: sbcl-1.5.5, 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:

SHA1: da88b751237d6a41a4ced1c88adac02e6acbedb2
RMD160: 181844dc01653babd1c5a576669f1f76e0b4654b
Filesize: 6202.617 KB

Version history: (Expand)


CVS history: (Expand)


   2019-08-13 17:16:54 by Robert Swindells | Files touched by this commit (27) | Package removed
Log message:
Update to 1.5.5, change maintainer to pkgsrc-users. Changes since 1.4.3:

Changes between version 1.5.4 and version 1.5.5

  * platform support: - SunOS: bug reports and patches from Richard Lowe
    in sb-posix tests (#1837495), sb-concurrency tests (#1837817),
    unencapsulated tracing (#1837307), float registers in interrupt
    contexts (#1837168)
  * bug fix: do not generate version.lisp-expr from git describe if the
    git repository is not sbcl's own. (#1836663, thanks to Richard Lowe)
  * bug fix: compiler crash related to VALUES-LIST on a &REST argument in
    some contexts. (#1836096, reported by Samuel Jimenez)
  * bug fix: compiler hang related to constraint propagation. (#1835599,
    reported by Mark Cox)
  * bug fix: the inspector showed the wrong array element type. (#1835934,
    reported by Richard M Kreuter)
  * optimization:  numerous improvements to hash table access and rehashing
  * optimization: ASSERT compiles into substantially more compact code.
    (#1835221)

Changes between version 1.5.3 and version 1.5.4

  * minor incompatible change: hash tables on 64-bit machines consume roughly
    20% less memory but can only grow to hold 2^31 entries (theoretically)
    due to use of 31-bit indices internally.
  * platform support: - RISC-V: improve rotate-byte support (thanks to Philipp
    Matthias Schaefer)
  * bug fix: the system reasons more correctly regarding the array rank of
    complicated array types. (reported by Bart Botta)
  * bug fix: DOUBLE-FLOAT-P never gets weaked to NUMBERP. (reported by Bart
    Botta)
  * enhancement: the regression test suite can now benefit from paralellism,
    completing much faster when enough compute power is available.
  * optimization: readtables with non-base-char dispatch characters are less
    inefficient.
  * optimization: INTERN performs fewer redundant type checks.
  * optimization: tests for PATHNAMEP and STRUCTURE-OBJECT (including in
    computing hash functions) are faster.

Changes between version 1.5.2 and version 1.5.3

  * platform support: - RISC-V: numerous bug fixes and improvements - all
    platforms: better run-program performance when used from multiple threads.
  * enhancement: (declaim (optimize (debug 2))) ensures compilation of
    top-level forms, providing better debugging for simple forms that are
    otherwise "byte-code interpreted" when compiled into FASLs.
  * bug fix: use of finalizers could in rare circumstances cause a crash in
    the garbage collector.
  * bug fix: show extended function designators, e.g. (setf foo), in the
    disassembler
  * optimization: reduced overhead of calling NTH/NTHCDR.
  * optimization: improved FLOAT-SIGN on DOUBLE-FLOATs on 64-bit platforms

Changes between version 1.5.1 and version 1.5.2

  * enhancement: RISC-V support with the generational garbage collector.
  * enhancement: command-line option "--tls-limit" can be used to alter
    the maximum number of thread-local symbols from its default of 4096.
  * enhancement: better muffling of redefinition and lambda-list warnings
  * platform support: - OS X: use Grand Central Dispatch semaphores, rather
    than Mach semaphores - Windows: remove non-functional definition of
    make-listener-thread
  * new feature: decimal reader syntax for rationals, using the R exponent
    marker and/or *READ-DEFAULT-FLOAT-FORMAT* of RATIONAL.
  * optimization: various Unicode tables have been packed more efficiently

Changes between version 1.5.0 and version 1.5.1

  * enhancement: restarts for missing package errors.
  * optimization: FIND-PACKAGE should be faster even when run in the context
    of a package with local package-nicknames.
  * optimization: fix TRUNCATE deftransform's results to have well-defined
    signs
  * bug fix: thread-safety problems in RUN-PROGRAM with :PTY.
  * bug fix: SLEEP transform could never fire.
  * build enhancement: defend against quirky host floating point implementation
  * test enhancement: allow more parallelism in running the regression test
    suite

Changes between version 1.4.16 and version 1.5.0

  * enhancement: SB-COVER emulates IN-PACKAGE when recording source maps;
    this makes it possible to generate coverage for forms that uses local
    package nicknames, or otherwise must be read in the correct package.
  * build enhancement: new host quirks mechanism, support for building
    under ABCL and ECL (as well as CCL, CMUCL, CLISP and SBCL itself)
  * optimization: (FIND-SYMBOL x "P") for constant "P" \ 
executes faster,
    subject to "P" not being a package-local nickname of any package.
    Similarly INTERN. (#1814924)
  * optimization: bounds checks are elided when possible where the same
    array is dereferenced multiple times.
  * bug fix: initargs are now deduplicated when computing effective slots.
  * bug fix: TREE-EQUAL with :TEST 'EQL now correctly computes its answer.
    (reported by Bahodir Mansurov)
  * bug fix: compiled (COERCE x 'FLOAT) no longer coerces double-floats into
    single-floats. (reported by J. Gareth Williams)

Changes between version 1.4.15 and version 1.4.16

  * minor incompatible change: ENSURE-DIRECTORIES-EXIST no longer
    establishes a CONTINUE restart in case of an error.
  * minor incompatible change: Defining macros (DEFVAR, etc) which require
    a symbol as the name will fail to macroexpand if given a non-symbol.
  * enhancement: the unexported restart names SB-{ALIEN,FASL,IMPL,PCL}::RETRY
    have been replaced by SB-EXT:RETRY.

Changes between version 1.4.14 and version 1.4.15

  * enhancement: added AVX2 instructions on x86-64, which can be used with
    SB-SIMD-PACK.
  * enhancement: specializer name parsing is less lenient and signals a
    specific condition in case of syntax errors. (#1808681)
  * enhancement: provide interactive restarts for some file-system errors.
  * enhancement: COMPILE no longer acquires the world lock. (fixes most
    occurrences of #308959)
  * bug fix: RUN-PROGRAM is more responsive and less likely to deadlock
    (#1702178, #1808641)
  * bug fix: traceroot can search for simple-fun targets (#1808659,
    reported by Michal Herda)
  * compiler bug fixes:
        related to code generation: #1805899, #1806982, #1807455
        related to interpreting and constant-folding: #1806513
        related to the type system: #1804759, #1804796
        related to eq-testing of structure slots: #1809582, #1808273
        related to dynamic-extent: #1809565, #1809253, #1809485, #1739652
        related to GC safety: #308949

Changes between version 1.4.13 and version 1.4.14

  * enhancement: attempting to build on openbsd 6.0 or newer without the
    wxallowed mount option now results in a more useful error message.
  * enhancement: by popular demand, SB-EXT now exports two functions
    HEAP-ALLOCATED-P and STACK-ALLOCATED-P to assist in writing debug
    assertions that objects in hash-tables are not stack-allocated, etc.
  * bug fix: restored sb-thread support on OpenBSD.

Changes between version 1.4.12 and version 1.4.13

  * minor incompatible change: PRINT-TYPE and PRINT-TYPE-SPECIFIER are not
    exported from SB-EXT. These were never announced, so this change would
    only affects users who discovered these undocumented functions.
  * enhancement: SB-EXT:SEARCH-ROOTS and SB-EXT:GC-AND-SEARCH-ROOTS are
    supported on all backends that use gencgc.

Changes between version 1.4.11 and version 1.4.12

  * minor incompatible change: a number of platform-specific elements of
    *FEATURES* related to whether the system implements particular
    strategies have been removed.
  * minor incompatible change: some changes to the (internal) implementation
    details of the x86 and x86-64 have necessitated changes to some
    low-level libraries.
  * enhancement: attempting to transfer control through GO or RETURN-FROM
    to frames which no longer exist are now caught and handled by the debugger.
  * enhancement: identical code (at the machine instruction level) can now
    be shared between functions, if explicitly requested.
  * enhancement: SB-EXT:STRING-TO-OCTETS and SB-EXT:OCTETS-TO-STRING are
    now documented.
  * bug fixes: fix a number of bugs revealed by random testing (#1793171,
    #1793150, #1791550, #1792030, #1791059, #1790157, #1790717, #1790703)

Changes between version 1.4.10 and version 1.4.11

  * minor incompatible change: changes to the (internal) assembler on x86
    and x86-64 may cause problems to some low-level third-party libraries:
    	new macro EA for defining an effective address, without size
	information;
        an explicit size modifier is now needed for MOVSX and MOVSZ
	instructions;
        MOVD and MOVQ move a single size of operand by definition.
  * enhancement: support the latest MinGW (#1786731, reported by il71)
  * enhancement: checks for modifications of constants can now be done in
    local (FLET/LABELS) functions.
  * optimization: improved type checking routines for various compound types.
  * optimization: array bound checks are elided on vectors when the index
    is known to be less than the length, including LOOP ACROSS.
  * optimization: the register allocator's use of temporaries is somewhat
    improved.
  * optimization: checking widetags involves fewer conditional jumps on x86
    and x86-64.
  * bug fix: fix a number of bugs related to constant improper lists as
    sequence arguments (#1768563, #1768568, #1768652)

Changes between version 1.4.9 and version 1.4.10

  * enhancement: added SB-EXT:MAKE-WEAK-VECTOR.
  * enhancement: constant-modification detection warnings can be generated
    in the presence of conditional constructs.
  * optimization: better bounds-checking on x86[-64] and ARM64.
  * optimization: adding 1 to or subtracting 1 from a fixnum variable does
    not cons.
  * bug fixes: fix a number of bugs revealed by random testing (#1782826,
    #1779878, #1779737)

Changes between version 1.4.8 and version 1.4.9

  * enhancement: SB-COVER instrumentation for x86[-64] has signficantly
    less overhead. The performance penalty for 64-bit code has been
    measured at around 30% slower than uninstrumented code as contrasted
    with slowdowns in excess of 100% previously.
  * enhancement: tracing a generic function with the :METHODS T option
    produces output corresponding to each method called under the default
    :ENCAPSULATE NIL tracing implementation.
  * bug fix: updated TRACE documentation. (#574614 was actually already
    fixed, but there were other issues.)
  * bug fix: fixed x86 GC bug causing heap corruption. (#1749369)
  * bug fix: improved compatibility with macOS High Sierra and graphical
    applications.

Changes between version 1.4.7 and version 1.4.8

  * bug fix: redefinition of method combinations now does the expected
    thing; generic functions using that method combination have their
    effective methods lazily recomputed according to the new definition
    of the method combination. (Reported by Didier Verna at ELS 2018)
  * bug fix: :arguments argument to the long form of DEFINE-METHOD-COMBINATION
    is now implemented more correctly, supporting suppliedp variables and
    &optional defaults. (Reported by Bruno Haible, #309084)

Changes between version 1.4.6 and version 1.4.7

  * enhancement: better handling of unknown keyword arguments (#1750466)
  * enhancement: namestrings can now be computed for certain pathnames
    that previously did not have namestrings because of #\. characters
    in their name and/or type components.
  * bug fix: compiling a SLEEP call with a float positive infinity
    argument no longer causes an internal error (#1754081)
  * bug fix: keyword arguments provided to a generic function with
    EQL-specialized methods are checked more correctly (reported by
    Syll, #1760987)

Changes between version 1.4.5 and version 1.4.6

  * enhancement: DISASSEMBLE on a symbol naming a macro will
    disassemble the expander, not the code that traps attempted
    FUNCALL of the macro.
  * enhancement: The sb-sprof contrib now provides an experimental
    interface for accessing collected profiler data.
  * enhancement: The instruction-level profiling of the sb-prof contrib
    annotates the disassembler output more efficiently.
  * optimization: improved dynamic-extent handling of nested variables.

Changes betweenNew in version 1.4.5

  * minor incompatible change: building with/without the :sb-package-locks
    feature is no longer an option. Package locks are always compiled in,
    and removing :sb-package-locks from *features* will have no effect.
  * enhancement: FIND-PACKAGE does not acquire a mutex
  * enhancement: cheneygc can perform heap relocation on startup
  * enhancement: in threaded builds, finalizers execute in a system-internal
    thread so that a user thread which invokes GC is unblocked from
    performing work as soon it returns from GC and invokes any post-GC hooks.
    As such, it is more important than before to avoid assumptions about
    special variable bindings in finalizers, even in single-threaded code.
  * optimization: faster (funcall (or function symbol)) on x86-64.

Changes between version 1.4.3 and version 1.4.4

  * bug fix: pathname accessors such as PATHNAME-DIRECTORY work on
    SYNONYM-STREAMs.
  * bug fix: (pathname-{device,directory,name,type} ... :case :common) works
    as expected. In particular MAKE-PATHNAME composed with the accessors
    roundtrips properly when both use the same :case. (#1739906)
  * bug fix: DIRECTORY no longer gets confused when the value of
    *DEFAULT-PATHNAME-DEFAULTS* has a name or type component. (#1740563)
  * bug fix: pattern pieces in pathname components are correctly
    escaped during unparsing.
  * bug fix: DELETE-DIRECTORY no longer signals an error when the
    directory is supplied as a pathname with name and/or type
    components containing escaped characters. (#1740624)
  * bug fix: weak hash-tables no longer cause GC time to scale
    superlinearly (#1241771)
  * bug fix: CANCEL-FINALIZATION operates in approximately constant
    time per operation (#1587983)
  * bug fix: big-endian MIPS systems now (mostly) work again (broken
    since 1.3.14.x).
  * bug fix: backtrace from arg-count errors on systems other than x86,
    x86-64, ARM, and ARM64 now works again.
  * bug fix: backtrace from asynchronous interrupts on non-x86,
    non-x86-64 systems should now be more reliable.
  * enhancement: warnings and errors referring to bindings established by
    LET, LET*, FLET and LABELS point to the offending form more accurately.
  * enhancement: backtrace for invalid argument count produces the
    exact supplied arguments including the extra ones on all platforms
    (no longer just x86, x86-64, ARM, and ARM64).
   2019-05-23 21:23:24 by Roland Illig | Files touched by this commit (242)
Log message:
all: replace SUBST_SED with the simpler SUBST_VARS

pkglint -Wall -r --only "substitution command" -F

With manual review and indentation fixes since pkglint doesn't get that
part correct in every case.
   2018-10-17 14:59:49 by Leonardo Taccari | Files touched by this commit (3) | Package updated
Log message:
sbcl: Honor UNLIMIT_RESOURCES and address PaX problems

- Due custom do-{build,test,install} UNLIMIT_RESOURCES were not honored leading
  to:

      //slurp-ucd
       *** - No more room for LISP objects

  errors. Adjust these target to honor UNLIMIT_RESOURCES.
- sbcl does not work with PaX MPROTECT because mmap()s by OR'ing all
  PROT_{EXEC,READ,WRITE}. Unfortunately src/runtime/sbcl is also
  used as part of building needing also `${PAXCTL} +m' in the middle
  of the build.
  Introduce an SBCL_PAXCTL variable (by default `:') via
  patch-src_runtime_GNUmakefile that execute a program against src/runtime/sbcl
  and define it for platforms that have a paxctl tool.
  Mark bin/sbcl with NOT_PAX_MPROTECT_SAFE too.
- Refactor the environment variables injection logic in do-{build,test,install}
  to honor MAKE_ENV and INSTALL_ENV.
- Minor mostly cosmetic adjustments (use ${RM}, not rm)

Bump PKGREVISION
   2018-01-04 15:47:17 by Jonathan Perkin | Files touched by this commit (3) | Package updated
Log message:
sbcl: Update to 1.4.3.  Changes since 1.3.21:

changes in sbcl-1.4.3 relative to sbcl-1.4.2:
  * enhancement: SLEEP respects deadlines established by SB-SYS:WITH-DEADLINE.
  * bug fix: DECODE-TIMEOUT and operators accepting a timeout no longer signal
    an error when called with an argument that is of type (real 0) but not
    (unsigned-byte 62) (lp#1727789)
  * bug fix: fixed heap exhaustion bug when consing millions of small objects
  * bug fix: sb-safepoint builds are now a lot less prone to deadlocks and odd
    crashes (lp#1424031, lp#1268710)
  * bug fix: argumentless CALL-NEXT-METHOD where specialized-to-T or
    unspecialized parameters are mutated now uses the original (non-mutated)
    parameter values (lp#1734771)
  * bug fix: memory faults from lisp no longer use (thread-and-interrupt
    unsafe) global storage for fault addresses (everywhere), and now have
    cleaner backtraces (on x86 and x86-64). (lp#309068)
  * bug fix: pathnames with a directory component of the form
    (:absolute {:up,:wild,:wild-inferiors}) no longer fail to unparse.
    (lp#1738775)
  * bug fix: more reliable signal handling on macOS.

changes in sbcl-1.4.2 relative to sbcl-1.4.1:
  * minor incompatible change: SB-EXT:QUIT is no longer marked as deprecated
    and behaves like SB-EXT:EXIT.
  * enhancement: ASDF updated to 3.3.1. The ASDF release is dedicated to
    the late Elias Pipping who put enormous amounts of work into it despite
    his terminal illness. Thank you and rest in peace.  (lp#1681201)
  * enhancement: alien routines compiled with '-fsanitize=thread' and/or
    '-fsanitize=memory' cause fewer false positives in error reporting.
  * optimization: fewer instances of consing float constants at runtime.
  * bug fix: a number of compiler bugs detected by Paul F. Dietz' randomized
    tester.  (lp#1731503, lp#1730699, lp#1723993, lp#1730434, lp#1661911,
    lp#1729639, lp#1729471, lp#1728692)
  * bug fix: better errors from NAMESTRING and friends on pathnames with no
    namestrings.  (lp#792154)
  * bug fix: EQUAL and EQUALP compiler transforms were too confident in
    deriving a result.  (lp#1732277, lp#1732225)
  * bug fix: FILL sometimes returned the underlying data vector rather than
    the given array.  (lp#1732553)
  * bug fix: SEARCH returned the wrong answer in some cases.  (lp#1732952)
  * bug fix: the type (COMPLEX INTEGER) behaves more as specified by Function
    TYPEP, which has stronger constraints than System Class COMPLEX.
    (Reported by Eric Marsden, lp#1733400)

changes in sbcl-1.4.1 relative to sbcl-1.4.0:
  * optimization: faster foreign callbacks.
  * enhancement: complex arrays can be stack allocated.
  * enhancement: PROCESS-KILL now exists on win32 and PROCESS-PID actually
    returns the PID.
  * optimization: the register allocation method used by the compiler when
    optimizing for speed is now faster for functions with large bodies.
  * bug fix: SB-INTROSPECT:ALLOCATION-INFORMATION works on big-endian CPUs
    (fixes lp#490490 for real rather than by disabling a test)
  * bug fix: code objects and bignums of large enough size to be placed
    on GC pages without any other object no longer cause accidental copying
    during garbage collection. (gencgc only)
  * bug fix: sb-fasteval failure with 0-argument lambdas (lp#1722715)
  * bug fix: RUN-PROGRAM doesn't leak handles on win32 and PROCESS-CLOSE
    doesn't crash. (lp#1724472)

changes in sbcl-1.4.0 relative to sbcl-1.3.21:
  * minor incompatible change: DESTRUCTURING-BIND treats non-toplevel () as
    nested empty pattern. This seems to be what the standard mandates, so
    conforming code should not be affected.
  * ehancement: (GC :GEN 7) with gencgc will zero-fill dead pseudo-static
    objects so that they do not spuriously cause reachability of objects that
    would have been otherwise dead.
  * enhancement: PROCESS-STATUS now tracks stopped and continued processes
    properly (also fixes lp#1624941, based on patch by Elias Pipping).
  * bug fix: INSPECT handles errors signaled while printing slot
    values. (lp#454682)
  * bug fix: DESCRIBE works on classes like it used to.
  * bug fix: *LOAD-PATHNAME* and *LOAD-TRUENAME* are bound to pathnames
    when processing a sysinit or userinit file
  * bug fix: save-lisp-and-die is able to collect more garbage on non-x86oid
    gencgc targets.
  * bug fix: fixed out-of-bounds array read in optimized POSITION on bit-vectors
  * bug fix: signal emulation respects the 128-byte stack red zone on x86-64
    macOS.
   2018-01-01 19:16:39 by Roland Illig | Files touched by this commit (47)
Log message:
Replaced $(ROUND) with ${CURLY} variable references.

This has been a pkglint warning for several years now, and pkglint can even
fix it automatically. And it did for this commit.

Only in lang/mercury, two passes of autofixing were necessary because there
were nested variables.
   2017-09-17 17:04:23 by Aleksej Saushev | Files touched by this commit (4)
Log message:
Disassociate myself from NetBSD project.
   2017-09-16 12:41:55 by Aleksej Saushev | Files touched by this commit (2) | Package updated
Log message:
Update to SBCL 1.3.21

New in version 1.3.21

 - minor incompatible change: the CLOBBER-IT restart for defstruct
   redefintion has been removed after a 15 year deprecation cycle.
   Use the new name, RECKLESSLY-CONTINUE. Note also that this restart
   is hidden if deemed unsafe due to altered placement of untagged slots
   in the structure.
 - enhancement: the assignment of -DSBCL_PREFIX= in src/runtime/GNUmakefile
   can be removed as a local patch, which results in an sbcl executable
   that finds its core file relative to itself by looking in "../lib/sbcl".
 - enhancement: backends using the generational GC are able to relocate
   dynamic space anywhere the operating system places it. This feature
   can be disabled by removing :relocatable-heap from the build configuration.
   Not supported on Windows.
 - enhancement: DEFMETHOD no longer signals IMPLICIT-GENERIC-FUNCTION-WARNING.
 - enhancement: better type conflict detection for high order functions,
   e.g. (find x "123" :test #'=)
 - enhancement: the tabular output of ROOM is aligned dynamically,
   preventing misaligned tables for larger sizes or counts.
 - enhancement: ROOM reports on immobile space if applicable.
 - optimization: optimized external-format routines.
 - bug fix: SB-INTROSPECT:ALLOCATION-INFORMATION returns :IMMOBILE
   instead of :FOREIGN for objects in immobile space.
 - bug fix: dotted lists in special forms and function call forms signal
   an appropriate error
 - bug fix: EQUALP hash tables with pathname keys now ignore internal slots.
   (#1712944, reported by Jason Miller)

New in version 1.3.20

 - minor incompatible change: DEF{GENERIC,METHOD} no longer accept
   some illegal lambda lists such as (defgeneric bar (foo &key foo))
   or (defgeneric baz (t)) that were accepted before.
 - optimization: a valueless &AUX binding in a BOA constructor does not
   force all slots reads in safe code to perform a full type check.
 - optimization: ATOMIC-PUSH and ATOMIC-POP generate better code
 - bug fix: the low-level debugger would erroneously print - or not print
   as the case may be - "(bad-address)" for some objects depending whether
   the --dynamic-space-size argument was used at Lisp startup
 - bug fix: a DEFCONSTANT with a non non-eql-comparable object as the value
   could cause miscompilation if that constant appeared as the default
   expression for an &OPTIONAL binding
 - bug fix: generic function lambda lists are now checked for repeated
   and otherwise illegal entries. (#1704114)
 - bug fix: setting gencgc_verbose = 1 could cause deadlock in fprintf()
   depending on the platform's stdio implementation. The relevant code
   has been changed to use snprintf() and write() instead.

New in version 1.3.19

 - enhancement: specialized arrays can be printed readably without using
   *read-eval*
 - enhancement: SB-DEBUG:PRINT-BACKTRACE truncates huge string arguments.
   The full string remains available for inspection via (SB-DEBUG:ARG).
 - bug fix: backtracing from several threads at once could fail
 - bug fix: floating-point infinities could not be used as keys in EQUALP
   hash tables. (#1696274)
 - bug fix: random sb-fasteval failures. (#1642708)
 - bug fix: align the stack in callback wrappers to defend against C compiler
   over-aggressive use of SIMD. (#1697528)
 - bug fix: don't try to find the class when reporting that a class does not
   exist for a primitive type. (#1697226)
   2017-06-17 22:58:27 by Aleksej Saushev | Files touched by this commit (2) | Package updated
Log message:
Update to SBCL 1.3.18

changes in sbcl-1.3.18 relative to sbcl-1.3.17:
  * minor incompatible change: existing values of CFLAGS, ASFLAGS,
    CPPFLAGS, and LINKFLAGS will be incorporated into C compiler
    invocations when building from source.
  * minor incompatible change: the result of WRITE-TO-STRING may be
    a BASE-STRING if all characters written are of type BASE-CHAR.
  * minor incompatible change: the broadcast stream with no output
    streams is a singleton object. That object satisfies OPEN-STREAM-P
    regardless of how many times CLOSE is invoked on it.
  * enhancement: x86[-64] backends contain an experimental feature
    which aids in demonstrating reachability of any object starting
    from a tenured object or a thread stack by producing a proof
    as a sequence of pointers to follow.
    The file "tests/traceroot.test.sh" contains an example usage.
  * enhancement: if the alien symbol "gc_coalesce_string_literals" is
    set to 1 prior to SAVE-LISP-AND-DIE, then similar string constants
    loaded from different fasl files may be collapsed to one object.
    If the variable is set to 2, then additionally strings which are
    STRING= in code resulting from COMPILE can be coalesced.
    For instance, two functions returning the literal string "HI"
    might return EQ strings after collapsing, which may be undesired
    in a particular use. The flag pertains to gencgc only.
  * enhancement: SXHASH values on pathnames are better distributed
  * bug fix: MAKE-PATHNAME removes empty strings as components of a
    directory, as is permitted: "Whenever a pathname is constructed
    the components may be canonicalized if appropriate."
  * optimization: various printer and FORMAT performance enhancements.
  * bug fix: GET-FOREGROUND no longer fails in case all other interactive
    threads exit (lp#1682671, reported by Syll)
  * bug fix: RELEASE-FOREGROUND always removes the current thread from the
    list of interactive threads. (lp#1682867, reported by Syll)