Under Darwin, the Lisp kernel now tries to reserve a little less
than 2GB for heap expansion (the previous limit was 1GB). A
new reader macro (#?) was provided to simplify access to
foreign variables. A number of bugfixes were made: the generic
function COMPUTE-CLASS-PRECEDENCE-LIST is now
defined, foreign threads now establish thread-specific special
variable bindings correctly, Lisp slots on ObjC objects now
have their INITFORMs processed correctly, and ACOS and
ASIN accept arguments of type COMPLEX. FASL files will
have to be recompiled.
POSIX threads are used instead of "green threads".
A large subset of the Common Lisp metaobject
protocol has been implemented, and is used by the
Objective-C interface. A Cocoa bridge which
facilitates interfacing with the Cocoa API has
been contributed, and the Cocoa examples have been
rewritten to use it. Several hundred ANSI
compliance bugs identified by Paul Dietz's test
suite have been fixed. A number of opensource
libraries such as ASDF and ASDF-INSTALL are
bundled with the release.
The protocol for integrating Gray streams with READ-SEQUENCE and
WRITE-SEQUENCE has changed. A number of bugs have been fixed:
printing bignums when *PRINT-BASE* was set to 36 would fail; CONSTANTP
now takes and uses an optional "env" argument, as per the ANSI CL
standard; OpenMCL is now compatible with some LinuxPPC ABI changes
introduced in glibc 2.3.2 (the "foreign" value of the r2 register is
maintained). Heap images that are loaded at a different address from
that from which they were saved now relocate themselves properly.
The FASL loader code has been reworked in order to allow loading code from different sources. There have been a number of bugfixes: (setf documentation) no longer causes a hang, TYPEP and SUBTYPEP now accept (and currently ignore) optional environment arguments, and T or OTHERWISE clauses in TYPECASE forms (and variants) now correctly return NIL when no consequent is present. The compiler will now issue a warning if a constant :ELEMENT-TYPE in a MAKE-ARRAY call denotes a type that's unknown at compile time.
Binaries are now built with options that enable the retention of extra debugging information (docstrings and information on local symbols). Symbols related to "Gray stream" functionality are exported from a new "GRAY" package. Almost 300 bugs detected by the GCL ANSI test suite have been fixed. Fixes were made to the type system, the LOOP module, to sequence and list functions, to DEFSTRUCT, and to keyword handling in lambda lists. More specific errors are signaled in certain situations as mandated by the ANSI specification, and package exports have been cleaned up.