ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log

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

  ViewVC Help
Powered by ViewVC 1.1.5