/[cmucl]/src/general-info/release-20a.txt
ViewVC logotype

Contents of /src/general-info/release-20a.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.15.2.1 - (show annotations)
Wed Aug 26 17:03:35 2009 UTC (4 years, 7 months ago) by rtoy
Branch: RELEASE-20A-BRANCH
Changes since 1.15: +8 -3 lines
File MIME type: text/plain
o Update to 20a.
o Update with known issues.
1 ========================== C M U C L 20 a =============================
2
3 The CMUCL project is pleased to announce the release of CMUCL 20a.
4 This is a major release which contains numerous enhancements and
5 bugfixes from the 19f 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 * Known issues:
20 - On Linux and FreeBSD, it may not be possible call SAVE-LISP and
21 create executables. This seems to be broken on FreeBSD. On
22 Linux, it seems to depend on what version of Linux is used to
23 create the executable. Redhat Enterprise Linux appears to be
24 ok, but Open SuSE 10.x is not.
25
26 * Feature enhancements:
27 - Support for Unicode has been added. You have Unicode support if
28 *FEATURES* includes :UNICODE.
29 o CHAR-CODE-LIMIT is 65536.
30 o There is only one character type; CHARACTER and BASE-CHAR are
31 the same types.
32 o There is only one string type; STRING and BASE-STRING are the
33 same type. All strings are UTF-16 strings and therefore
34 contain UTF-16 surrogate pairs. While most string functions
35 correctly handle surrogate pairs, not all do. It is up to the
36 user to handle this. In particular, processing of strings on
37 a character-by-character basis will need to handle surrogate
38 pairs.
39 o External formats are supported. Functions that need to know
40 the external format take an :EXTERNAL-FORMAT keyword argument
41 to specify the format.
42 + The special variable STREAM:*DEFAULT-EXTERNAL-FORMAT*
43 specifies the default format to be used for all streams.
44 The default value is :iso8859-1.
45 + The standard streams, *standard-input*, *standard-output*,
46 and *standard-error* all default to
47 *default-external-format* (which itself defaults to
48 :iso8859-1). You can change the encoding used for these
49 streams by calling STREAM:SET-SYSTEM-EXTERNAL-FORMAT to set
50 the encoding for all three streams. Alternatively, you can
51 use (setf external-format) to change the format for each
52 stream.
53 + Many external formats are supported. The complete list is
54 in aliases, but we support at least :ISO-8859-1, :UTF-8,
55 :UTF-16, :UTF-32, :CRLF.
56 o CHAR-LESSP and friends perform case-folding by converting to
57 lowercase. (The non-Unicode version converted to uppercase.)
58 o STRING<, STRING>, and friends compare strings in codepoint order.
59 o STRING-LESSP, STRING-GREATERP, and friends compare strings in
60 codepoint order after doing a case-folding operation on each
61 codepoint. The case-folding operation converts each
62 codepoint to the corresponding lowercase codepoint.
63 o UTF16-STRING-P checks to see if a string is a valid UTF-16
64 encoded string.
65 o Unicode normalization forms are supported via STRING-TO-NFC,
66 STRING-TO-NFKC, STRING-TO-NFD, and STRING-TO-NFKD.
67 o Symbols are always normalized to NFC form.
68
69 - WRITE-VECTOR and READ-VECTOR support vectors of with element
70 sizes of 1 bit, 2 bits and 4 bits. For :NETWORK-ORDER, the
71 bytes are written such that the lowest indexed element is
72 written to the most significant part of a byte.
73
74 * ANSI compliance fixes:
75 - MERGE-PATHNAMES no longer generates pathnames whose directory
76 component doesn't start with either :ABSOLUTE or :RELATIVE.
77 MERGE-PATHNAMES also signals errors if the generated pathname
78 directory is invalid (such as :ABSOLUTE followed by :BACK).
79
80 * Bugfixes:
81 - CMUCL sometimes gets "stuck" during compilation where it is
82 trying to simplify the union of a large number of disjoint
83 numeric types. Previously, we handled the case of integer
84 types. Extend this to handle floats as well.
85 - SXHASH was computing the same hash code for upper and lower case
86 characters by upcasing the character. This isn't necessary
87 since the characters are not EQUAL, so make SXHASH return
88 different values for upper and lower case letter.
89 - WRITE-VECTOR was not writing out enough data when no
90 byte-swapping is needed and the end index was not given.
91 (Confusion about the length of the vector versus the index as an
92 octet count, not element count.)
93 - Motif (CLM) should work with Unicode.
94 - The stream created by WITH-INPUT-FROM-STREAM was not properly
95 closed.
96 - SXHASH was returning different values for -0f0 and -0d0 for
97 compiled and interpreted code. They both return the same value
98 now.
99 - Some issues with potential spurious floating-point exceptions
100 with complex arithmetic on x86 with SSE2 have been fixed.
101 (Random junk in unused parts of an sse2 register could cause
102 spurious FP exceptions.)
103 - Numeric contagion for complex + real and complex - real was not
104 done correctly in compiled code. Proper contagion is now done
105 by converting the real to a complex before performing the
106 operation.
107 - CMUCL can now handle the X11 local Unix display connection on
108 Mac OS X.
109 - SETF-SLOT-VALUE-USING-CLASS-DFUN no longer signals errors when
110 checking the new value against the declared slot type when the
111 declared slot type was too hairy for TYPEP.
112 - GENTEMP no longer generates the wrong symbol if the
113 pretty-printer is used.
114 - Some issues with slow allocation with gencgc have been worked
115 around. Certain allocation sequences were causing all
116 allocations to be done out-of-line into an almost full
117 allocation region. This was especially evident on sparc and ppc
118 when running the ansi test suite from gcl on a unicode build.
119 CMUCL will attempt to detect this and abandon the region,
120 allowing inline allocation to be done again.
121 - For x86 builds, the floating-point precision was incorrectly set
122 to 64 bits (long-float) instead of 53 bits (double-float). This
123 is fixed now.
124
125 * Trac Tickets:
126 #31: pathname bug with :case :common
127 Fixed. The common case is applied to each part of the directory,
128 not to the directory as a whole.
129
130 * Other changes:
131 - SOFTWARE-VERSION may return different results than previously.
132 UNIX:UNIX-UNAME is now used to obtain the software version on
133 Linux and Solaris.
134 - User's manual updated with a section on internationalization
135 (unicode).
136 - DESCRIBE on characters includes the character's code and name.
137 - CLX updated to the portable clx version from Christophe Rhodes
138 darcs repository of 2009-06-16.
139 - make-dist.sh will also install the source code in the specified
140 directory if -I and -S are given.
141 - CMUCL contribs (in the src/contribs directory) are now
142 distributed as part of extras package. The contribs can be
143 loaded by first using (require "cmu-contribs"). Then the
144 individual contribs can be loaded with require. The available
145 contribs are, "contrib-demos", "contrib-follow-mouse",
146 "contrib-games-feebs", "contrib-hist", "contrib-psgraph",
147 "contrib-ops", "contrib-embedded-c", "contrib-sprof". The names
148 must be given as lower case strings. These are not officially
149 supported as part of CMUCL, but users may find them useful.
150
151 * Improvements to the PCL implementation of CLOS:
152
153 * Changes to building procedure:
154 - The sparc config fils are now named sparc_gcc and sparc_sunc,
155 which use gcc and Sun C, respectively, for the C compiler. Only
156 Solaris is supported. The old sun4_solaris_gcc and
157 sun4_solaris_sunc configs are deprecated.
158
159 * Known issues:
160 - The :executable feature, while enabled for FreeBSD and Linux,
161 may not be working.
162
163 This release is not binary compatible with code compiled using CMUCL
164 19f; you will need to recompile FASL files.
165
166 See <URL:http://www.cons.org/cmucl/> for download information,
167 guidelines on reporting bugs, and mailing list details.
168
169
170 We hope you enjoy using this release of CMUCL!
171

  ViewVC Help
Powered by ViewVC 1.1.5