/[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.2 - (show annotations)
Wed Feb 27 17:26:49 2008 UTC (6 years, 1 month ago) by rtoy
Branch: release-19e-branch
Changes since 1.28.2.1: +4 -0 lines
File MIME type: text/plain
Update
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.
21
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>"
27
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.
51
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.)
68
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.
89 - DOUBLE-DOUBLE-FLOAT fixes:
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.)
158 - The :PRECISION-CONTROL keyword in SET-FLOATING-POINT-MODES has
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.
180
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.
192
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".
199
200 * Improvements to the PCL implementation of CLOS:
201 - Forward-referenced classes are allowed.
202
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.
208
209
210 This release is not binary compatible with code compiled using CMUCL
211 19d; you will need to recompile FASL files.
212
213 See <URL:http://www.cons.org/cmucl/> for download information,
214 guidelines on reporting bugs, and mailing list details.
215
216
217 We hope you enjoy using this release of CMUCL!
218

  ViewVC Help
Powered by ViewVC 1.1.5