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

  ViewVC Help
Powered by ViewVC 1.1.5