/[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.103 - (hide annotations)
Fri Oct 24 13:39:14 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.102: +7 -1 lines
File MIME type: text/plain
Note heap overflow checking.
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    
81 gerd 1.1 * Numerous ANSI compliance fixes:
82 gerd 1.5 - Many bugs in CMUCL's type system detected by Paul Dietz'
83     ANSI test suite have been fixed.
84     - Non-keyword keyword names in lambda lists are now accepted.
85 gerd 1.6 - Condition slot initialization fixed for the case that two
86     or more slots have the same :INITARG.
87 gerd 1.7 - Initforms are now evaluated once only during condition slot
88     initialization.
89     - USE-VALUE, STORE-VALUE, CONTINUE behavior corrected in presence
90     of multiple restarts having the same name.
91     - RESTART-CASE's interaction with local macros fixed.
92     - Interaction of COMPUTE-RESTARTS and RESTART-CASE fixed in
93     presence of multiple restarts having the same name.
94 gerd 1.8 - Condition slot readers/writers are generic functions.
95 gerd 1.9 - &WHOLE, &REST, &BODY in macro lambda lists can be followed
96     by destructuring patterns. The previous behavior of &BODY
97     when followed by (<body> <declarations> <doc>) is available
98     through the new lambda-list keyword EXT:&PARSE-BODY.
99 gerd 1.10 - ELT now signals an error in safe code when used on lists
100     with an out-of-bounds index.
101     - Accessing arrays in compiled code with out-of-bounds indices
102     now signals a TYPE-ERROR.
103 gerd 1.11 - DECLARE no longer being a special operator.
104 gerd 1.16 - DEFINE-CONDITION accepts slot option :DOCUMENTATION.
105 gerd 1.18 - Behavior of (... &KEY &ALLOW-OTHER-KEYS) fixed for
106     DESTRUCTURING-BIND and macros.
107 gerd 1.19 - Stricter checking of keyword argument list in CLOS methods.
108 gerd 1.20 - &ENVIRONMENT variable bound bound before other vars, regardless
109     of where it appears in a lambda-list.
110 gerd 1.22 - VALUES types no longer accepting &KEY or &ALLOW-OTHER-KEYS.
111     - THE conforming to ANSI.
112 gerd 1.24 - SLOT-EXISTS-P can be used with conditions.
113 gerd 1.32 - REMOVE-METHOD always returning the generic function passed to it.
114     - Standard methods for STANDARD-OBJECT and STRUCTURE-OBJECT
115     defined on MAKE-LOAD-FORM.
116     - Compliant MAKE-LOAD-FORM-SAVING-SLOTS.
117 gerd 1.37 - DEFSTRUCT recording slot-names as specified by users.
118 gerd 1.40 - Generic function call keyword argument checking according to
119     ANSI 7.6.5.
120 gerd 1.45 - CALL-NEXT-METHOD without arguments being called with original
121     arguments when method parameters are changed with SETQ.
122     - When CALL-NEXT-METHOD is called with arguments, an error is
123     signaled in safe code when the set of methods applicable to
124     CALL-NEXT-METHOD's arguments is different from the set of
125     methods applicable to the original method arguments.
126 gerd 1.46 - FIND-METHOD signaling an error when called with specializers
127     not corresponding to the number of required arguments of the
128     supplied generic function.
129 gerd 1.48 - TYPE-OF returning KEYWORD for keywords, STANDARD-CHAR for
130     standard characters, BOOLEAN for T, (INTEGER <N> <N>) for
131     integers N, non-list types for functions, and CLOS classes for
132     instances whose class doesn't have a proper name.
133 gerd 1.49 - Class precedence list of NULL not having SYMBOL before LIST,
134     precedence list of STANDARD-METHOD not having METHOD before
135     STANDARD-OBJECT.
136 gerd 1.55 - ADD-METHOD returning its first argument, the generic function.
137 gerd 1.54 - DEFCLASS redefining a class with the given name only if the
138     name is the proper name of an existing class.
139 gerd 1.57 - KEYWORD package no longer having nickname "".
140 gerd 1.60 - COMMON-LISP-USER package no longer having nickname USER.
141     - COMMON-LISP package no longer having nickname LISP; LISP
142     and COMMON-LISP are now separate packages.
143 gerd 1.58 - SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, SLOT-MAKUNBOUND
144     returning values specified by the standard when SLOT-UNBOUND
145     or SLOT-MISSING are called and return.
146 gerd 1.65 - NTH and NTHCDR accepting bignums as first argument.
147 gerd 1.66 - First arg of CERROR may be a function.
148 gerd 1.67 - Lambda-lists of the form (X . Y) in DESTRUCTURING-BIND and macros
149     are now equivalent to (X &REST Y).
150 gerd 1.69 - LAST, BUTLAST, NBUTLAST accepting bignum counts.
151 gerd 1.71 - WITH-OUTPUT-TO-STRING accepting :ELEMENT-TYPE.
152 gerd 1.75 - FIXNUM no longer naming a function.
153 toy 1.78 - MAKE-STRING-OUTPUT-STREAM accepts :ELEMENT-TYPE.
154 gerd 1.89 - Numerous LOOP fixes.
155 gerd 1.92 - On FreeBSD, CLtS-required floating-point conditions are signaled.
156 gerd 1.98 - PARSE-INTEGER skipping over whitespace after a number.
157 gerd 1.1
158     * Numerous bugfixes:
159 gerd 1.12 - NSET-EXCLUSIVE-OR returns the same results as SET-EXCLUSIVE-OR
160     wrt to duplicate elements.
161 gerd 1.11 - Forms like (MULTIPLE-VALUE-BIND 'LIST) no longer trapping
162     an internal compiler error when compiled.
163 gerd 1.16 - PARSE-INTEGER signaling PARSE-ERROR.
164     - Compiler eliminating some type checks in safe code.
165 gerd 1.41 - Byte-compiler and -interpreter not handling C:&MORE.
166     - Some TYPE-ERRORs being signaled with unbound slots, which
167     made them undisplayable.
168 gerd 1.62 - Structure predicates no longer signaling an error when applied
169     to obsolete instances.
170 gerd 1.64 - A DEFTRANSFORM for array bounds checking had an off-by-1 error.
171 toy 1.78 - Compiler was not properly deriving the type of FTRUNCATE in all
172     cases.
173     - Fixed error wherein certain uses of 2 arg ATAN caused a
174     compiler error on x86.
175 gerd 1.84 - Compiler wrongly signaling a type error in VOLATILE-INFO-LOOKUP or
176     COMPACT-INFO-LOOKUP for hash values equal to MOST-POSITIVE-FIXNUM.
177 gerd 1.85 - FFLOOR and FCEILING return types sometimes being inferred as
178     being the nil type.
179 gerd 1.90 - PARSE-TIME accepting GMT offsets with a leading plus sign.
180 gerd 1.91 - UNIX-MMAP not accepting a null fd, preventing anonymous
181     mappings.
182     - SIGPROF having the wrong value on GNU/Linux.
183 gerd 1.93 - Wrong byte-code being generated for (APPLY #'+ <X> <Y>) and
184     similar cases.
185 gerd 1.95 - GCD sometimes returning a negative value.
186 gerd 1.96 - LCM sometimes returning a negative value, or signaling division-by-zero.
187 gerd 1.97 - FLOAT in sometimes returning a float of the wrong type.
188 toy 1.101 - ROOM should handle the large heaps now without overflowing
189     internal counters or signaling type errors. Columns should
190     line up better too.
191 gerd 1.1
192     * Other changes:
193 emarsden 1.72 - CREATE-REQUEST-SERVER has an additional :reuse-address keyword
194     argument.
195 emarsden 1.21 - Removed obsolete alias from MAKE-VECTOR to MAKE-ARRAY
196 emarsden 1.44 - the signature of *COMPILER-NOTIFICATION-FUNCTION* has changed;
197     it now has an extra argument that describes the nature of the
198     error or warning.
199 toy 1.78 - File versioning occurs when the version component is :NEWEST,
200 toy 1.56 and Emacs style file versions are created: foo.bar.~N~, where
201     the larger N is newer. foo.bar is the newest version.
202     - Converting namestrings to pathnames now get a version component
203     of NIL instead of :NEWEST.
204 toy 1.78 - *DEFAULT-PATHNAME-DEFAULTS* has a version component of
205     :UNSPECIFIC instead of :NEWEST so versioning is disabled by
206 toy 1.56 default to preserve current behavior. Set the version to
207 toy 1.78 :NEWEST to create versions.
208 gerd 1.73 - LDB backtrace on x86.
209 gerd 1.82 - DYNAMIC-EXTENT support on x86 and sparc. Stack-allocation can
210     be controlled by the setting of
211     EXT:*TRUST-DYNAMIC-EXTENT-DECLARATIONS*. See also the CMU User
212     Manual. Be warned that all bets are off if a stack-allocated
213     object or parts of it escape; CMUCL might crash or format your
214     hard disk.
215     - Generational GC (gencgc) available for Sparc/Solaris on an
216 toy 1.81 experimental basis. Despite the name and feature, it is not
217     conservative.
218 toy 1.94 - Search in /usr/lib/cmucl for the lisp core file as well, to
219     support x86/Linux
220 toy 1.99 - The trap for floating-point underflow is turned off by default
221     for all platforms now.
222 gerd 1.1
223     * Numerous improvements to the PCL implementation of CLOS:
224     - Gerd's PCL has been added, which fixes numerous bugs and ANSI/
225     AMOP non-compliances, and adds various new optimizations (also
226     see the CMU User Manual).
227 gerd 1.2 - PCL's class hierarchy has been changed to conform to AMOP, for
228     instance, GENERIC-FUNCTION is now a subclass of
229     STANDARD-OBJECT.
230 gerd 1.4 - ENSURE-CLASS-USING-CLASS's argument list has been changed
231     to conform to AMOP.
232 gerd 1.5 - COMPUTE-EFFECTIVE-SLOT-DEFINITION now takes a slot name as
233     argument, for AMOP compliance.
234 gerd 1.9 - SUBTYPEP works in presence of forward-referenced classes.
235 gerd 1.13 - Accessing slots of specialized parameters in (SETF
236     SLOT-VALUE-USING-CLASS) methods works.
237 gerd 1.14 - DIRECT-SLOT-DEFINITION-CLASS and EFFECTIVE-SLOT-DEFINITION-CLASS
238     AMOP compliant.
239 gerd 1.15 - ALLOCATE-INSTANCE working with structures defined with DEFSTRUCT.
240 gerd 1.23 - With (DEFGENERIC FOO (&REST X &KEY)) (DEFMETHOD FOO (&REST X) X),
241     (FOO 1) now signals an error.
242 gerd 1.33 - Methods with &OPTIONAL arguments detecting too many args.
243 gerd 1.35 - DEFMETHOD and DEFGENERIC detecting doubled lambda variables.
244 gerd 1.34 - DEFGENERIC :ARGUMENT-PRECEDENCE-ORDER option checking.
245     - SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP working with conditions.
246 gerd 1.36 - (SETF SLOT-VALUE) working on read-only structure slots like
247     in other implementations.
248 gerd 1.38 - The declaration identifiers SLOTS, AUTO-COMPILE,
249     NOT-AUTO-COMPILE have been moved from PCL to EXT.
250 gerd 1.42 - Support for inlineing methods in effective methods; see the
251     CMU User Manual.
252 gerd 1.47 - Wrong results could be returned from generic functions when
253     all methods returned constant values, and some methods were
254     qualified, or the generic function didn't use the standard
255     method combination.
256 gerd 1.59 - For standard method combination and method combinations defined
257     with the short form of DEFINE-METHOD-COMBINATION: If there are
258     no applicable primary methods when a generic function is
259     called, the generic function PCL:NO-PRIMARY-METHOD is called.
260     The default method of this generic function signals a
261     continuable error of type PCL:NO-PRIMARY-METHOD-ERROR.
262 gerd 1.74 - Effective methods are no longer precomputed at method load
263 gerd 1.82 time, if the generic function has more than
264     PCL:*MAX-EMF-PRECOMPUTATION-METHODS* methods (default 100).
265     - The loading of methods with invalid qualifiers no longer
266     signals an error, for standard's conformance. Instead, a
267     warning is printed at method load time. An error is
268     signaled if the generic function is called with arguments such
269     that the method is used.
270 gerd 1.83 - Redefining a generic function with a different method
271     combination now recomputes effective methods.
272 gerd 1.1
273     * Improvements to Hemlock, the Emacs-like editor:
274    
275     * Changes to rebuilding procedure:
276 toy 1.100 - When rebuilding CMUCL, *features* do not need to be set by
277     hand. As files are loaded, the appropriate *features* are set
278     so that the resulting build has the same set of *features*.
279     There should also be fewer warnings about internals.h changing,
280     since that now just contains things in sys:*runtime-features*.
281     Use sys:register-lisp-feature and
282     sys:register-lisp-runtime-feature to set *features* and
283     sys:*runtime-features*, respectively.
284 toy 1.102 - Pierre Mai's build-tools have been incorporated. The scripts
285     are in the src/tools directory. These are slightly modified
286     versions of his scripts. Should make building CMUCL easier.
287 gerd 1.1 * Deprecated features:
288 gerd 1.39 - EXT:ENCAPSULATE and associated functions; use fwrappers instead.
289 gerd 1.1
290     This release is not binary compatible with code compiled using CMUCL
291     18e; you will need to recompile FASL files.
292    
293     See <URL:http://www.cons.org/cmucl/> for download information,
294     guidelines on reporting bugs, and mailing list details.
295    
296    
297     We hope you enjoy using this release of CMUCL!
298    

  ViewVC Help
Powered by ViewVC 1.1.5