|
|
========================== 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! |