========================== C M U C L 21 a =============================
The CMUCL project is pleased to announce the release of CMUCL 21a. This is a major release which contains numerous enhancements and bug fixes from the 20f 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
- The darwin/ppc port can create executables now. Current implementation is rather buggy, though.
-
Changes
- Micro-optimize
SCALE-FLOAT
to do multiplication when possible. - Update to ASDF 3.1.5.
- The external-format
:UTF
is no longer an alias for:UTF-8
. -
:ELF
feature added for solaris. -
LISP:WITH-STRING-CODEPOINT-ITERATOR
added to iterate over the codepoints in a string. This works the same asWITH-HASH-TABLE-ITERATOR
. -
LISP:WITH-STRING-GLYPH-ITERATOR
added to iterate over the glyphs in a string. Works likeWITH-HASH-TABLE-ITERATOR
. -
LOOP
supports new extended keywords-
(loop for cp being the codepoint of string ...)
-
codepoints
,code-point
, andcode-points
are aliases forcodepoint
.
-
-
(loop for g-string being the glpyh of string ...)
-
glyphs
is an alias forglpyh
.
-
-
- The
UNIX
package has been split into two parts. By default theUNIX
package contains just enough to build CMUCL. If you want the rest of the functionality, use(require :unix)
. - Added clx-inspector module.
- ASDF documentation included in html, info, and pdf formats in
contrib/asdf/doc/
. - If
-quiet
is given, don't print out the herald, even if the user init files add things to the herald. (Previously, these would get printed out.) Also,-quiet
no longer removes the herald items; you can sill print out the entire herald using(print-herald)
- Micro-optimize
-
ANSI compliance fixes:
- See Issue #3 (closed), #4 (closed), #5 (closed), #7 (closed).
-
Bugfixes:
- On ppc machines with clock speeds over 2 GHz or so,
LISP::CYCLES-PER-TICK
is no longer negative. This caused the cycle count fromTIME
to be negative. -
EXTERN-ALIEN-NAME
unified not to prepend an underscore if:ELF
is a*FEATURE*
. - Motifd will work as either a 32-bit or 64-bit app.
- Various bugs in clm fixed:
- Occasional
RXmStringGetLtoR
crash fixed. - Motifd text callback fixed.
- Occasional
- Support for 64-bit time_t on NetBSD added. This allows cmucl to run on more recent versions of NetBSD.
- The empty package
LOOP
has been removed. - Executables on x86 can be created once again. This ability was inadvertently broken when x86 support was removed.
-
(log number base)
no longer generates an error when one of the args is adouble-double
. - Fix bug in
kernel::dd-%log2
which returned the wrong value. - More accurate values for
(log x 2)
and(log x 10)
:- Add log10 implementation for double-doubles so that
log10(10^n) = n
for integern
. - An accurate
log2
function added so thatlog2(2^n) = n
.
- Add log10 implementation for double-doubles so that
- All unit tests pass successfully on darwin/x86, linux/x86, and solaris/sparc. Darwin/ppc fails most of the tests dealing with exceptions for the special functions.
- Fix compiler warnings in motif about destructive functions discarding their results.
- Move back some
UNIX
functionality back into the core. asdf wantsunix-getenv
and slime wantsunix-execve
andunix-fork
. - Increase
*ERROR-PRINT-LINES*
to 10. - Updated FreeBSD 9.3 support for building motifd.
- Issue #4 (closed) updated:
- ELT did not terminate when the index was negative.
- On ppc machines with clock speeds over 2 GHz or so,
-
Trac Tickets:
-
Gitlab tickets:
- Issue #1 (closed): Handle funcall in compiler macro functions.
- Issue #5 (closed): Give better error message when using T in CASE.
- Issue #4 (closed): ELT on lists does not signal an error when given invalid index.
- Issue #3 (closed): Shadowing compiler macro functions.
- Issue #7 (closed): Local functions and get-setf-expansions
- Issue #8 (closed): Constants and top-level code
-
Other changes:
- Cross compile scripts from x86 to sparc and ppc updated to work again to cross-compile from the current snapshot.
- motifd is a 64-bit binary on linux again, instead of 32-bit.
-
Improvements to the PCL implementation of CLOS:
-
Changes to building procedure:
- Dependencies for motifd are autogenerated.
- Cross compile from darwin/x86 to solaris/x86 fixed to work correctly.
This release is not binary compatible with code compiled using CMUCL 20f; you will need to recompile FASL files.
See http://www.cmucl.org or http://trac.common-lisp.net/cmucl for download information, guidelines on reporting bugs, and mailing list details.
We hope you enjoy using this release of CMUCL!