========================== C M U C L  21 b =============================

The CMUCL project is pleased to announce the release of CMUCL 21b.
This is a major release which contains numerous enhancements and bug
fixes from the 21a release.

CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a
source-level debugger and code profiler; and an Emacs-like editor
implemented in Common Lisp. CMUCL is maintained by a team of
volunteers collaborating over the Internet, and is mostly in the
public domain.

New in this release:
  * Known issues:

  * Feature enhancements

  * Changes
    * Update to ASDF 3.1.7.
    * Add support for asdf's static-image-op
      * This mostly entails internal changes in how executables are
        handled.  lisp.a is not complete; it must be linked with
        either exec-init.o or exec-final.o.
      * If the linker fails to link an image, the exit code is
        returned to indicate failure.
    * When printing the process structure (from RUN-PROGRAM), include
      the exit code to make it easier to see if the the process exited
      cleanly or not.  The printed representation is also changed
      slightly to use PPRINT-UNREADABLE-OBJECT.
    * Executable images on OSX no longer support running on other
      versions of the OS.  Previously, -mmacosx-version-min=10.5 was
      used to specify the executable would run on OSX versions >=
      10.5.  This, however, requires the 10.5 SDK be available.  Thus,
      no longer require that.
    * Disassembly of bytes and words now use .BYTE and .WORD instead
      of BYTE and WORD.
    * Unix support on Linux has been unified with all other OSes.
      Thus, src/code/unix-glibc2.lisp is no longer used.
    * Micro-optimize modular shifts on x86.
    * Update lisp-unit to commit e6c259f.
    * Added EXT:WITH-FLOAT-TRAPS-ENABLED to complement
      WITH-FLOAT-TRAPS-MASKED.
    * (EXPT 0 power) doesn't throw INTEXP-LIMIT-ERROR anymore for any
      integer value of power.
    * Starting CMUCL with "-dynamic-space-size 0" means using the
      maximum possible heap size for the platform.
    * More descriptive docstring for
      * *ENVIRONMENT-LIST*
      * :ENV option for RUN-PROGRAM
    * Maximum dynamic-space-size on Linux reduced to 1530 MB because
      that's the largest available space on 32-bit Ubuntu 11.10.
    * For linux, darwin, and solaris/sparc, the binding stack and
      control stack are now mapped into memory wherever the OS wishes
      to place them instead of being mapped into a fixed location.
      This is indicated by new feature :RELOCATABLE-STACKS.
    * Building on NetBSD now requires version 7.0 or later.

  * ANSI compliance fixes:
    * PATHNAME-MATCH-P did not accept search-lists.
    * (COMPILE 'FOO) returns the compiled function if FOO is already
      compiled. (See Ticket #24).  This is a change in behavior for
      developers where foo would be recompiled if the source was
      available.  Developers might want to investigate UNCOMPILE
      combined with COMPILE to get the old behavior back.

  * Bug fixes:
    * Linux was missing UNIX-SETITIMER which prevented saving cores.
    * Generate inexact exceptions more carefully.
    * Fix FP issue when building with Xcode 7.2 (and newer versions of
      clang).  (See ticket #12.)
    * Cleanups in handling floating-point exceptions.  See Tickets #15
      and #16.
    * DIRECTORY with :FOLLOW-LINKS T (and :TRUENAME NIL) will follow
      directory links.  Previously, the directories that were links
      weren't followed.

  * Trac Tickets:

  * Gitlab tickets:
    * Ticket #10 fixed: setting an element of a 1, 2, or 4-bit array
      with a constant index did not always set the element
      appropriately.
    * Ticket #12 fixed.  It looks like a possible compiler bug, but
      worked around by explicitly setting inexact instead of using FP
      instructions to generate inexact.
    * Ticket #16 fixed: search-lists are handled correctly.
    * Ticket #14 fixed: WITH-FLOAT-TRAPS-ENABLED doesn't incorrectly
      set accrued exceptions anymore.
    * Ticket #15 fixed: FLOATING-POINT-INEXACT exception prints out
      values correctly now.
    * Ticket #17 fixed: better docstring for *ENVIRONMENT-LIST*
    * Ticket #18 fixed: better description of :ENV option for
      RUN-PROGRAM.
    * Ticket #22 fixed: Incorrect coercion to float.
    * Ticket #25 fixed: Issue with EXT:RUN-PROGRAM and string streams
      (related to character sizes?)
    * Ticket #27 fixed: Regression: ASDF test failures
    * Ticket #28 fixed: Recursive function definition during
      cross-compile
    * Ticket #30 fixed: Compilation of (DESCRIBE 'FOO)
    * Ticket #31 fixed: (COMPILE #'FOO) fails
    * Ticket #24 fixed: Compilation of (COMPILE 'FOO)
    * Ticket #32 fixed: doc fix: EXT:RUN-PROGRAM has no before-execve option

  * Other changes:
    * Update user manual.

  * Improvements to the PCL implementation of CLOS:

  * Changes to building procedure:


This release is not binary compatible with code compiled using CMUCL
21a; you will need to recompile FASL files.

See <URL:http://www.cmucl.org> or
<URL:https://gitlab.common-lisp.net/cmucl/cmucl> for more information,
See
<URL:https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl>
for obtaining CMUCL, including sources and binaries..


We hope you enjoy using this release of CMUCL!
