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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.24 - (show annotations)
Mon Oct 2 13:40:55 2006 UTC (7 years, 6 months ago) by rtoy
Branch: MAIN
CVS Tags: sparc-tramp-assem-base, post-merge-intl-branch, merged-unicode-utf16-extfmt-2009-06-11, unicode-utf16-extfmt-2009-03-27, snapshot-2007-09, snapshot-2007-08, snapshot-2008-08, snapshot-2008-09, sse2-packed-2008-11-12, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2007-05, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, intl-branch-working-2010-02-19-1000, snapshot-2006-11, snapshot-2006-10, snapshot-2006-12, unicode-string-buffer-impl-base, sse2-base, release-20b-pre1, release-20b-pre2, unicode-string-buffer-base, sse2-packed-base, sparc-tramp-assem-2010-07-19, amd64-dd-start, release-19f-pre1, snapshot-2008-12, snapshot-2008-11, intl-2-branch-base, snapshot-2007-01, snapshot-2007-02, release-19e, GIT-CONVERSION, unicode-utf16-sync-2008-12, cross-sol-x86-merged, label-2009-03-16, release-19f-base, merge-sse2-packed, merge-with-19f, intl-branch-working-2010-02-11-1000, unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-extfmts-sync-2008-12, RELEASE_20b, snapshot-2008-04, unicode-utf16-sync-label-2009-03-16, RELEASE_19f, snapshot-2007-03, release-20a-base, cross-sol-x86-base, unicode-utf16-char-support-2009-03-26, unicode-utf16-char-support-2009-03-25, unicode-utf16-extfmts-pre-sync-2008-11, snapshot-2008-10, snapshot-2007-04, snapshot-2010-12, snapshot-2010-11, unicode-utf16-sync-2008-11, snapshot-2007-07, snapshot-2011-09, snapshot-2011-06, snapshot-2011-07, snapshot-2011-04, snapshot-2007-06, snapshot-2011-02, snapshot-2011-03, snapshot-2011-01, pre-merge-intl-branch, release-19d-base, release-19e-pre1, release-19e-pre2, snapshot-2010-05, snapshot-2010-04, snapshot-2010-07, snapshot-2010-06, snapshot-2010-01, snapshot-2010-03, snapshot-2010-02, snapshot-2010-08, label-2009-03-25, cross-sol-x86-2010-12-20, sse2-checkpoint-2008-10-01, intl-branch-2010-03-18-1300, sse2-merge-with-2008-11, sse2-merge-with-2008-10, RELEASE_20a, release-20a-pre1, snapshot-2009-11, snapshot-2009-12, unicode-utf16-extfmt-2009-06-11, portable-clx-import-2009-06-16, unicode-utf16-string-support, cross-sparc-branch-base, release-19e-base, intl-branch-base, unicode-utf16-base, portable-clx-base, snapshot-2009-08, snapshot-2007-12, snapshot-2007-10, snapshot-2007-11, snapshot-2009-02, snapshot-2009-01, snapshot-2009-07, snapshot-2009-05, snapshot-2009-04, pre-telent-clx, HEAD
Branch point for: RELEASE-19F-BRANCH, portable-clx-branch, cross-sparc-branch, RELEASE-20B-BRANCH, unicode-string-buffer-branch, sparc-tramp-assem-branch, release-19d-branch, sse2-packed-branch, RELEASE-20A-BRANCH, amd64-dd-branch, unicode-string-buffer-impl-branch, intl-branch, unicode-utf16-branch, cross-sol-x86-branch, release-19e-branch, sse2-branch, intl-2-branch, unicode-utf16-extfmt-branch
Changes since 1.23: +4 -0 lines
File MIME type: text/plain
code/ntrace.lisp:
o Add a new :WHEREIN-ONLY option for trace, which is like :WHEREIN,
  but only if the immediate caller is one of the listed functions
  instead of anywhere in the backtrace.

general-info/release-19d.txt:
o Update for :WHEREIN-ONLY
1 ========================== C M U C L 19 d =============================
2
3 [--- WORK IN PROGRESS --- DO NOT DISTRIBUTE ---]
4
5 The CMUCL project is pleased to announce the release of CMUCL 19d.
6 This is a major release which contains numerous enhancements and
7 bugfixes from the 19c 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
22 * Feature enhancements:
23
24 - Destructive functions like nreverse that modify constant args
25 will produce a warning.
26 - Destructive functions like nreverse whose results are not used
27 will produce a warning.
28 - Pathnames that cannot be printed readably using #p"..." will
29 now be printed using the CMUCL extension #P(...). However,
30 there are still cases where CMUCL cannot print pathnames
31 readably, but these involve search-lists and patterns.
32 - LONG-LONG and UNSIGNED-LONG-LONG are recognized types in the
33 C-CALL package for signed and unsigned 64-bit integers.
34 - A port of gencgc to Darwin/ppc has been made. This still
35 needs work, and is known to have some issues, but it compiles
36 CMUCL without problems and runs maxima just fine.
37 - TRACE supports tracing of FLET/LABELS functions. Use (trace
38 (labels foo bar)) to trace the labels function FOO in the
39 function BAR. This is currently experimental.
40 - DISASSEMBLE will disassemble flets/labels functions when
41 disassembling a function. Set disassem::*disassemble-flets*
42 to NIL to turn this off.
43 - Simple errors in socket handling code have been converted to
44 socket-error's to allow easier distinction of the errors.
45 - EXT:LOAD-FOREIGN will use dlopen to try to open a shared
46 library, so if dlopen searches in certain places, LOAD-FOREIGN
47 will find the shared object.
48 - A new search-list "ld-library-path:" has been created and
49 contains the value of the environment variable
50 LD_LIBRARY_PATH. This is analogous to the "path:"
51 search-list.
52 - When a core file is started, any shared libraries that were
53 loaded when the core was made will be reloaded on startup. If
54 the library cannot be found, several restarts are available.
55 - Support for the new float type EXT:DOUBLE-DOUBLE-FLOAT. This
56 includes support for complex numbers with this component type
57 and simple arrays for this type and complex numbers of this
58 type.
59
60 A DOUBLE-DOUBLE-FLOAT uses two DOUBLE-FLOAT's to represent a
61 number with >= 106 bits of precision (about 33 digits). Known
62 issues:
63
64 * If you are expecting IEEE-style behavior, you don't get it:
65 - signed zeroes aren't really available.
66 - overflows don't return infinity but return NaN instead.
67 - rounding might not be quite the same as IEEE
68 - SQRT is not accurate to the last bit, as required by IEEE.
69 * Multiplying by a number very close to
70 most-positive-double-float will produce an error even if the
71 result does not overflow. (This is an artifact of how
72 multiplication is done. I don't have a solution to this.)
73 * Read/write consistency is not working. (Because conversion
74 from a bignum to a double-double-float doesn't really
75 understand the internal double-double-float format.)
76 * INTEGER-DECODE-FLOAT and SCALE-FLOAT aren't "inverses".
77 That is, you can't take the result of integer-decode-float
78 and use scale-float to produce exactly the same number.
79 This is because of how bignums are converted to
80 double-doubles.
81 * FLOAT-DIGITS always returns 106 even though there could be
82 more bits. (Consider the double-double (1d0,1d-200)). This
83 will show up in PRINT where the printed result will have way
84 more than the normal 33 digits or so. But reading such a
85 number back won't give the same value.
86 * There is probably more consing than is necessary in many of
87 the standard Common Lisp functions like floor, ffloor, etc.
88 * The special functions are not fully tested. I did a few
89 random spot checks for each function and compared the
90 results with maxima to verify them.
91 * The branch cuts for the special functions very likely will
92 not match the double-float versions, mostly because we don't
93 have working signed zeroes.
94 * Type derivation for double-double-floats might not be
95 working quite right.
96 * PI is still a double-float. If you want a double-double
97 version of pi, it's KERNEL:DD-PI. (Soon to be EXT:DD-PI.)
98 * There are probably still many bugs where double-double-float
99 support was overlooked.
100 * The double-double arithmetic operations can be inlined by
101 specifying (SPACE 0). Otherwise, they are not inlined.
102 (Each double-double operation is about 20 FP instructions.)
103 - Hash tables now support weak value, weak key-and-value, and
104 weak key-or-value tables. The :WEAK-P keyword argument can
105 take the following values with the given meanings:
106
107 T
108 For backward compatibility. It is the same as :KEY.
109 :KEY
110 The entry exists as long as the key is not
111 garbage-collected.
112 :VALUE
113 The entry exists as long as the value is not
114 garbage-collected.
115 :KEY-AND-VALUE
116 The entry exists as long as the key and the value are
117 alive.
118 :KEY-OR-VALUE
119 The entry exists as long as the key or the value are alive.
120
121 These tables are currently experimental, but appear to work.
122 - TRACE supports an extra option, :WHEREIN-ONLY. This is
123 similar to the :WHEREIN option, except :WHEREIN-ONLY only
124 traces the function if the immediate caller is the specified
125 function(s).
126
127 * Numerous ANSI compliance fixes:
128
129 - A reader-error is signaled if the number that is being read is
130 too small to be presented. We used to silently return 0.
131 - WITH-INPUT-FROM-STRING no longer modifies the index if
132 WITH-INPUT-FROM-STRING is not exited normally.
133 - An error is signaled if a declaration is used as the name of a
134 deftype, condition, or defstruct, and vice versa.
135 - An error is signaled when trying to generate a namestring from
136 a pathname with just a version component (other than nil,
137 :newest, or :unspecific). CMUCL cannot print that readably.
138 - FLET and LABELS functions will catch errors in keyword
139 parameters. Previously, a keyword of NIL was silently
140 accepted.
141 - Printing a zero using ~E will now include a trailing zero
142 after the decimal point, as required by CLHS, 22.3.3.2.
143 - DOCUMENTATION and (SETF DOCUMENTATION) now works for
144 structures of type list or vector.
145 - DOTIMES will execute the loop the specified number of times,
146 independent of what the loop might do to the loop counter.
147 - Printing of circular objects using logical-blocks is handled
148 better.
149 - SET-SYNTAX-FROM-CHAR copies the entire dispatch table of
150 reader macro functions if necessary.
151 - SET-SYNTAX-FROM-CHAR handles single-escape, multiple-escape
152 and # characters correctly now.
153 - When CLOSE'ing a file with :ABORT, don't delete the file,
154 unless we renamed it. This preserves any and all changes to
155 the file, instead of deleting it.
156 - As specified by CLHS 22.1.3.1.3, PRIN1 and friends now produce
157 a trailing zero if necessary.
158 - As specified by CLHS 22.3.3.2, ~E will produce a single zero
159 for the fractional part, if necessary.
160 - (FORMAT NIL "~,2F" 0.001) produces "0.00" instead of "0.001".
161 Thus, we actually honor the d field now.
162
163 * Numerous bugfixes:
164
165 - LISTEN on DUAL-CHANNEL-SIMPLE-STREAM should work now.
166 - Some numerical issues with the two-arg log function have been
167 fixed. (log 17 10f0), (log 17f0 10) and (log 17 10) all
168 return the same result now.
169 - DESTRUCTURING-BIND no longer causes an error when the list to
170 be destructured is circular.
171 - PEEK-CHAR for Gray streams handles end of file correctly now.
172 - For the ppc port, the alignment of objects in alien structures
173 now matches the PowerOpen ABI for Mac OS X.
174 - For Darwin/ppc, CMUCL was not following the ABI when calling
175 out to C varargs functions. Now we always copy any float args
176 to the corresponding int regs (or stack) as required by the
177 ABI. This isn't necessary for non-varargs functions, but
178 CMUCL doesn't know functions which are varargs functions.
179 - Callbacks with long-long args or results should work correctly
180 now for Darwin/ppc.
181 - DESCRIBE no longer depends on having PCL loaded.
182 - Tracing with no encapsulation appears to be working now for
183 ppc.
184 - A simple interface to sysinfo(2) has been added for sparc.
185 This is used to provide better values for MACHINE-TYPE and
186 MACHINE-VERSION.
187 - PARSE-TIME can parse times like "Tue Sep 7 18:56:57 UTC 2004"
188 again.
189 - The pretty-printer for MULTIPLE-VALUE-BIND can handle
190 malformed MULTIPLE-VALUE-BIND forms now, instead of producing
191 an error.
192 - Callbacks on Darwin/ppc with a large number of args (more than
193 8 integer args) should work correctly now. (Previous versions
194 would signal an error.)
195 - DESCRIBE no longer says arrays are adjustable when they are
196 not, and vice versa.
197 - Disassembly of some floating-point instructions on ppc has
198 been corrected to display floating-point registers instead of
199 integer registers.
200 - (read (make-array 5)) doesn't cause a segfault anymore on
201 x86/linux. An error is now signaled saying the object isn't
202 one of the possible stream types.
203 - The PPC port no longer runs very slowly on some tests on a G5.
204 This was caused by using an instruction (mcrxr) that is
205 emulated on a G5 but not earlier.
206 - The pretty printer no longer causes an error on badly formed
207 slots in defclass forms.
208 - Document LISP::*IGNORE-WILDCARDS*. When set, namestrings will
209 not have pathnames with wildcards escaped when parsing
210 namestrings or when creating namestrings.
211 - Fix PPC bug in fixnum arithmetic that caused overflow. A trap
212 would be triggered, but there's no C support for the trap.
213 - Some flet/labels functions were not disassembled at all.
214 - (expt 1 <big number>) doesn't trigger a continuable error
215 anymore and returns 1 immediately.
216 - Disassembling methods doesn't produce a type error anymore.
217 - The unknown condition type 'LISP:SOCKET-ERROR has been fixed.
218 It properly signals the EXT:SOCKET-ERROR condition now.
219 - The accuracy of the trig functions (sin, cos, tan) for large
220 arguments has been improved for x86 and ppc. Sparc already
221 had accurate versions. Thus, (cos 1d120) is
222 -0.8278608682708728d0.
223 - ROOM works a bit better with GENCGC's allocation because
224 unallocated pages ended up looking like pages of conses.
225 - DESCRIBE will indicate if a hash-table is a weak (key)
226 hash-table or not.
227 - Some issues with GC of weak pointers and weak hash-tables have
228 been fixed. (CMUCL would sometimes crash to ldb about weird,
229 invalid objects.) There are, however, still issues with weak
230 pointers.
231 - Hash table entries with a key and value of :EMTPY now work as
232 expected.
233 - EXT:READ-VECTOR can read binary data from streams with element
234 type BASE-CHAR or CHARACTER.
235
236 * Trac Tickets
237 3. without-package-locks doesn't work with defmacro
238 - DEFMACRO within a WITHOUT-PACKAGE-LOCKS now actually
239 disables the package lock.
240 4. symbol-macrolet + ignorable causes internal compiler error
241 - IGNOREing a symbol in a SYMBOL-MACROLET doesn't cause a
242 type error anymore.
243 5. Hash table entry with key and value of :EMPTY is treated as
244 an empty entry.
245 - :EMPTY is allowed now and works as expected.
246 6. GCed items in weak hash tables are still accessible (with
247 random junk)
248 - When an entry is freed in a weak hash-table, the entry is
249 actually marked as free now. Previously, MAPHASH and
250 WITH-HASH-TABLE-ITERATOR would still display (potentially
251 incorrect) entry for it.
252 7. Bug in ext:read-vector
253 - Fixed so that EXT:READ-VECTOR can read binary data from
254 streams with element type BASE-CHAR and CHARACTER. This
255 matches the behavior of STREAMS:READ-VECTOR.
256
257 * Other changes:
258
259 - CMUCL catches more cases where it cannot print a pathname
260 readably. In particular when the pathname name contains "/"
261 or ".", or when the pathname type contains a ".".
262 - WITH-SLOTS and WITH-ACCESSORS are now pprinted like
263 MULTIPLE-VALUE-BIND instead of like WITH-OPEN-FILE.
264 - LOOKUP-HOST-ENTRY now returns a second value. If
265 LOOKUP-HOST-ENTRY succeeds, the second value is T; otherwise,
266 the value of h_errno is returned.
267 - A warning is printed when creating a weak key hash table with
268 a test different from EQ.
269
270 * Improvements to the PCL implementation of CLOS:
271
272 * Changes to rebuilding procedure:
273 - Build scripts should recognize FreeBSD automatically.
274 - Should be able to build on either Mac OS X 10.2 or 10.4 using
275 the default version of gcc.
276
277 This release is not binary compatible with code compiled using CMUCL
278 19c; you will need to recompile FASL files.
279
280 See <URL:http://www.cons.org/cmucl/> for download information,
281 guidelines on reporting bugs, and mailing list details.
282
283
284 We hope you enjoy using this release of CMUCL!
285

  ViewVC Help
Powered by ViewVC 1.1.5