/[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.79.2.1 - (show annotations)
Wed Aug 13 13:25:24 2003 UTC (10 years, 8 months ago) by gerd
Branch: dynamic-extent
Changes since 1.79: +6 -6 lines
File MIME type: text/plain
	* src/docs/cmu-user/extensions.tex (Dynamic-Extent Declarations):
	New section.

	* src/compiler/sparc/macros.lisp (allocation): Don't
	call trust-dynamic-extent-declaration-p.

	* src/compiler/generic/vm-ir2tran.lisp (do-fixed-alloc): Call
	vop fixed-alloc with dynamic-extent arg.

	* src/compiler/alpha/alloc.lisp (list-or-list*,
	fixed-alloc): Add arg dynamic-extent.
	(pop-stack): New vop.
	* src/compiler/hppa/alloc.lisp: Likewise.
	* src/compiler/mips/alloc.lisp: Likewise.
	* src/compiler/ppc/alloc.lisp: Likewise.
	* src/compiler/sparc/alloc.lisp: Likewise.
	* src/compiler/x86/alloc.lisp: Likewise.

	* src/compiler/node.lisp (continuation): Add dynamic-extent slot.
	(cleanup): Add :dynamic-extent to type of slot named kind.

	* src/compiler/ir2tran.lisp (*closure-allocation*)
	(*closure-allocation-stack*): New variables.
	(ir2-stack-allocate): New function.
	(ir2-convert-closure): Use ir2-stack-allocate, add to
	(%dynamic-extent, %dynamic-extent-end): New optimizers.
	(list, list*): Use ir2-stack-allocate, call vop with
	dynamic-extent arg.
	(ir2-convert): Clear *closure-allocation-stack*.

	* src/compiler/ir1tran.lisp (allocation-size)
	(dynamic-extent-allocation, dynamic-extent-closure-args): New
	functions.
	(with-dynamic-extent): New macro.
	(ir1-convert-combination): Use dynamic-extent-closure-args and
	with-dynamic-extent.
	(ir1-convert-combination-args): Add optional arg
	dynamic-extent-args.  Set continuation-dynamic-extent for
	argument continuations if appropriate.
	(*suppress-values-declaration*): Rewritten.
	(ir1-convert-dynamic-extent-bindings): New function.
	(ir1-convert-special-bindings): Use it.
	(function): Factor out some code.
	(let): Use dynamic-extent-allocation and with-dynamic-extent.
	(let*): Call ir1-convert-dynamic-extent-bindings.
	(trust-dynamic-extent-declaration-p): Take lexenv arg.

	* src/compiler/globaldb.lisp (trust-dynamic-extent-declaration-p):
	Move to ir1tran.lisp.

	* src/compiler/fndb.lisp (%dynamic-extent)
	(%dynamic-extent-end): Add defknowns.

	* src/compiler/envanal.lisp (emit-cleanups): Produce
	%dynamic-extent-end for :dynamic-extent cleanups.

	* src/compiler/byte-comp.lisp (compute-produces-and-consumes):
	Ignore :dynamic-extent cleanups.

	* src/code/exports.lisp ("C"): Export pop-stack,
	ir2-stack-allocate, allocation-size.
1 ========================== C M U C L 19 a =============================
2
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 - 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 - LISP:FIND-CLASS and LISP:CLASS-OF now return CLOS classes. The
27 symbols LISP:STANDARD-CLASS, LISP:BUILT-IN-CLASS, and
28 LISP:STRUCTURE-CLASS name CLOS classes. It is no longer
29 necessary to SHADOWING-IMPORT these from PCL when doing MOP
30 programming, and it fixes some non-compliances as well.
31 - 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 - Weak hash tables have been added for x86 systems.
37 - Local functions are now named (FLET <name> ...) or
38 (LABELS <name> ...).
39 - Compiler checking control string and number of args to FORMAT.
40 - TRACE automatically using encapsulation when function-end
41 breakpoints cannot be used.
42 - INSPECT working on CLOS instances.
43 - Callbacks from foreign code to Lisp. Implemented for x86 and
44 sparc.
45 - Functions like GETHASH that are used in the implementation of
46 TRACE can now be traced. See also
47 DEBUG:*TRACE-ENCAPSULATE-PACKAGE-NAMES*.
48 - New facility for encapsulating functions, FWRAPPERS;
49 see also the CMUCL User Manual.
50 - TRACE and PROFILE have been reimplemented using fwrappers,
51 with the effect of tracing and profiling now working more
52 nicely together.
53 - When a profiled function is redefined, it is re-profiled.
54 - A basic implementation of simple-streams added. Some
55 functionality may be missing.
56 - UNIX:UNIX-LSEEK working with files > 2G on BSDs.
57 - Type declarations on local bindings of special variables no
58 longer being ignored.
59 - DISASSEMBLE disassembling closure/funcallable instance
60 functions.
61 - (SETF EXT:WEAK-POINTER-VALUE) has been added.
62 - CMUCL no longer entering an infinite loop when dumping
63 circular constant lists to fasl files.
64 - COMPILE-FILE-PATHNAME's BYTE-COMPILE keyword arg defaulting
65 to *BYTE-COMPILE-DEFAULT* like COMPILE-FILE.
66 - Added VOPs for CHAR=, CHAR<, and CHAR> when the second arg is a
67 constant character.
68 - Added missing VOPs for Sparc for array refs with a constant
69 index.
70 - Lisp binary will also look at the PATH envvar to find out it's
71 own location which is used to find other needed files.
72
73 * Numerous ANSI compliance fixes:
74 - Many bugs in CMUCL's type system detected by Paul Dietz'
75 ANSI test suite have been fixed.
76 - Non-keyword keyword names in lambda lists are now accepted.
77 - Condition slot initialization fixed for the case that two
78 or more slots have the same :INITARG.
79 - Initforms are now evaluated once only during condition slot
80 initialization.
81 - USE-VALUE, STORE-VALUE, CONTINUE behavior corrected in presence
82 of multiple restarts having the same name.
83 - RESTART-CASE's interaction with local macros fixed.
84 - Interaction of COMPUTE-RESTARTS and RESTART-CASE fixed in
85 presence of multiple restarts having the same name.
86 - Condition slot readers/writers are generic functions.
87 - &WHOLE, &REST, &BODY in macro lambda lists can be followed
88 by destructuring patterns. The previous behavior of &BODY
89 when followed by (<body> <declarations> <doc>) is available
90 through the new lambda-list keyword EXT:&PARSE-BODY.
91 - ELT now signals an error in safe code when used on lists
92 with an out-of-bounds index.
93 - Accessing arrays in compiled code with out-of-bounds indices
94 now signals a TYPE-ERROR.
95 - DECLARE no longer being a special operator.
96 - DEFINE-CONDITION accepts slot option :DOCUMENTATION.
97 - Behavior of (... &KEY &ALLOW-OTHER-KEYS) fixed for
98 DESTRUCTURING-BIND and macros.
99 - Stricter checking of keyword argument list in CLOS methods.
100 - &ENVIRONMENT variable bound bound before other vars, regardless
101 of where it appears in a lambda-list.
102 - VALUES types no longer accepting &KEY or &ALLOW-OTHER-KEYS.
103 - THE conforming to ANSI.
104 - SLOT-EXISTS-P can be used with conditions.
105 - REMOVE-METHOD always returning the generic function passed to it.
106 - Standard methods for STANDARD-OBJECT and STRUCTURE-OBJECT
107 defined on MAKE-LOAD-FORM.
108 - Compliant MAKE-LOAD-FORM-SAVING-SLOTS.
109 - DEFSTRUCT recording slot-names as specified by users.
110 - Generic function call keyword argument checking according to
111 ANSI 7.6.5.
112 - CALL-NEXT-METHOD without arguments being called with original
113 arguments when method parameters are changed with SETQ.
114 - When CALL-NEXT-METHOD is called with arguments, an error is
115 signaled in safe code when the set of methods applicable to
116 CALL-NEXT-METHOD's arguments is different from the set of
117 methods applicable to the original method arguments.
118 - FIND-METHOD signaling an error when called with specializers
119 not corresponding to the number of required arguments of the
120 supplied generic function.
121 - TYPE-OF returning KEYWORD for keywords, STANDARD-CHAR for
122 standard characters, BOOLEAN for T, (INTEGER <N> <N>) for
123 integers N, non-list types for functions, and CLOS classes for
124 instances whose class doesn't have a proper name.
125 - Class precedence list of NULL not having SYMBOL before LIST,
126 precedence list of STANDARD-METHOD not having METHOD before
127 STANDARD-OBJECT.
128 - ADD-METHOD returning its first argument, the generic function.
129 - DEFCLASS redefining a class with the given name only if the
130 name is the proper name of an existing class.
131 - KEYWORD package no longer having nickname "".
132 - COMMON-LISP-USER package no longer having nickname USER.
133 - COMMON-LISP package no longer having nickname LISP; LISP
134 and COMMON-LISP are now separate packages.
135 - SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, SLOT-MAKUNBOUND
136 returning values specified by the standard when SLOT-UNBOUND
137 or SLOT-MISSING are called and return.
138 - NTH and NTHCDR accepting bignums as first argument.
139 - First arg of CERROR may be a function.
140 - Lambda-lists of the form (X . Y) in DESTRUCTURING-BIND and macros
141 are now equivalent to (X &REST Y).
142 - LAST, BUTLAST, NBUTLAST accepting bignum counts.
143 - WITH-OUTPUT-TO-STRING accepting :ELEMENT-TYPE.
144 - FIXNUM no longer naming a function.
145 - MAKE-STRING-OUTPUT-STREAM accepts :ELEMENT-TYPE.
146
147 * Numerous bugfixes:
148 - NSET-EXCLUSIVE-OR returns the same results as SET-EXCLUSIVE-OR
149 wrt to duplicate elements.
150 - Forms like (MULTIPLE-VALUE-BIND 'LIST) no longer trapping
151 an internal compiler error when compiled.
152 - PARSE-INTEGER signaling PARSE-ERROR.
153 - Compiler eliminating some type checks in safe code.
154 - Byte-compiler and -interpreter not handling C:&MORE.
155 - Some TYPE-ERRORs being signaled with unbound slots, which
156 made them undisplayable.
157 - Structure predicates no longer signaling an error when applied
158 to obsolete instances.
159 - A DEFTRANSFORM for array bounds checking had an off-by-1 error.
160 - Compiler was not properly deriving the type of FTRUNCATE in all
161 cases.
162 - Fixed error wherein certain uses of 2 arg ATAN caused a
163 compiler error on x86.
164
165 * Other changes:
166 - CREATE-REQUEST-SERVER has an additional :reuse-address keyword
167 argument.
168 - Removed obsolete alias from MAKE-VECTOR to MAKE-ARRAY
169 - the signature of *COMPILER-NOTIFICATION-FUNCTION* has changed;
170 it now has an extra argument that describes the nature of the
171 error or warning.
172 - File versioning occurs when the version component is :NEWEST,
173 and Emacs style file versions are created: foo.bar.~N~, where
174 the larger N is newer. foo.bar is the newest version.
175 - Converting namestrings to pathnames now get a version component
176 of NIL instead of :NEWEST.
177 - *DEFAULT-PATHNAME-DEFAULTS* has a version component of
178 :UNSPECIFIC instead of :NEWEST so versioning is disabled by
179 default to preserve current behavior. Set the version to
180 :NEWEST to create versions.
181 - LDB backtrace on x86.
182 - DYNAMIC-EXTENT support on x86 and sparc. Stack-allocation can
183 be controlled by the setting of
184 EXT:*TRUST-DYNAMIC-EXTENT-DECLARATIONS*. See also the CMU User
185 Manual. Be warned that all bets are off if a stack-allocated
186 object or parts of it escape; CMUCL might crash or format your
187 hard disk.
188
189 * Numerous improvements to the PCL implementation of CLOS:
190 - Gerd's PCL has been added, which fixes numerous bugs and ANSI/
191 AMOP non-compliances, and adds various new optimizations (also
192 see the CMU User Manual).
193 - PCL's class hierarchy has been changed to conform to AMOP, for
194 instance, GENERIC-FUNCTION is now a subclass of
195 STANDARD-OBJECT.
196 - ENSURE-CLASS-USING-CLASS's argument list has been changed
197 to conform to AMOP.
198 - COMPUTE-EFFECTIVE-SLOT-DEFINITION now takes a slot name as
199 argument, for AMOP compliance.
200 - SUBTYPEP works in presence of forward-referenced classes.
201 - Accessing slots of specialized parameters in (SETF
202 SLOT-VALUE-USING-CLASS) methods works.
203 - DIRECT-SLOT-DEFINITION-CLASS and EFFECTIVE-SLOT-DEFINITION-CLASS
204 AMOP compliant.
205 - ALLOCATE-INSTANCE working with structures defined with DEFSTRUCT.
206 - With (DEFGENERIC FOO (&REST X &KEY)) (DEFMETHOD FOO (&REST X) X),
207 (FOO 1) now signals an error.
208 - Methods with &OPTIONAL arguments detecting too many args.
209 - DEFMETHOD and DEFGENERIC detecting doubled lambda variables.
210 - DEFGENERIC :ARGUMENT-PRECEDENCE-ORDER option checking.
211 - SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP working with conditions.
212 - (SETF SLOT-VALUE) working on read-only structure slots like
213 in other implementations.
214 - The declaration identifiers SLOTS, AUTO-COMPILE,
215 NOT-AUTO-COMPILE have been moved from PCL to EXT.
216 - Support for inlineing methods in effective methods; see the
217 CMU User Manual.
218 - Wrong results could be returned from generic functions when
219 all methods returned constant values, and some methods were
220 qualified, or the generic function didn't use the standard
221 method combination.
222 - For standard method combination and method combinations defined
223 with the short form of DEFINE-METHOD-COMBINATION: If there are
224 no applicable primary methods when a generic function is
225 called, the generic function PCL:NO-PRIMARY-METHOD is called.
226 The default method of this generic function signals a
227 continuable error of type PCL:NO-PRIMARY-METHOD-ERROR.
228 - Effective methods are no longer precomputed at method load
229 time, for conformance with CLtS.
230 PCL:*MAX-EMF-PRECOMPUTATION-METHODS* can be set to a number >
231 0 to allow effective method precomputation when the generic
232 function in question has less than the specified number of
233 methods.
234
235 * Improvements to Hemlock, the Emacs-like editor:
236
237 * Changes to rebuilding procedure:
238
239 * Deprecated features:
240 - EXT:ENCAPSULATE and associated functions; use fwrappers instead.
241
242 This release is not binary compatible with code compiled using CMUCL
243 18e; you will need to recompile FASL files.
244
245 See <URL:http://www.cons.org/cmucl/> for download information,
246 guidelines on reporting bugs, and mailing list details.
247
248
249 We hope you enjoy using this release of CMUCL!
250

  ViewVC Help
Powered by ViewVC 1.1.5