/[cmucl]/src/general-info/release-19a.txt
ViewVC logotype

Contents of /src/general-info/release-19a.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.112 - (hide annotations)
Fri Apr 23 15:10:13 2004 UTC (9 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2004-05, release-19a-base, release-19a-pre1
Branch point for: release-19a-branch
Changes since 1.111: +1 -0 lines
File MIME type: text/plain
ANSI fixes.
1 emarsden 1.72 ========================== C M U C L 19 a =============================
2 gerd 1.1
3     [--- WORK IN PROGRESS --- DO NOT DISTRIBUTE ---]
4    
5     The CMUCL project is pleased to announce the release of CMUCL 19a.
6     This is a major release which contains numerous enhancements and
7     bugfixes from the 18e release.
8    
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.
18    
19     New in this release:
20    
21     * Feature enhancements:
22 toy 1.50 - Stack overflow checking added for FreeBSD/x86, Linux/x86 and
23     Solaris. Code that makes the control stack overflow (for
24     example due to unbounded recursion) will lead to a
25     STORAGE-ERROR being signaled, instead of making CMUCL crash.
26 gerd 1.1 - LISP:FIND-CLASS and LISP:CLASS-OF now return CLOS classes. The
27 emarsden 1.21 symbols LISP:STANDARD-CLASS, LISP:BUILT-IN-CLASS, and
28 gerd 1.3 LISP:STRUCTURE-CLASS name CLOS classes. It is no longer
29 gerd 1.1 necessary to SHADOWING-IMPORT these from PCL when doing MOP
30     programming, and it fixes some non-compliances as well.
31 emarsden 1.29 - Package locks: a package whose EXT:PACKAGE-LOCK is enabled
32     non-NIL is protected against changes in its structure (list of
33     exported symbols, use-list etc). Symbols in a package whose
34     EXT:PACKAGE-DEFINITION-LOCK is enabled are protected against
35     redefinition.
36 gerd 1.2 - Weak hash tables have been added for x86 systems.
37 gerd 1.4 - Local functions are now named (FLET <name> ...) or
38     (LABELS <name> ...).
39 gerd 1.80 - Compiler checking control string and number of args to FORMAT,
40     ERROR and WARN.
41 gerd 1.27 - TRACE automatically using encapsulation when function-end
42     breakpoints cannot be used.
43 gerd 1.28 - INSPECT working on CLOS instances.
44 toy 1.50 - Callbacks from foreign code to Lisp. Implemented for x86 and
45     sparc.
46 gerd 1.31 - Functions like GETHASH that are used in the implementation of
47     TRACE can now be traced. See also
48     DEBUG:*TRACE-ENCAPSULATE-PACKAGE-NAMES*.
49 gerd 1.39 - New facility for encapsulating functions, FWRAPPERS;
50     see also the CMUCL User Manual.
51     - TRACE and PROFILE have been reimplemented using fwrappers,
52     with the effect of tracing and profiling now working more
53     nicely together.
54     - When a profiled function is redefined, it is re-profiled.
55 toy 1.50 - A basic implementation of simple-streams added. Some
56     functionality may be missing.
57 gerd 1.51 - UNIX:UNIX-LSEEK working with files > 2G on BSDs.
58 gerd 1.52 - Type declarations on local bindings of special variables no
59     longer being ignored.
60 gerd 1.61 - DISASSEMBLE disassembling closure/funcallable instance
61     functions.
62     - (SETF EXT:WEAK-POINTER-VALUE) has been added.
63 gerd 1.63 - CMUCL no longer entering an infinite loop when dumping
64     circular constant lists to fasl files.
65 gerd 1.68 - COMPILE-FILE-PATHNAME's BYTE-COMPILE keyword arg defaulting
66     to *BYTE-COMPILE-DEFAULT* like COMPILE-FILE.
67 toy 1.78 - Added VOPs for CHAR=, CHAR<, and CHAR> when the second arg is a
68     constant character.
69     - Added missing VOPs for Sparc for array refs with a constant
70     index.
71     - Lisp binary will also look at the PATH envvar to find out it's
72     own location which is used to find other needed files.
73 gerd 1.88 - Byte-compiled code being executed ca. 1/3 faster.
74 toy 1.103 - Heap overflow checking for x86 and solaris with gencgc. When
75     the heap is close to overflowing, a heap-overflow condition is
76     signaled. If an overflow happens again while debugging the
77     condition, the user is returned to top-level without warning.
78     Use lisp::*reserved-heap-pages* to set the number of pages to
79     reserve.
80 toy 1.106 - C functions are displayed in backtraces now for x86/linux and
81     sparc. Previously, it just said "Foreign function call land".
82     (From Helmut Eller.)
83 rtoy 1.109 - Source location recording is done better and handles macros
84     including things defined by defclass, defvar, and defgeneric.
85     From Helmut Eller.
86 rtoy 1.110 - Modular arithmetic implemented for x86 and sparc. So
87    
88     (ldb (byte 32 0) (+ x y))
89    
90     is a simple machine add instruction if x and y are
91     (unsigned-byte 32).
92 toy 1.103
93 gerd 1.1 * Numerous ANSI compliance fixes:
94 gerd 1.5 - Many bugs in CMUCL's type system detected by Paul Dietz'
95     ANSI test suite have been fixed.
96     - Non-keyword keyword names in lambda lists are now accepted.
97 gerd 1.6 - Condition slot initialization fixed for the case that two
98     or more slots have the same :INITARG.
99 gerd 1.7 - Initforms are now evaluated once only during condition slot
100     initialization.
101     - USE-VALUE, STORE-VALUE, CONTINUE behavior corrected in presence
102     of multiple restarts having the same name.
103     - RESTART-CASE's interaction with local macros fixed.
104     - Interaction of COMPUTE-RESTARTS and RESTART-CASE fixed in
105     presence of multiple restarts having the same name.
106 gerd 1.8 - Condition slot readers/writers are generic functions.
107 gerd 1.9 - &WHOLE, &REST, &BODY in macro lambda lists can be followed
108     by destructuring patterns. The previous behavior of &BODY
109     when followed by (<body> <declarations> <doc>) is available
110     through the new lambda-list keyword EXT:&PARSE-BODY.
111 gerd 1.10 - ELT now signals an error in safe code when used on lists
112     with an out-of-bounds index.
113     - Accessing arrays in compiled code with out-of-bounds indices
114     now signals a TYPE-ERROR.
115 gerd 1.11 - DECLARE no longer being a special operator.
116 gerd 1.16 - DEFINE-CONDITION accepts slot option :DOCUMENTATION.
117 gerd 1.18 - Behavior of (... &KEY &ALLOW-OTHER-KEYS) fixed for
118     DESTRUCTURING-BIND and macros.
119 gerd 1.19 - Stricter checking of keyword argument list in CLOS methods.
120 gerd 1.20 - &ENVIRONMENT variable bound bound before other vars, regardless
121     of where it appears in a lambda-list.
122 gerd 1.22 - VALUES types no longer accepting &KEY or &ALLOW-OTHER-KEYS.
123     - THE conforming to ANSI.
124 gerd 1.24 - SLOT-EXISTS-P can be used with conditions.
125 gerd 1.32 - REMOVE-METHOD always returning the generic function passed to it.
126     - Standard methods for STANDARD-OBJECT and STRUCTURE-OBJECT
127     defined on MAKE-LOAD-FORM.
128     - Compliant MAKE-LOAD-FORM-SAVING-SLOTS.
129 gerd 1.37 - DEFSTRUCT recording slot-names as specified by users.
130 gerd 1.40 - Generic function call keyword argument checking according to
131     ANSI 7.6.5.
132 gerd 1.45 - CALL-NEXT-METHOD without arguments being called with original
133     arguments when method parameters are changed with SETQ.
134     - When CALL-NEXT-METHOD is called with arguments, an error is
135     signaled in safe code when the set of methods applicable to
136     CALL-NEXT-METHOD's arguments is different from the set of
137     methods applicable to the original method arguments.
138 gerd 1.46 - FIND-METHOD signaling an error when called with specializers
139     not corresponding to the number of required arguments of the
140     supplied generic function.
141 gerd 1.48 - TYPE-OF returning KEYWORD for keywords, STANDARD-CHAR for
142     standard characters, BOOLEAN for T, (INTEGER <N> <N>) for
143     integers N, non-list types for functions, and CLOS classes for
144     instances whose class doesn't have a proper name.
145 gerd 1.49 - Class precedence list of NULL not having SYMBOL before LIST,
146     precedence list of STANDARD-METHOD not having METHOD before
147     STANDARD-OBJECT.
148 gerd 1.55 - ADD-METHOD returning its first argument, the generic function.
149 gerd 1.54 - DEFCLASS redefining a class with the given name only if the
150     name is the proper name of an existing class.
151 gerd 1.57 - KEYWORD package no longer having nickname "".
152 gerd 1.60 - COMMON-LISP-USER package no longer having nickname USER.
153     - COMMON-LISP package no longer having nickname LISP; LISP
154     and COMMON-LISP are now separate packages.
155 gerd 1.58 - SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, SLOT-MAKUNBOUND
156     returning values specified by the standard when SLOT-UNBOUND
157     or SLOT-MISSING are called and return.
158 gerd 1.65 - NTH and NTHCDR accepting bignums as first argument.
159 gerd 1.66 - First arg of CERROR may be a function.
160 gerd 1.67 - Lambda-lists of the form (X . Y) in DESTRUCTURING-BIND and macros
161     are now equivalent to (X &REST Y).
162 gerd 1.69 - LAST, BUTLAST, NBUTLAST accepting bignum counts.
163 gerd 1.71 - WITH-OUTPUT-TO-STRING accepting :ELEMENT-TYPE.
164 gerd 1.75 - FIXNUM no longer naming a function.
165 toy 1.78 - MAKE-STRING-OUTPUT-STREAM accepts :ELEMENT-TYPE.
166 gerd 1.89 - Numerous LOOP fixes.
167 gerd 1.92 - On FreeBSD, CLtS-required floating-point conditions are signaled.
168 toy 1.106 - The minimum rehash-threshold is 0.1, and is enforced silently.
169     This is to prevent overflows and divide-by-zero errors when
170     creating a hash-table with a too-small rehash-threshold.
171     - MACROLET now accepts declarations, as prescribed by ANSI CL.
172 toy 1.107 - MAKE-PATHNAME signals an error on invalid combinations
173     (:absolute or :wild-inferiors followed by :back or :up).
174 toy 1.108 - PEEK-CHAR skips whitespace based on the readtable instead of
175     using hard-wired values.
176     - PEEK-CHAR signals an end-of-file error if necessary when
177     RECURSIVE-P is true.
178 rtoy 1.110 - FILE-LENGTH now signals a TYPE-ERROR when the stream is not a
179     stream associated with a file.
180 rtoy 1.111 - Floats are now printed and read accurately, preserving
181     read/print consistency. (Was sometimes off by a bit in the
182     least significant bit.)
183     - Printing of rationals should generate correct results now for
184     all cases of *print-base* and *print-radix*.
185     - Symbol printer should print better with unusual settings of
186     *print-case* and friends.
187 rtoy 1.112 - Stream element-type can go up to 1024 bits.
188 toy 1.108
189 gerd 1.1 * Numerous bugfixes:
190 gerd 1.12 - NSET-EXCLUSIVE-OR returns the same results as SET-EXCLUSIVE-OR
191     wrt to duplicate elements.
192 gerd 1.11 - Forms like (MULTIPLE-VALUE-BIND 'LIST) no longer trapping
193     an internal compiler error when compiled.
194 gerd 1.16 - PARSE-INTEGER signaling PARSE-ERROR.
195     - Compiler eliminating some type checks in safe code.
196 gerd 1.41 - Byte-compiler and -interpreter not handling C:&MORE.
197     - Some TYPE-ERRORs being signaled with unbound slots, which
198     made them undisplayable.
199 gerd 1.62 - Structure predicates no longer signaling an error when applied
200     to obsolete instances.
201 gerd 1.64 - A DEFTRANSFORM for array bounds checking had an off-by-1 error.
202 toy 1.78 - Compiler was not properly deriving the type of FTRUNCATE in all
203     cases.
204     - Fixed error wherein certain uses of 2 arg ATAN caused a
205     compiler error on x86.
206 gerd 1.84 - Compiler wrongly signaling a type error in VOLATILE-INFO-LOOKUP or
207     COMPACT-INFO-LOOKUP for hash values equal to MOST-POSITIVE-FIXNUM.
208 gerd 1.85 - FFLOOR and FCEILING return types sometimes being inferred as
209     being the nil type.
210 gerd 1.90 - PARSE-TIME accepting GMT offsets with a leading plus sign.
211 gerd 1.91 - UNIX-MMAP not accepting a null fd, preventing anonymous
212     mappings.
213     - SIGPROF having the wrong value on GNU/Linux.
214 gerd 1.93 - Wrong byte-code being generated for (APPLY #'+ <X> <Y>) and
215     similar cases.
216 gerd 1.95 - GCD sometimes returning a negative value.
217 gerd 1.96 - LCM sometimes returning a negative value, or signaling division-by-zero.
218 toy 1.106 - FLOAT sometimes returning a float of the wrong type.
219 toy 1.101 - ROOM should handle the large heaps now without overflowing
220     internal counters or signaling type errors. Columns should
221     line up better too.
222 toy 1.104 - READ-SEQUENCE was returning too soon when reading from files
223     into simple-strings even though there were data available.
224 toy 1.108 - READ-SEQUENCE was returning the wrong value when reading into
225     simple-strings and when the :START value was not zero.
226 gerd 1.1
227     * Other changes:
228 emarsden 1.72 - CREATE-REQUEST-SERVER has an additional :reuse-address keyword
229     argument.
230 emarsden 1.21 - Removed obsolete alias from MAKE-VECTOR to MAKE-ARRAY
231 emarsden 1.44 - the signature of *COMPILER-NOTIFICATION-FUNCTION* has changed;
232     it now has an extra argument that describes the nature of the
233     error or warning.
234 toy 1.78 - File versioning occurs when the version component is :NEWEST,
235 toy 1.56 and Emacs style file versions are created: foo.bar.~N~, where
236     the larger N is newer. foo.bar is the newest version.
237     - Converting namestrings to pathnames now get a version component
238     of NIL instead of :NEWEST.
239 toy 1.78 - *DEFAULT-PATHNAME-DEFAULTS* has a version component of
240     :UNSPECIFIC instead of :NEWEST so versioning is disabled by
241 toy 1.56 default to preserve current behavior. Set the version to
242 toy 1.78 :NEWEST to create versions.
243 gerd 1.73 - LDB backtrace on x86.
244 gerd 1.82 - DYNAMIC-EXTENT support on x86 and sparc. Stack-allocation can
245     be controlled by the setting of
246     EXT:*TRUST-DYNAMIC-EXTENT-DECLARATIONS*. See also the CMU User
247     Manual. Be warned that all bets are off if a stack-allocated
248     object or parts of it escape; CMUCL might crash or format your
249     hard disk.
250     - Generational GC (gencgc) available for Sparc/Solaris on an
251 toy 1.81 experimental basis. Despite the name and feature, it is not
252     conservative.
253 toy 1.94 - Search in /usr/lib/cmucl for the lisp core file as well, to
254     support x86/Linux
255 toy 1.99 - The trap for floating-point underflow is turned off by default
256     for all platforms now.
257 toy 1.107 - A continuable error is signaled when defining a logical
258     pathname host that has the same name as a search-list host.
259 rtoy 1.109 - A better sxhash function for string is implemented on sparc.
260     This is based on the one-at-a-time hash from
261     http://burtleburtle.net/bob/hash/doobs.html.
262    
263 gerd 1.1 * Numerous improvements to the PCL implementation of CLOS:
264     - Gerd's PCL has been added, which fixes numerous bugs and ANSI/
265     AMOP non-compliances, and adds various new optimizations (also
266     see the CMU User Manual).
267 gerd 1.2 - PCL's class hierarchy has been changed to conform to AMOP, for
268     instance, GENERIC-FUNCTION is now a subclass of
269     STANDARD-OBJECT.
270 gerd 1.4 - ENSURE-CLASS-USING-CLASS's argument list has been changed
271     to conform to AMOP.
272 gerd 1.5 - COMPUTE-EFFECTIVE-SLOT-DEFINITION now takes a slot name as
273     argument, for AMOP compliance.
274 gerd 1.9 - SUBTYPEP works in presence of forward-referenced classes.
275 gerd 1.13 - Accessing slots of specialized parameters in (SETF
276     SLOT-VALUE-USING-CLASS) methods works.
277 gerd 1.14 - DIRECT-SLOT-DEFINITION-CLASS and EFFECTIVE-SLOT-DEFINITION-CLASS
278     AMOP compliant.
279 gerd 1.15 - ALLOCATE-INSTANCE working with structures defined with DEFSTRUCT.
280 gerd 1.23 - With (DEFGENERIC FOO (&REST X &KEY)) (DEFMETHOD FOO (&REST X) X),
281     (FOO 1) now signals an error.
282 gerd 1.33 - Methods with &OPTIONAL arguments detecting too many args.
283 gerd 1.35 - DEFMETHOD and DEFGENERIC detecting doubled lambda variables.
284 gerd 1.34 - DEFGENERIC :ARGUMENT-PRECEDENCE-ORDER option checking.
285     - SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP working with conditions.
286 gerd 1.36 - (SETF SLOT-VALUE) working on read-only structure slots like
287     in other implementations.
288 gerd 1.38 - The declaration identifiers SLOTS, AUTO-COMPILE,
289     NOT-AUTO-COMPILE have been moved from PCL to EXT.
290 gerd 1.42 - Support for inlineing methods in effective methods; see the
291     CMU User Manual.
292 gerd 1.47 - Wrong results could be returned from generic functions when
293     all methods returned constant values, and some methods were
294     qualified, or the generic function didn't use the standard
295     method combination.
296 gerd 1.59 - For standard method combination and method combinations defined
297     with the short form of DEFINE-METHOD-COMBINATION: If there are
298     no applicable primary methods when a generic function is
299     called, the generic function PCL:NO-PRIMARY-METHOD is called.
300     The default method of this generic function signals a
301     continuable error of type PCL:NO-PRIMARY-METHOD-ERROR.
302 gerd 1.74 - Effective methods are no longer precomputed at method load
303 gerd 1.82 time, if the generic function has more than
304     PCL:*MAX-EMF-PRECOMPUTATION-METHODS* methods (default 100).
305     - The loading of methods with invalid qualifiers no longer
306     signals an error, for standard's conformance. Instead, a
307     warning is printed at method load time. An error is
308     signaled if the generic function is called with arguments such
309     that the method is used.
310 gerd 1.83 - Redefining a generic function with a different method
311     combination now recomputes effective methods.
312 gerd 1.105 - Slot access and gf-call optimizations are no longer performed
313     for method parameters being assigned to in a method body, because
314     we can't tell what type of object the method parameter actually
315     contains.
316 gerd 1.1
317     * Improvements to Hemlock, the Emacs-like editor:
318    
319     * Changes to rebuilding procedure:
320 toy 1.100 - When rebuilding CMUCL, *features* do not need to be set by
321     hand. As files are loaded, the appropriate *features* are set
322     so that the resulting build has the same set of *features*.
323     There should also be fewer warnings about internals.h changing,
324     since that now just contains things in sys:*runtime-features*.
325     Use sys:register-lisp-feature and
326     sys:register-lisp-runtime-feature to set *features* and
327     sys:*runtime-features*, respectively.
328 toy 1.102 - Pierre Mai's build-tools have been incorporated. The scripts
329     are in the src/tools directory. These are slightly modified
330     versions of his scripts. Should make building CMUCL easier.
331 rtoy 1.109
332 gerd 1.1 * Deprecated features:
333 gerd 1.39 - EXT:ENCAPSULATE and associated functions; use fwrappers instead.
334 toy 1.106 - The sparc port with the Cheney stop-and-copy garbage collector
335     will no longer be supported after this release. The supported
336     GC will be gencgc.
337 rtoy 1.109 - The sparc port will only be supported on Ultrasparc machines
338     (Sparc V9).
339 gerd 1.1
340     This release is not binary compatible with code compiled using CMUCL
341     18e; you will need to recompile FASL files.
342    
343     See <URL:http://www.cons.org/cmucl/> for download information,
344     guidelines on reporting bugs, and mailing list details.
345    
346    
347     We hope you enjoy using this release of CMUCL!
348    

  ViewVC Help
Powered by ViewVC 1.1.5