ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.32 - (show annotations)
Wed Jun 22 13:54:20 2005 UTC (8 years, 8 months ago) by rtoy
Branch: MAIN
Branch point for: double-double-reader-branch, double-double-array-branch, RELEASE-19F-BRANCH, portable-clx-branch, cross-sparc-branch, RELEASE-20B-BRANCH, unicode-string-buffer-branch, sparc-tramp-assem-branch, release-19d-branch, sse2-packed-branch, RELEASE-20A-BRANCH, amd64-dd-branch, double-double-branch, unicode-string-buffer-impl-branch, intl-branch, unicode-utf16-branch, cross-sol-x86-branch, release-19e-branch, sse2-branch, release-19c-branch, intl-2-branch, unicode-utf16-extfmt-branch
Changes since 1.31: +3 -1 lines
File MIME type: text/plain
Update from 19b-branch.
3 The CMUCL project is pleased to announce the release of CMUCL 19b.
4 This is a major release which contains numerous enhancements and
5 bugfixes from the 19a 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 * Newly supported platforms:
21 - CMUCL has been ported to Mac OS X. The port includes support for
22 callbacks from foreign code, and linkage-table support (which
23 makes it possible to dump images that contain references to
24 foreign code).
25 - the NetBSD/x86 platform is supported, with generational
26 conservative garbage collection (the :gencgc *feature*),
27 linkage-table support, and the Motif interface.
30 * Feature enhancements:
32 - Added a much faster and much less consy bignum printer and a
33 faster bignum reader.
34 - Extended REQUIRE to support *MODULE-PROVIDER-FUNCTIONS* from
35 SBCL.
36 - SIMPLE-STREAM fixes:
38 signed-byte/unsigned-byte 8 streams.
39 o Memory-mapped file streams.
40 - Large file support for Solaris, so CMUCL can handle files
41 larger than 2GB.
42 - A much faster GCD implementation.
43 - A faster Karatsuba multiplier when the number of words of the
44 bignums is not a power of 2. (Break-even is still around 1500
45 bits, though.)
47 searching for its core file.
48 - DEBUG-RETURN implemented which allows you to return a value
49 from function. Only enabled with DEBUG 3.
50 - Lazy sxhash on symbols implemented for ppc.
51 - Pretty-printer for LOOP.
52 - Added some more pprinters for various forms.
53 - Loop analysis code added to the compiler. It's incorporated
54 into the build and can be enabled by setting *loop-analyze* to
55 T, but the compiler doesn't use the loop information for
56 anything yet.
57 - Errors from socket functions signal a SOCKET-ERROR instead of
58 a generic ERROR condition.
59 - Efficiency notes are no longer printed if inhibit-warnings >=
60 2.5.
61 - Simple support for datagram networking added: INET-RECVFROM,
64 the EXTENSIONS package instead of being internal.
65 - TRACE will work now for the known-return convention, which
66 used to require encapsulation so that only the first call was
67 traced. Useful for tracing recursive functions.
68 - Bivalent streams are supported. Thus, streams with
69 element-type (unsigned-byte 8) can be used for character
70 input/output as well as binary input/output. Supply the
71 option :CLASS 'EXT:BINARY-TEXT-STREAM for OPEN to get bivalent
73 implemented. This is somewhat experimental right now, and may
74 change slightly in a future version.
75 - Loading fasls compiled for a different version of CMUCL will
76 now signal an EXT:INVALID-FASL error instead a generic error.
78 * Numerous ANSI compliance fixes:
79 - FILE-AUTHOR should signal errors appropriately.
80 - CMUCL was computing the wrong value for some special functions
81 when the argument was on the branch cut for the function.
82 - MULTIPLE-VALUE-BIND accepts &REST and friends in the var list.
83 - When constructing logical pathnames, all components will be
84 automatically upcased. Needed for print/read consistency, and
85 fixes an issue with ASDF and logical pathnames.
86 - Numerous fixes to the float printer, including a new float
87 printer.
88 - Justification (~< ~> FORMAT directives) works better.
89 - ~V with the value of NIL in format strings is treated to mean
90 as if it weren't given at all, as specified by ANSI CL.
91 - Characters print consistently with ~:C and ~S.
92 - Numerous bug fixes for pretty-printing and format strings.
93 - Pathnames are now printed with #P instead of #p.
94 - The types COMPLEX and (COMPLEX REAL) are the same now.
95 - UPGRADED-COMPLEX-PART-TYPE returns RATIONAL for integer types
96 now. (CMUCL doesn't really have a (COMPLEX INTEGER) type).
97 - When a pathname can't be printed readably, signal a
98 PRINT-NOT-READABLE condition.
99 - Printing arrays readably was sometimes wrong.
100 - FOR-AS-ON-LIST works with dotted lists.
101 - DEFSTRUCT predicates for list structures don't produce errors
102 anymore on dotted or short lists.
103 - UNBOUND-SLOT condition no longer takes the :slot keyword. It
104 uses the ANSI-specified :name keyword. This is not backward
105 compatible!
106 - MAKE-SYMBOL takes STRINGs, not just SIMPLE-STRINGs.
107 - PPRINT-POP did not return NIL when the list arg to
109 - Signal appropriate error conditions instead of a plain error
110 condition in many situations.
111 - TYPECASE was treating the type T as an otherwise clause even
112 though it was not the last clause. It should be just a
113 regular clause.
114 - ASIN, ACOS, ACOSH, and ATANH were returning the wrong values
115 when the arg was a real number on the branch cut.
116 - Missed some places where loop variables were duplicated, which
117 should signal a program-error.
118 - LOOP INITIALLY clauses occur after variable initialization for
119 FOR, WITH, and AS clauses, as required by ANSI CL.
121 been fixed.
122 - Evaluation order of REMF, INCF, and DECF.
125 specified by ANSI CL. (Previously, CMUCL would return a list
126 of NILs.)
127 - Pathname components of type :UNSPECIFIC are no longer printed in
128 namestrings.
129 - Dumping of symbols in fasls now works according to ANSI.
130 - READ-FROM-STRING was sometimes not returning the correct
131 second value when the string was a displaced string.
132 - The invalid trait for constituent characters is handled
133 better.
135 - MAKE-DISPATCH-MACRO-CHARACTER is supposed to return T.
136 - APROPOS and APROPOS-LIST no longer take 3 arguments. ANSI CL
137 says they only take 2.
139 or when a float can't fit into the specified float type.
140 - A form like #(1 . 2) now signals a reader error.
141 - NIL as a keyword arg is no longer silently accepted, unless
142 NIL was actually a specified keyword arg.
143 - Some cases of reader errors being signaled when
144 *READ-SUPPRESS* was T no longer occur.
145 - The datum slot for check-type contains the place-value now
146 instead of the place.
147 - The expected-type and datum should now be consistent in
148 type-errors (datum is not of the expected-type).
149 Similar situations in other errors are also corrected.
151 * Numerous bugfixes:
153 - FFLOOR and friends preserve the sign of the arg, so -0.0 is
154 returned for negative args.
155 - EXPT sometimes returned NaN instead of 1 when the power was 0.
156 - Weak pointers no longer have O(n^2) GC behavior.
157 - X11 authorization changes to solve problems seen with servers
158 that don't listen to TCP connection requests.
159 - UNIX-READ fix
160 - The compiler would give an error on deriving the result type
161 of RANDOM when the arg to RANDOM was a union type.
162 - "~*~" was not being parsed to mean a wildcard version.
163 - UNIX-GETPWUID implemented for Darwin. Needed for FILE-AUTHOR.
164 - The compiler no longer gives errors when deriving the result type of
165 COERCE when converting a integer to a float that would not fit
166 in a float.
167 - Fix bug in reading from streams with element-type SIGNED-BYTE
168 for sizes greater than 32: Positive numbers were incorrectly
169 being returned as negative.
170 - REMOVE-DUPLICATES was not honoring the :START option.
171 - PPRINT-LOGICAL-BLOCK sometimes didn't close the block properly
172 because PPRINT-EXIT-IF-LIST-EXHAUSTED caused an early exit.
173 - Macro expansion was not looking in the local environment
174 properly for local definitions.
175 - Circular weak pointers can now be printed when *PRINT-CIRCLE*
176 is T.
177 - "foo.lisp.*" is interpreted to have version :wild, just like
178 "foo.lisp.~*~".
179 - DIRECTORY will report all versions of a file if the pathname
180 has version :wild.
181 - Fixed bug with CLX on MacOS X where the WM-SIZE-HINTS were
182 larger than CLX expected. Replaced card16 with card32.
183 - Callbacks on sparc that returned double-floats were sometimes
184 causing a sigbus error.
185 - Type specifiers like (float low high) where low and high were
186 outside the range of single-float numbers no longer cause
187 compiler errors.
188 - Fix source-form reporting in the disassembler.
190 - FILE-POSITION was incorrectly set for simple-streams after a
192 - Printing 1d23 no longer causes an error.
193 - Work around the problem of (concatenate 'fixnum '(1)) causing
194 deletion of all following code.
195 - A directory with a component of :WILD was not correctly
196 handled.
197 - CREATE-INET-LISTENER was missing a call to htonl.
199 - Type derivation for logior and logxor was broken.
201 warning and causes code including the function return to be
202 deleted, where f is a single-float array and d is a
203 double-float array.
204 - COUNT for bit arrays was sometimes failing to include the
205 count from the last 32-bits of the array.
206 - The default heap size was causing CMUCL to fail on Solaris
207 10. Change the default so this doesn't happen. (The real
208 cause is unknown.)
209 - In some cases, the compiler was spending large amounts of time
210 deriving union of a bunch of disjoint integer intervals. If
211 the union is long enough, we give up and just return the
212 smallest new interval that contains all of the disjoint
213 intervals. (This needs a better fix.)
214 - The :WHEREIN option to TRACE handles methods now.
215 - The maximum dynamic space size was wrong on Linux.
216 - Type inferencing for OPEN was broken when :IF-DOES-NOT-EXIST
217 was given and was not a compile-time constant.
218 - ~G output always had a zero for the last digit when
219 exponential form was used. Fix this so the last digit has the
220 correct digit.
222 (make-broadcast-stream)) silently discards output instead of
223 producing an error.
225 incorrect results.
226 - COPY-SEQ sometimes produced erroneous results because the
227 compiler was confused by the derived result type of COPY-SEQ.
228 - Many (all?) compiler failures about a STRANGE-TEMPLATE-FAILURE
229 should be fixed.
230 - Type derivation for LOGAND is fixed. (Affects LOGAND and
232 - Type derivation for SCALE-FLOAT is fixed. Should also work
233 better on x86. (But there are still bugs in x86's handling of
234 single-floats.)
235 - generic-site.lisp won't give an error when updating
236 *HERALD-ITEMS* when the -quiet flag is used.
237 - The disassembler handles closures better.
238 - The result array for bit-* operations was sometimes too short
239 if the args had fill pointers.
240 - Weak hash tables no longer cause GC to go into an infinite loop.
241 - (PEEK-CHAR nil s nil foo) doesn't remove the character
242 that was read if FOO happens to match the character that
243 PEEK-CHAR returns.
244 - PROFILE no longer crashes when an internal data structure was
245 set to a non-boolean value.
246 - Regressions in float printing with ~F, ~E, and ~G are fixed.
247 - OPEN-X-STREAM accepts :INTERNET as a valid protocol again.
249 * Other changes:
251 - Infinite loops in map and friends caused by specifying
252 sequence types that are too hairy for CMUCL should no longer
253 occur. But CMUCL will now signal an error, which may not be
254 compliant either.
255 - Compiler is a little smarter in deriving the result type of
256 MAP.
258 as the host slot instead of filling in the host slot from the
259 defaults.
260 - CMUCL/sparc should now run on Solaris 10. This port no longer
261 uses the reserved register %g7 anymore. The heap size is now
262 rounded to a multiple of 8 MB. Without this, CMUCL eventually
263 gets a GC error on Solaris 10 when using gencgc. There appear
264 to be no problems with Cheney GC on Solaris 10.
265 - The config script uses REQUIRE instead of LOAD to load up
266 CMUCL's system libraries so there are no package-lock errors.
267 - REQUIRE no longer disables package-locks when loading
268 requested file. But package-locks are disabled for CMUCL's
269 own system libraries like gray-streams, clx, etc.
270 - CMUCL should fail gracefully on x86 if something is already
271 mapped at addresses CMUCL wants for itself. Previously, CMUCL
272 would just use it.
274 * Improvements to the PCL implementation of CLOS:
276 - AMOP-style custom slot allocation supported.
277 - The value of a slot that is specified as shared in the old
278 class and as local in the new class is now retained.
279 - CMUCL supports using the class name for the :metaclass
280 argument.
282 * Changes to rebuilding procedure:
284 - Added a new script to run all of the subscripts needed to
285 build CMUCL. Won't handle all cases, but will handle the most
286 common builds.
290 This release is not binary compatible with code compiled using CMUCL
291 19a; you will need to recompile FASL files.
293 See <URL:http://www.cons.org/cmucl/> for download information,
294 guidelines on reporting bugs, and mailing list details.
297 We hope you enjoy using this release of CMUCL!

  ViewVC Help
Powered by ViewVC 1.1.5