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

  ViewVC Help
Powered by ViewVC 1.1.5