ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.29 - (show annotations)
Fri Jan 9 14:13:44 2009 UTC (5 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2009-01
Changes since 1.28: +5 -0 lines
File MIME type: text/plain
Update from commit logs.
1 ========================== C M U C L 19 f =============================
3 [--- WORK IN PROGRESS ---]
5 The CMUCL project is pleased to announce the release of CMUCL 19f.
6 This is a major release which contains numerous enhancements and
7 bugfixes from the 19e release.
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.
19 New in this release:
22 * Feature enhancements:
23 - ~R supports many more cardinal names.
24 - Updated network support:
25 o Added BIND-INET-SOCKET to bind a socket to a local address.
26 o Added OPEN-NETWORK-STREAM to create a stream connected to a given host.
27 o Added ACCEPT-NETWORK-STREAM to create a stream connected to
28 the new network connection
29 o Updated CONNECT-TO-INET-SOCKET to allow binding the newly
30 created socket to a local address
31 - Added UNIX:UNIX-OPENPTY, an interface to the openpty C library
32 function.
33 - SSE2 support added for x86.
34 o CMUCL automatically detects whether sse2 is supported or not
35 and loads up the appropriate core file.
36 o New -fpu switch allows the user to specify explicitly which
37 core should be used. The valid values are x87, sse2, or auto
38 (the default).
39 o Fasls compiled with sse2 support have the extension sse2f.
40 Otherwise, the normal x86f extension is used. This allows the
41 user to do tests/experiments with both x87 and sse2 without
42 having to mess around with different directories and removing
43 fasls before building for a different FPU.
44 o If the chip supports sse2, but CMUCL can't find the sse2 core,
45 CMUCL will try to fall back to the x87 core. (This only
46 happens if -fpu is auto.)
47 - Command line parsing now recognizes the option "--". Everything
48 after "--" is not subject to CMUCL's command line parsing, and
49 everything after the "--" is placed in the new variable
52 * ANSI compliance fixes:
53 - Fix bug in backquote printer. If the variable is @foo, we want
54 to print ", @foo" not ",@foo". Similarly, for .foo, we want to
55 print ", .foo" instead of ",.foo".
56 - Fix merging of version in MAKE-PATHNAME. If the pathname name
57 is given, the version is not affected by the version in the
58 default pathname.
59 - RENAME-FILE now creates defaulted-new-name from merging new-name
60 with the original filespec. This is an incompatible change from
61 the previous version which created defaulted-new-name from
62 merging the new-name with the truename of filespec. Also, a
63 logical pathname should be returned if new-name is a logical
64 pathname.
65 - Character names need to be a capital letter followed by lower
66 case. Needed to match what ~:C does. (Found via ansi-tests).
68 * Bugfixes:
69 - Compiler can now derive the rank of an array, even if the array
70 is not simple.
71 - Fix off-by-one bug in ~R which prevents printing numbers from
72 10^63 to 10^66-1. 10^63 is a vigintillion.
73 - The compiler and interpreter should now handle slot-value the
74 same. Previously, different results were returned for things
75 like (slot-value foo :a).
76 - UNIX-GETGRNAM is now defined for Darwin (x86 and ppc).
77 - UNIX-GETPWUID is defined for all BSD systems.
78 - Type-derivation for EXPT no longer causes errors in some
79 situations. The computed bounds were of the wrong type for the
80 resulting type specifier.
81 - Pathname printer no longer produces an error for (MAKE-PATHNAME
82 :HOST NIL :TYPE "foo"). It returns #P(:HOST NIL :TYPE "foo")
83 now.
84 - Type derivation for DOUBLE-DOUBLE-FLOAT arithmetic should be
85 working. Previously, all arithmetic operations would just
86 return DOUBLE-DOUBLE-FLOAT even though the compiler should have
87 been able to figure out a tighter result.
88 - When SCALE-FLOAT would underflow, it would always return 0f0,
89 instead of a floating-point zero of the correct type.
90 - Fix some issues in creating the debug arglist string when the
91 arglist contains items that can't be printed readably.
92 - DIRECTORY is now faster for directories with a large number of
93 files.
94 - RANDOM is now much faster on all platforms for numbers upto
95 #xffffffff. This is an incompatible change from previous
96 releases because the numbers produced may be different from
97 before.
98 - The small bias in RANDOM for integer args up to 32 bits long
99 should now be gone.
100 - Improved type derivation for LOGAND when one arg is bounded but
101 the other is not.
102 - Some issues with tracing on sparc and ppc have been fixed. This
103 usually manifests itself with a segfault just after the function
104 result is printed.
105 - Fixed bug on sparc where C-c sometimes causes a segfault. We
106 now handle the case where siginfo_t is NULL, which can also
107 happen on other architectures.
108 - The interpreter catches invalid EVAL-WHEN situations just like
109 the compiler, instead of silently ignoring them.
110 - FLOAT-PRECISION supports double-double floats.
111 - Tracing should now be working on Darwin/x86. Previously,
112 certain cases would cause Lisp to segfault in bad ways where you
113 could not return to the repl.
114 - The bounds for type (REAL lo hi) are computed better now. The
115 REAL type is a union of SINGLE-FLOAT, DOUBLE-FLOAT, and
116 DOUBLE-DOUBLE-FLOAT. The computed bounds for
117 DOUBLE-DOUBLE-FLOAT only had double-float accuracy if the bound
118 for REAL was a rational.
119 - The FLOAT type now requires that the bounds, if given, are
120 floats. Previously, any real type would be accepted. This
121 makes FLOAT behave like SINGLE-FLOAT and DOUBLE-FLOAT which
122 required the bounds to be a float of the appropriate type.
124 * Trac Tickets:
125 - #16: Read-time hash-table issue
126 Fixed.
127 - #17: LOOP NAMED NIL has no effect
128 Fixed.
129 - #18: Modular arith bug 1
130 Fixed
131 - #19: Modular arith bug 2
132 Fixed by not doing modular arith if the args are known to be
133 fixnums.
134 - #20: Modular arith bug?
135 Fixed via the fix for Trac #21. The original workaround has
136 been removed.
137 - #24: Float contagion for expt
138 Float contagion is applied to the arguments before computing
139 expt.
140 - #21: Modular arith bug 3
141 Fixed by delaying the logand defoptimizer.
142 - #15: x86 double-float issue
143 Fixed when using SSE2 support. We will not fix this for x87.
144 - #25: Compiler bug
145 Fixed.
146 - #26: slot-value type check
147 Fixed for some cases. When used in methods, slot-value may not
148 do the type check.if the object is not a argument to the method.
150 * Other changes:
151 - IS1, IS2, IS3, and IS4 are recognized character names for the
152 ASCII control codes US, RS, GS, FS, respectively.
154 - When initializing a random state, try to read 627 words from
155 /dev/urandom to initialize the entire state vector with random
156 bits. Previously, only one word was read.
157 - A seed of 0 is allowed in KERNEL:INIT-RANDOM-STATE.
158 - Updated User guide to include more examples of tracing.
159 - Enable gencgc page protection on x86/darwin. This can speed up
160 GC a bit. (Not measured.)
161 - Bignum truncate is significantly faster. Some cl-bench
162 benchmarks are now almost twice as fast.
163 - The continuable error produced by raising an integer to a power
164 exceeding *intexp-maximum-exponent* is now a restart, giving the
165 user the option to continue and update the limit to the new
166 power.
167 - The Darwin/x86 port can run on Mac OS X 10.4 or later.
169 * Improvements to the PCL implementation of CLOS:
170 - The compiler and interpreter should handle SLOT-VALUE the same
171 way. Previously, (SLOT-VALUE obj :a) would behave differently
172 in the compiler and interpreter.
173 - Some issues with get-accessor-method-function and
174 slot-value-using-class have been fixed.
175 Get-accessor-method-function was causing an error to be signaled
176 incorrectly.
177 - (setf (slot-value <obj> <slot>) <new>) will now signal an error
178 in some situations when the new value is not of the correct
179 declared type for slot.
181 * Changes to building procedure:
182 - For Linux, custom CFLAGS, CC, and LDFLAGS are supported.
183 Requested by Stelian Ionescu for Gentoo support.
184 - The FreeBSD config file is now named Config.x86_freebsd, which
185 is equivalent to Config.FreeBSD_gencgc.
187 This release is not binary compatible with code compiled using CMUCL
188 19e; you will need to recompile FASL files.
190 See <URL:http://www.cons.org/cmucl/> for download information,
191 guidelines on reporting bugs, and mailing list details.
194 We hope you enjoy using this release of CMUCL!

  ViewVC Help
Powered by ViewVC 1.1.5