Skip to content
Snippets Groups Projects
Commit 024eb258 authored by toy's avatar toy
Browse files

Release notes for 18e from Eric Marsden.

parent 96fd4726
No related branches found
No related tags found
No related merge requests found
========================== C M U C L 18 e =============================
[--- WORK IN PROGRESS --- DO NOT DISTRIBUTE ---]
The CMUCL project is pleased to announce the release of CMUCL 18e.
This is a major release which contains numerous enhancements and
bugfixes from the 18e 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 multimethods and a metaobject 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:
* Feature enhancements:
* Numerous ANSI compliance fixes:
- SYMBOL-MACROLET signals an error when an attempt is made to
bind a special variable or a constant
- WITH-OUTPUT-TO-STRING accepts the :external-format keyword
argument
- the function WRITE-STRING accepts a NIL value for the :end
argument
- the function CHANGE-CLASS now accepts initargs
- loops of the form (LOOP FOR I BY (INCF X) FROM ...) now work
- in loop forms, the INITIALLY, FINALLY and DO keywords must be
followed by a compound form
- in the loop macro, PRESENT-SYMBOL now means both internal and
external symbols of a package
- the class precedence list of NULL has symbol before list
- the function FLOAT-RADIX signals an error if its argument is
not a float
- an error is signaled if the lambda keyword &rest is not
followed by a variable
- the GENTEMP function no longer accepts arguments of type symbol
- the function SHIFTF supports multiple values
- compiler macros recognize calls of the form (funcall foo args)
- (coerce <rational> '(complex float)) now returns a (complex
float) rather than a rational
- the ECASE and CCASE macros are allowed to use T and OTHERWISE
as regular keys, instead of as the otherwise clause. CMUCL
prints a warning about this being poor style.
* Numerous bugfixes:
- READ-BYTE on certain types of multi-byte elements was incorrect
- fix the treatment of colon package delimiters for the ~/
formatting directive
- correction to CLX's handling of FamilyLocal authorization
cookies (as created by versions of ssh after 3.4)
- fix to CLX handling of :any event-spec ??
- fix to boa-constructors ??
- EXPT was not correctly handling a zero exponent
- index calculations for operations bitvectors of sizes near the
ARRAY-DIMENSION-LIMIT could overflow
- redefining a class with a changed class precedence list didn't
update the CMUCL type system
- generated CLOS getter/setter/boundp generic functions are now
declared correctly, to eliminate bogus undefined function
warnings from the compiler
- method combination options for the long form of the
DEFINE-METHOD-COMBINATION special form work correctly
- executing a defclass form with a metaclass of STRUCTURE-CLASS
would result in the generation of recursive print-object
methods, so that printing such instances would loop
- dividing a ration by zero returned 1/0 instead of signaling an
error
- PPRINT-LOGICAL-BLOCK with a numeric prefix no longer causes the
system to crash
- in the byte-compiler, string comparisons STRING< and STRING>
returned incorrect results
- the function READ-SEQUENCE returned incorrect results for
specialized arrays when the internal READ-N-BYTES function read
short
- when a sequence type specifies a length, CMUCL checks that the
length of sequence arguments match the length of the sequence type
- the function COMPILE-FILE-PATHNAME computes the output file
name by merging the input file name and the supplied output file name
- the functions MAKE-BROADCAST-STREAM, MAKE-TWO-WAY-STREAM,
MAKE-CONCATENATED-STREAM and MAKE-ECHO-STREAM check that their
argument is an input or output stream, as appropriate
- numerous error conditions are signalled using a more specific
condition type than a generic error
* Other changes:
- the function PROFILE:REPORT-TIME no longer prints out a long
list of functions that were not profiled. The cutoff is
user-configurable by setting the new variable
PROFILE::*NO-CALLS-LIMIT*.
- reinstated the ability to build small runtime images (excluding
the compiler)
* Code cleanups:
* Changes to rebuilding procedure:
- the search-list "modules:" tracks the "library:" search-list,
instead of being set to whatever "library:subsystems/" is at
startup.
This release is not binary compatible with code compiled using CMUCL
18d; you will need to recompile FASL files.
See <URL:http://www.cons.org/cmucl/> for download information,
guidelines on reporting bugs, and mailing list details.
We hope you enjoy using this release of CMUCL!
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment