========================== C M U C L 20 c ============================= [--- WORK IN PROGRESS ---] The CMUCL project is pleased to announce the release of CMUCL 20c. This is a major release which contains numerous enhancements and bug fixes from the 20b 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 - Update to Unicode 5.2.0. - Add support for character name completion. This can be used by Slime to do character name completion. * Changes - COMPILE-FILE now accepts a :DECODING-ERROR argument that indicates how to handle decoding errors when reading the file. It has the same meaning and effect as the :DECODING-ERROR argument to OPEN. This defaults to T here so that decoding errors are signaled on invalid sequences instead of silently replacing the bad sequence with some kind of replacement character. - In 19f through 20b, READ-SEQUENCE could read mostly arbitrary data from a stream in to the given sequence. In this release, READ-SEQUENCE cannot do that unless the stream is a binary-text-stream. This is an incompatible change from previous releases. - RUN-PROGRAM accepts :EXTERNAL-FORMAT parameter to specify the external format to be used for any streams that RUN-PROGRAM needs to create. - Add src/tools/build-all.sh to automate building all of the variants (x87/sse2, unicode/8-bit). * ANSI compliance fixes: - Fixes for signaling errors with READ-CHAR and READ-BYTE o READ-CHAR signals errors if the stream is not a character stream. This is a change from 20a and 20b, but matches releases before 19f. (Almost. 19f allowed reading characters from (unsigned-byte 8) streams. 19e did not.) o READ-BYTE signals errors if the stream is not a binary stream. This is also a change from 20a and 20b, but matches releases before 19f. (Almost. 19f allowed reading bytes from character streams. 19e did not.) o But READ-CHAR and READ-BYTE will work if the stream class is 'binary-text-stream, an extension for bivalent streams in CMUCL. READ-CHAR will use the specified external format for such streams. READ-BYTE reads (unsigned-byte 8) elements from such streams. * Bugfixes: - The pairwise composition table is now correctly built. Previously, it skipped over non-BMP codepoints. This also requires a fix in %COMPOSE to handle non-BMP codepoints correctly. The normalization test now passes. - REALPART and IMAGPART no longer incorrectly returns 0 instead of the correct part of a complex number. * Trac Tickets: * Other changes: * Improvements to the PCL implementation of CLOS: * Changes to building procedure: This release is not binary compatible with code compiled using CMUCL 20b; you will need to recompile FASL files. See for download information, guidelines on reporting bugs, and mailing list details. We hope you enjoy using this release of CMUCL!