========================== 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:
- 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
- If the linker fails to link an image, the exit code is returned to indicate failure.
- This mostly entails internal changes in how executables are handled. lisp.a is not complete; it must be linked with either
- 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
- Executable images on OSX no longer support running on other
versions of the OS. Previously,
-mmacosx-version-min=10.5was 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
- Unix support on Linux has been unified with all other OSes.
src/code/unix-glibc2.lispis no longer used.
- Micro-optimize modular shifts on x86.
- Update lisp-unit to commit e6c259f.
(EXPT 0 power)doesn't throw
INTEXP-LIMIT-ERRORanymore 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
- 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
- Building on NetBSD now requires version 7.0 or later.
ANSI compliance fixes:
PATHNAME-MATCH-Pdid not accept search-lists.
(COMPILE 'FOO)returns the compiled function if
FOOis 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
COMPILEto get the old behavior back.
- Linux was missing
UNIX-SETITIMERwhich 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.
:TRUENAME NIL) will follow directory links. Previously, the directories that were links weren't followed.
- Linux was missing
- 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-ENABLEDdoesn't incorrectly set accrued exceptions anymore.
- Ticket #15 fixed:
FLOATING-POINT-INEXACTexception prints out values correctly now.
- Ticket #17 fixed: better docstring for
- Ticket #18 fixed: better description of
- Ticket #22 fixed: Incorrect coercion to float.
- Ticket #25 fixed: Issue with
EXT:RUN-PROGRAMand 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
- Ticket #31 fixed:
- Ticket #24 fixed: Compilation of
- Ticket #32 fixed: doc fix:
- 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!