ViewVC logotype

Contents of /src/general-info/release-18e.txt

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.6 - (show annotations)
Mon Feb 24 13:09:10 2003 UTC (11 years, 1 month ago) by gerd
Branch: MAIN
Changes since 1.5: +7 -1 lines
File MIME type: text/plain
Add generalized function names under Feature Enhancements.
Add dolist and make-string fixes.
1 ========================== C M U C L 18 e =============================
5 The CMUCL project is pleased to announce the release of CMUCL 18e.
6 This is a major release which contains numerous enhancements and
7 bugfixes from the 18d release.
9 CMUCL is a free, high performance implementation of the Common Lisp
10 programming language which runs on most major Unix platforms. It
11 mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
12 sophisticated native code compiler; a powerful foreign function
13 interface; an implementation of CLOS, the Common Lisp Object System,
14 which includes multimethods and a metaobject protocol; a source-level
15 debugger and code profiler; and an Emacs-like editor implemented in
16 Common Lisp. CMUCL is maintained by a team of volunteers collaborating
17 over the Internet, and is mostly in the public domain.
19 New in this release:
21 * Feature enhancements:
22 - Karatsuba multiplier added to give faster multiplication for
23 big bignums.
24 - Better support for linking foreign libraries. You can now dump
25 cores with foreign libraries and reload the core without having
26 to reload the libraries. Available if the feature
27 :linkage-table is present.
28 - A cross-referencing facility has been added to the compiler,
30 information. See the corresponding chapter of the User's Manual
31 for more information.
32 - Bindings to the POSIX user and group database access functions
33 (getpwuid et al) have been added to the UNIX package.
34 - Support for Unix sockets and for binding to specific IP
35 addresses has been added to the networking code.
36 - Support for generalized function names of the form
37 (<SYMBOL> ...) has been added. See EXT:DEFINE-FUNCTION-NAME-SYNTAX
40 * Numerous ANSI compliance fixes:
41 - SYMBOL-MACROLET signals an error when an attempt is made to
42 bind a special variable or a constant
43 - the function COMPILE no longer coalesces constants (however,
44 COMPILE-FILE continues to do so)
45 - WITH-OUTPUT-TO-STRING accepts the :external-format keyword
46 argument
47 - the function WRITE-STRING accepts a NIL value for the :end
48 argument
49 - the function CHANGE-CLASS now accepts initargs
50 - loops of the form (LOOP FOR I BY (INCF X) FROM ...) now work
51 - in loop forms, the INITIALLY, FINALLY and DO keywords must be
52 followed by a compound form
53 - in the loop macro, PRESENT-SYMBOL now means both internal and
54 external symbols of a package
55 - the class precedence list of NULL has symbol before list
56 - the function FLOAT-RADIX signals an error if its argument is
57 not a float
58 - an error is signaled if the lambda keyword &rest is not
59 followed by a variable
60 - the GENTEMP function no longer accepts arguments of type symbol
61 - the function SHIFTF supports multiple values
62 - compiler macros recognize calls of the form (funcall foo args)
63 - (coerce <rational> '(complex float)) now returns a (complex
64 float) rather than a rational
65 - the ECASE and CCASE macros are allowed to use T and OTHERWISE
66 as regular keys, instead of as the otherwise clause. CMUCL
67 prints a warning about this being poor style.
68 - the type (complex (eql 0)) is accepted now instead of
69 generating an error.
70 - the sequence functions check to make sure sequences are
71 specified and that, if lengths are given, the result matches
72 the given length.
73 - when the argument to TRANSLATE-LOGICAL-PATHNAME is a physical
74 pathname, return it instead of signalling an error.
75 - the function DEFAULT-DIRECTORY returns a pathname with an
76 explicit Unix host, instead of leaving it unspecified.
77 - logical pathnames are now externalizable
78 - bad directives in FORMAT-LOGICAL-BLOCK: an error is now signalled
79 if ~W, ~_, ~<...~:>, ~I, or ~:T is used inside "~<..~>"
80 (without the colon modifier on the closing syntax).
81 - the SUBTYPEP function is more intelligent when dealing with
82 certain hairy types (such as those based on SATISFIES).
84 * Numerous bugfixes:
85 - READ-BYTE on certain types of multi-byte elements was incorrect
86 - fix the treatment of colon package delimiters for the ~/
87 formatting directive
88 - correction to CLX's handling of FamilyLocal authorization
89 cookies (as created by versions of ssh after 3.4)
90 - fix to CLX handling of :any event-spec ??
91 - fix to boa-constructors ??
92 - EXPT was not correctly handling a zero exponent
93 - index calculations for operations bitvectors of sizes near the
94 ARRAY-DIMENSION-LIMIT could overflow
95 - redefining a class with a changed class precedence list didn't
96 update the CMUCL type system
97 - generated CLOS getter/setter/boundp generic functions are now
98 declared correctly, to eliminate bogus undefined function
99 warnings from the compiler
100 - method combination options for the long form of the
101 DEFINE-METHOD-COMBINATION special form work correctly
102 - executing a defclass form with a metaclass of STRUCTURE-CLASS
103 would result in the generation of recursive print-object
104 methods, so that printing such instances would loop
105 - dividing a ration by zero returned 1/0 instead of signaling an
106 error
107 - PPRINT-LOGICAL-BLOCK with a numeric prefix no longer causes the
108 system to crash
109 - byte-compiled calls to two-argument STRING< and STRING>
110 returned incorrect results
111 - the function READ-SEQUENCE returned incorrect results for
112 specialized arrays when the internal READ-N-BYTES function read
113 short
114 - when a sequence type specifies a length, CMUCL checks that the
115 length of sequence arguments match the length of the sequence type
116 - the function REMOVE was not correctly handling all possible
117 combinations of the :start, :end and :from options.
118 - the function COMPILE-FILE-PATHNAME computes the output file
119 name by merging the input file name and the supplied output file name
122 argument is an input or output stream, as appropriate
124 called with arguments in the wrong order.
125 - numerous error conditions are signalled using a more specific
126 condition type than a generic error
127 - many (all?) cases where the unused labels functions were
128 causing a compiler assertion error.
129 - some cases where the compiler was incorrectly deriving the
130 types of functions have been fixed.
131 - error reporting in many areas have been improved to be more
132 specific and/or ANSI compliant.
133 - error detection of defclass options in line with ANSI
134 requirements.
135 - the compiler now checks type declarations on array elements
136 before believing them.
137 - Special declarations of the DOLIST iteration variable are
138 now honoured when evaluating the DOLIST result form.
139 - The argument evaluation order of MAKE-STRING in compiled
140 code has been fixed.
142 * Other changes:
143 - The sparc port has experimental support for native 64-bit
144 integers (unsigned-byte 64) and (signed-byte 64) on sparc v9
145 (64-bit) architectures. Enabled if the feature :sparc-v8plus
146 is present (you will need to rebuild CMUCL).
147 - The CMUCL release tarballs are now relocatable. The lisp image
148 (in the lisp.core file) is now searched for relative to the
149 lisp runtime. The previous search mechanisms still take
150 precedence: the -core commandline option, the CMUCLLIB
151 environment variable, the default /usr/local/lib/cmucl search
152 path.
153 - Messages from the compiler are now preceded by a semicolon, for
154 better interaction with environments with syntax highlighting.
155 - An improved initializer for random state is available (function
156 KERNEL:INIT-RANDOM-STATE accepts an argument of type vector).
157 - the function PROFILE:REPORT-TIME no longer prints out a long
158 list of functions that were not profiled. The cutoff is
159 user-configurable by setting the new variable
161 - reinstated the ability to build small runtime images (excluding
162 the compiler)
163 - DESCRIBE will print a note if a symbol names a type-specifier
164 - numeric types with empty ranges are accepted silently (instead
165 of signalling an error), and treated as the empty type.
166 - on Linux, the function SOFTWARE-VERSION returns more useful
167 information than in the past, including the kernel version
168 number.
169 - the function MAKE-DISPATCH-MACRO-CHARACTER will quietly
170 override existing definitions, instead of signalling an error
171 if a previous binding for a macro character existed.
173 * Code cleanups:
174 - a number of stale symbols have been deleted from CMUCL images
176 * Numerous improvements to the PCL implementation of CLOS:
177 - some unused code has been deleted
178 - error checking of CLOS functions has been significantly improved
179 - the hash function for PCL instances has been improved
180 - superfluous SLOT-BOUNDP checking for structure-classes has been
181 removed
182 - the preallocation of caches for generic functions has been
183 removed, since benchmarking indicated that this doesn't provide a
184 noticeable performance increase
186 * Changes to rebuilding procedure:
187 - the search-list "modules:" tracks the "library:" search-list,
188 instead of being set to whatever "library:subsystems/" is at
189 startup.
191 * Deprecated features:
192 - the HASH-NEW, NEW-COMPILER and RANDOM-MT19937 elements of the
193 *FEATURES* list are deprecated. Starting from the next release of
194 CMUCL, the corresponding code will be included in default CMUCL
195 builds.
198 This release is not binary compatible with code compiled using CMUCL
199 18d; you will need to recompile FASL files.
201 See <URL:http://www.cons.org/cmucl/> for download information,
202 guidelines on reporting bugs, and mailing list details.
205 We hope you enjoy using this release of CMUCL!

  ViewVC Help
Powered by ViewVC 1.1.5