/[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.22 - (hide annotations)
Mon Aug 14 17:49:53 2006 UTC (7 years, 8 months ago) by rtoy
Branch: MAIN
Changes since 1.21: +5 -1 lines
File MIME type: text/plain
Update from logs.
1 rtoy 1.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 emarsden 1.4 bugfixes from the 19c release.
8 rtoy 1.1
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 rtoy 1.3 - LONG-LONG and UNSIGNED-LONG-LONG are recognized types in the
33     C-CALL package for signed and unsigned 64-bit integers.
34 rtoy 1.5 - A port of gencgc to Darwin/ppc has been made. This still
35 rtoy 1.10 needs work, and is known to have some issues, but it compiles
36     CMUCL without problems and runs maxima just fine.
37 rtoy 1.8 - 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 rtoy 1.11 - DISASSEMBLE will disassemble flets/labels functions when
41     disassembling a function. Set disassem::*disassemble-flets*
42     to NIL to turn this off.
43 rtoy 1.12 - Simple errors in socket handling code have been converted to
44     socket-error's to allow easier distinction of the errors.
45 rtoy 1.15 - 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 rtoy 1.18 - 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 rtoy 1.19 * 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 rtoy 1.1
104     * Numerous ANSI compliance fixes:
105    
106     - A reader-error is signaled if the number that is being read is
107     too small to be presented. We used to silently return 0.
108     - WITH-INPUT-FROM-STRING no longer modifies the index if
109     WITH-INPUT-FROM-STRING is not exited normally.
110     - An error is signaled if a declaration is used as the name of a
111     deftype, condition, or defstruct, and vice versa.
112     - An error is signaled when trying to generate a namestring from
113     a pathname with just a version component (other than nil,
114     :newest, or :unspecific). CMUCL cannot print that readably.
115     - FLET and LABELS functions will catch errors in keyword
116     parameters. Previously, a keyword of NIL was silently
117     accepted.
118     - Printing a zero using ~E will now include a trailing zero
119     after the decimal point, as required by CLHS, 22.3.3.2.
120 rtoy 1.2 - DOCUMENTATION and (SETF DOCUMENTATION) now works for
121     structures of type list or vector.
122 rtoy 1.3 - DOTIMES will execute the loop the specified number of times,
123     independent of what the loop might do to the loop counter.
124 rtoy 1.12 - Printing of circular objects using logical-blocks is handled
125     better.
126 rtoy 1.13 - SET-SYNTAX-FROM-CHAR copies the entire dispatch table of
127     reader macro functions if necessary.
128     - SET-SYNTAX-FROM-CHAR handles single-escape, multiple-escape
129     and # characters correctly now.
130     - When CLOSE'ing a file with :ABORT, don't delete the file,
131     unless we renamed it. This preserves any and all changes to
132     the file, instead of deleting it.
133 rtoy 1.17 - As specified by CLHS 22.1.3.1.3, PRIN1 and friends now produce
134     a trailing zero if necessary.
135     - As specified by CLHS 22.3.3.2, ~E will produce a single zero
136     for the fractional part, if necessary.
137     - (FORMAT NIL "~,2F" 0.001) produces "0.00" instead of "0.001".
138     Thus, we actually honor the d field now.
139 rtoy 1.1
140     * Numerous bugfixes:
141    
142     - LISTEN on DUAL-CHANNEL-SIMPLE-STREAM should work now.
143     - Some numerical issues with the two-arg log function have been
144     fixed. (log 17 10f0), (log 17f0 10) and (log 17 10) all
145     return the same result now.
146     - DESTRUCTURING-BIND no longer causes an error when the list to
147     be destructured is circular.
148 rtoy 1.2 - PEEK-CHAR for Gray streams handles end of file correctly now.
149     - For the ppc port, the alignment of objects in alien structures
150     now matches the PowerOpen ABI for Mac OS X.
151 rtoy 1.3 - For Darwin/ppc, CMUCL was not following the ABI when calling
152     out to C varargs functions. Now we always copy any float args
153     to the corresponding int regs (or stack) as required by the
154     ABI. This isn't necessary for non-varargs functions, but
155     CMUCL doesn't know functions which are varargs functions.
156     - Callbacks with long-long args or results should work correctly
157     now for Darwin/ppc.
158 rtoy 1.5 - DESCRIBE no longer depends on having PCL loaded.
159     - Tracing with no encapsulation appears to be working now for
160     ppc.
161     - A simple interface to sysinfo(2) has been added for sparc.
162     This is used to provide better values for MACHINE-TYPE and
163     MACHINE-VERSION.
164 rtoy 1.6 - PARSE-TIME can parse times like "Tue Sep 7 18:56:57 UTC 2004"
165     again.
166     - The pretty-printer for MULTIPLE-VALUE-BIND can handle
167 rtoy 1.9 malformed MULTIPLE-VALUE-BIND forms now, instead of producing
168 rtoy 1.6 an error.
169 rtoy 1.7 - Callbacks on Darwin/ppc with a large number of args (more than
170     8 integer args) should work correctly now. (Previous versions
171     would signal an error.)
172 rtoy 1.9 - DESCRIBE no longer says arrays are adjustable when they are
173     not, and vice versa.
174     - Disassembly of some floating-point instructions on ppc has
175     been corrected to display floating-point registers instead of
176     integer registers.
177 rtoy 1.11 - (read (make-array 5)) doesn't cause a segfault anymore on
178     x86/linux. An error is now signaled saying the object isn't
179     one of the possible stream types.
180     - The PPC port no longer runs very slowly on some tests on a G5.
181     This was caused by using an instruction (mcrxr) that is
182     emulated on a G5 but not earlier.
183 rtoy 1.12 - The pretty printer no longer causes an error on badly formed
184     slots in defclass forms.
185 rtoy 1.14 - Document LISP::*IGNORE-WILDCARDS*. When set, namestrings will
186     not have pathnames with wildcards escaped when parsing
187     namestrings or when creating namestrings.
188 rtoy 1.17 - Fix PPC bug in fixnum arithmetic that caused overflow. A trap
189     would be triggered, but there's no C support for the trap.
190     - Some flet/labels functions were not disassembled at all.
191     - DEFMACRO within a WITHOUT-PACKAGE-LOCKS now actually disables
192     the package lock.
193     - (expt 1 <big number>) doesn't trigger a continuable error
194     anymore and returns 1 immediately.
195     - Disassembling methods doesn't produce a type error anymore.
196     - IGNOREing a symbol in a SYMBOL-MACROLET doesn't cause a type
197     error anymore.
198 rtoy 1.19 - The unknown condition type 'LISP:SOCKET-ERROR has been fixed.
199     It properly signals the EXT:SOCKET-ERROR condition now.
200 rtoy 1.20 - The accuracy of the trig functions (sin, cos, tan) for large
201     arguments has been improved for x86 and ppc. Sparc already
202     had accurate versions. Thus, (cos 1d120) is
203     -0.8278608682708728d0.
204 rtoy 1.21 - ROOM works a bit better with GENCGC's allocation because
205     unallocated pages ended up looking like pages of conses.
206     - DESCRIBE will indicate if a hash-table is a weak (key)
207     hash-table or not.
208     - When an entry is freed in a weak hash-table, the entry is
209     actually marked as free now. Previously, MAPHASH and
210     WITH-HASH-TABLE-ITERATOR would still display (potentially
211     incorrect) entry for it.
212     - Some issues with GC of weak pointers and weak hash-tables have
213     been fixed. (CMUCL would sometimes crash to ldb about weird,
214     invalid objects.) There are, however, still issues with weak
215     pointers.
216 rtoy 1.22 - Hash table entries with a key and value of :EMTPY now work as
217     expected.
218    
219 rtoy 1.1 * Other changes:
220    
221     - CMUCL catches more cases where it cannot print a pathname
222     readably. In particular when the pathname name contains "/"
223     or ".", or when the pathname type contains a ".".
224 rtoy 1.6 - WITH-SLOTS and WITH-ACCESSORS are now pprinted like
225     MULTIPLE-VALUE-BIND instead of like WITH-OPEN-FILE.
226 rtoy 1.12 - LOOKUP-HOST-ENTRY now returns a second value. If
227     LOOKUP-HOST-ENTRY succeeds, the second value is T; otherwise,
228     the value of h_errno is returned.
229 rtoy 1.22 - A warning is printed when creating a weak key hash table with
230     a test different from EQ.
231 rtoy 1.1
232     * Improvements to the PCL implementation of CLOS:
233    
234     * Changes to rebuilding procedure:
235     - Build scripts should recognize FreeBSD automatically.
236     - Should be able to build on either Mac OS X 10.2 or 10.4 using
237     the default version of gcc.
238    
239     This release is not binary compatible with code compiled using CMUCL
240 emarsden 1.4 19c; you will need to recompile FASL files.
241 rtoy 1.1
242     See <URL:http://www.cons.org/cmucl/> for download information,
243     guidelines on reporting bugs, and mailing list details.
244    
245    
246     We hope you enjoy using this release of CMUCL!
247    

  ViewVC Help
Powered by ViewVC 1.1.5