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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.28.2.4 - (show annotations)
Wed Apr 2 13:45:20 2008 UTC (6 years ago) by rtoy
Branch: release-19e-branch
CVS Tags: release-19e, release-19d, release-19e-pre2
Changes since 1.28.2.3: +5 -1 lines
File MIME type: text/plain
o Note support for OSX/Intel is only for 10.5 and later.
o Trac #13 fixed
o CMUCL should work on FC9.
1 ========================== C M U C L 19 e =============================
2
3 The CMUCL project is pleased to announce the release of CMUCL 19e.
4 This is a major release which contains numerous enhancements and
5 bugfixes from the 19d release.
6
7 CMUCL is a free, high performance implementation of the Common Lisp
8 programming language which runs on most major Unix platforms. It
9 mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
10 sophisticated native code compiler; a powerful foreign function
11 interface; an implementation of CLOS, the Common Lisp Object System,
12 which includes multimethods and a metaobject protocol; a source-level
13 debugger and code profiler; and an Emacs-like editor implemented in
14 Common Lisp. CMUCL is maintained by a team of volunteers collaborating
15 over the Internet, and is mostly in the public domain.
16
17 New in this release:
18
19 * Supported system:
20 - Support for Mac OS X/Intel has been added for OSX 10.5 and
21 later.
22
23 * Issues
24 - One some openSUSE systems, cmucl will fail to start because it
25 can't map enough memory. This might be caused be a memory limit
26 that is set too low. Use "ulimit -a" to see the limit on
27 virtual memory. This can be adjusted with "ulimit -v <N>"
28 - Tracing on Mac OS X/Intel uses encapsulation, unlike other
29 platforms. This means tracing recursive functions may not show
30 the recursive calls. You can try setting
31 debug::*trace-encapsulate-default* to :default. Be warned that
32 under some conditions, tracing will cause an error such that you
33 can not get back to the repl and must terminate the process in
34 some other way.
35
36 * Feature enhancements:
37 - Support for dynamic-extent added for ppc. However, it suffers
38 from the same problems with dynamic-extent as other platforms,
39 so it is disabled by default. Tests indicate that it does work
40 in simple situations.
41 - PARSE-TIME recognizes the format produced by C asctime/ctime.
42 (This change may break some other less commonly used patterns.)
43 - PARSE-TIME recognizes and discards any microseconds.
44 - PARSE-TIME checks that a specified day of the week matches the
45 actual day of the week given in the date. An error is signaled
46 if they are inconsistent.
47 - New option to SAVE-LISP allows creating executable Lisp images
48 that do not require a runtime loader.
49 Syntax: (save-lisp "filename" :executable t)
50 Currently supported on FreeBSD and Linux; work on a Solaris
51 version is underway.
52 Limitations: depends on files in "library:" to dump new
53 executable images.
54 - CMUCL's version of CLX has been replaced with telent CLX.
55 - Preliminary support for external formats. Currently only
56 iso8859-1 and utf-8 are supported. Utf-8 support is limited
57 since CMUCL only has 8-bit characters.
58 - UNIX-MPROTECT added to access mprotect.
59
60 * ANSI compliance fixes:
61 - BOA constructors with &AUX variables are handled better now.
62 - SHADOW accepts characters now.
63 - Default initargs are now passed correctly to initialize-instance
64 and shared-initialize.
65 - Several issues in formatted output of floats have been fixed:
66 o ~,dF won't print out extra digits if the number is too small.
67 o ~E sometimes erroneously printed the overflow filler instead
68 of the number.
69 o ~G has changed so that ~E is chosen more often. This is seen
70 when printing large numbers. Instead of printing lots of
71 zeroes, ~E is used. ~G now matches what Fortran would do.
72 o Inconsistencies between print and ~E are now gone. (See Trac
73 ticket #1.)
74 o Some incorrectly printed results for ~E have been fixed. (See
75 Trace ticket #12.)
76
77 * Bugfixes:
78 - Floating-point traps are now handled on ppc. Previously, no
79 traps were signalled and SET-FLOATING-POINT-MODES did nothing.
80 - FILE-POSITION no longer returns negative values for mapped
81 file-simple-stream's.
82 - Potential Version numbers that start with a leading 0 are no
83 longer treated as version numbers. Hence, "foo.~1~" has name
84 "foo", type nil, and version 1, but "foo.~01~" has type "~01~"
85 and version :NEWEST.
86 - A bug in type derivation for EXPT has been fixed. (expt x y)
87 for x of type (double-float (0d0) 1d0) and y of type
88 (double-float (0d0)) now returns (or (member 0d0) (double-float
89 (0d0) 1d0)) instead of (double-float 0d0 1d0), i.e., -0d0 is not
90 in the range.
91 - On sparc, the decoding of a trapping FP instruction is correct
92 now. Previously the wrong instruction was decoded, which
93 produced the wrong operation and operands in the arithmetic
94 error handler.
95 - Fix issue with UNIX:UNIX-MMAP handling of "large" addresses that
96 appeared to be negative numbers.
97 - DOUBLE-DOUBLE-FLOAT fixes:
98 o Converting negative rationals to double-double-float's doesn't
99 produce wrong answers anymore.
100 o (float <negative bignum> 1w0) no longer returns a positive
101 result.
102 o Some issues with creation of DOUBLE-DOUBLE-FLOAT and (COMPLEX
103 DOUBLE-DOUBLE-FLOAT) have been fixed on sparc, ppc, and x86.
104 These seem to work, except there appears to be some bugs on x86
105 when compiling at speed 3 and safety 0.
106 o (INTEGER-DECODE-FLOAT <double-double-float>) was sometimes
107 returning the wrong integer value because the two components had
108 the wrong sign.
109 o Some issues with debugger printing out DOUBLE-DOUBLE-FLOATs and
110 (COMPLEX DOUBLE-DOUBLE-FLOAT)'s have been fixed.
111 o CLOS now recognizes that (COMPLEX DOUBLE-DOUBLE-FLOAT) is a
112 valid built-in class instead of a random object.
113 o Branch cuts for ASIN and ATANH for double-double-float's
114 should match the branches for double-float's.
115 o ATAN2 should correctly handle signed double-double-float
116 zeroes.
117 o FASL files containing -0w0 are now converted to -0w0 instead
118 of 0w0.
119 o SIN and TAN return -0w0 when the argument is -0w0.
120 Previously, they returned 0w0.
121 o Signed zeroes are handled better for addition, subtraction,
122 and multiplication. That is, the correct signed zero is
123 returned now.
124 o Overflow in addition, multiplication, and division returns
125 infinity if traps are disabled.
126 o EQL supports DOUBLE-DOUBLE-FLOAT's now.
127 o The printer and reader should now be consistent for
128 double-double-floats.
129 o Conversion of bignums and ratios to double-double-floats
130 should be more accurate.
131 o Double-double-float's should have print/read consistency now.
132 o TRUNCATE works now when given a DOUBLE-DOUBLE-FLOAT divisor.
133 o FORMATted output of DOUBLE-DOUBLE-FLOAT's should work.
134 - The assembler for ppc had some arguments for some instructions
135 in the wrong order, producing the wrong effect.
136 - When making displaced arrays, the element types are checked to
137 see if they are type equivalent. If not, an error is signaled.
138 - The reader for #= and ## has been enhanced to be much faster for
139 cases with a large number of shared objects. However, it is also
140 somewhat slower for simple cases.
141 - #p"..." now has a namestring and is treated as a pathname with
142 name ".." and type "".
143 - #p"..a" erroneously had directory (:relative). This has been
144 fixed so that directory = nil, name = ".", and type = "a".
145 - Compiling code using SIGNUM no longer causes a compiler error.
146 The defoptimizer for SIGNUM was missing a case for
147 double-double-float.
148 - MAPHASH no longer causes a type-error when the mapping function
149 calls (setf gethash) on the same table.
150 - NOTINLINE declarations are honored for local functions even if
151 they only have only one use. Previously, these would be inlined
152 anyway. This allows tracing of such functions.
153 - TRACE and UNTRACE should now work as expected for local
154 labels/flet functions. Untracing should work. Redefining a
155 function should automatically retrace the local functions if
156 they were traced previously.
157 - Callbacks should now work on systems where malloc'ed space does
158 not normally allow execution of code.
159 - The FLOAT-ACCURACY declaration has been removed. This should
160 have no affect on most user's code, unless they were using
161 this. The default is 53-bit (double-float) precision for
162 everything and the compiler takes care of the precision for the
163 appropriate ABI. It is the compiler's responsibility to make
164 sure single-precision floats are done correctly with
165 single-precision results. (This may be buggy currently.)
166 - The :PRECISION-CONTROL keyword in SET-FLOATING-POINT-MODES has
167 been removed.
168 - A compiler bug with type inferencing and deleting unsued
169 functions has been fixed.
170 - A compiler bug has been fixed where a source transformation was
171 incorrectly applied because the local variable happens to have a
172 function type and has the same name as a known function.
173 - On Darwin/x86, tracing with :encapsulate nil works better, and
174 tracing of labels/flets works better. However, there are still
175 issues with tracing. Returning to the repl after tracing
176 sometimes fails, and you must exit lisp completely.
177 - ~E should be faster now in some cases.
178 - The range over which sin/cos/tan would use the builtin
179 instruction on x86 has been reduced. Previously, values near
180 the limit would either produce result greater than 1 in absolute
181 value or cause a floating-point exception. Note that accuracy
182 is reduced when the builtin instructions are used for very large
183 arguments.
184 - Issues with compact info environments should be fixed. The
185 issue manifests itself when a new core is saved with lots of
186 functions (or other objects). The resulting core executes the
187 wrong code for some of the functions.
188
189 * Trac Tickets:
190 - #8 fixed so logs of bignums and ratios that won't fit into a
191 float can be computed, instead of signalling an error.
192 - #9 fixed. An error is generated if the number of days doesn't
193 match the number of days in the given month.
194 - #10 fixed. ROUND should now return correct answers for floats
195 bigger than most-positive-fixnum.
196 - #11 fixed. EQL handles double-double-float's correctly now.
197 - #1 fixed. prin1 and ~E should produce the same results.
198 - #12 fixed. (format t "~10,1,2,0,'*,,'DE" 1d-6) prints "0.1D-05"
199 now.
200 - #13 fixed. (format nil "~11,3,2,0,'*,,'EE" .9999) produces
201 0.100e+1 instead of 1.000e+0.
202
203 * Other changes:
204 - UNIX:UNIX-ERRNO accesses the thread errno value instead of the
205 global errno value.
206 - Floating point zero is now printed with an exponent of zero,
207 independent of any scale factor that might be used. Thus, we
208 get results like "0.0D+00" instead of "0.0D-5".
209 - CMUCL should now build and run on Redhat Fedora Core 9.
210
211 * Improvements to the PCL implementation of CLOS:
212 - Forward-referenced classes are allowed.
213
214 * Changes to rebuilding procedure:
215 - load-world.sh now supports a -p option to load the world without
216 PCL. This is mostly for cross-compiling which doesn't want PCL
217 loaded because it's not build during a cross-compile.
218 - make-dist.sh now defaults to bzip compression instead of gzip.
219
220
221 This release is not binary compatible with code compiled using CMUCL
222 19d; you will need to recompile FASL files.
223
224 See <URL:http://www.cons.org/cmucl/> for download information,
225 guidelines on reporting bugs, and mailing list details.
226
227
228 We hope you enjoy using this release of CMUCL!
229

  ViewVC Help
Powered by ViewVC 1.1.5