59 
number with >= 106 bits of precision (about 33 digits). Known 
number with >= 106 bits of precision (about 33 digits). Known 
60 
issues: 
issues: 
61 


62 
* If you are expecting IEEEstyle behavior, you don't get it: 
* IEEEstyle floating point behavior is not supported: 
63 
 signed zeroes aren't really available. 
 signed zeroes exist but arithmetic operations may not 
64 

produce the correct signed zeroes. 
65 
 overflows don't return infinity but return NaN instead. 
 overflows don't return infinity but return NaN instead. 
66 
 rounding might not be quite the same as IEEE 
 rounding might not be quite the same as IEEE. 
67 
 SQRT is not accurate to the last bit, as required by IEEE. 
 SQRT is not accurate to the last bit, as required by IEEE. 
68 
* Multiplying by a number very close to 
* Multiplying by a number very close to 
69 
mostpositivedoublefloat will produce an error even if the 
mostpositivedoublefloat will produce an error even if the 
70 
result does not overflow. (This is an artifact of how 
result does not overflow. (This is an artifact of how 
71 
multiplication is done. I don't have a solution to this.) 
multiplication is done.) 
72 
* Read/write consistency is not working. (Because conversion 
* Read/write consistency is not working. (Because conversion 
73 
from a bignum to a doubledoublefloat doesn't really 
from a bignum to a doubledoublefloat doesn't really 
74 
understand the internal doubledoublefloat format.) 
understand the internal doubledoublefloat format.) 
75 
* INTEGERDECODEFLOAT and SCALEFLOAT aren't "inverses". 
* INTEGERDECODEFLOAT and SCALEFLOAT aren't "inverses". 
76 
That is, you can't take the result of integerdecodefloat 
That is, applying the result of integerdecodefloat to 
77 
and use scalefloat to produce exactly the same number. 
scalefloat does not produce exactly the same number. This 
78 
This is because of how bignums are converted to 
is because of how bignums are converted to doubledoubles. 

doubledoubles. 

79 
* FLOATDIGITS always returns 106 even though there could be 
* FLOATDIGITS always returns 106 even though there could be 
80 
more bits. (Consider the doubledouble (1d0,1d200)). This 
more bits. (Consider the doubledouble (1d0,1d200)). This 
81 
will show up in PRINT where the printed result will have way 
will show up in PRINT where the printed result will have way 
83 
number back won't give the same value. 
number back won't give the same value. 
84 
* There is probably more consing than is necessary in many of 
* There is probably more consing than is necessary in many of 
85 
the standard Common Lisp functions like floor, ffloor, etc. 
the standard Common Lisp functions like floor, ffloor, etc. 
86 
* The special functions are not fully tested. I did a few 
* The special functions are not fully tested. A few random 
87 
random spot checks for each function and compared the 
spot checks were done for each function and maxima was used 
88 
results with maxima to verify them. 
to verify the results. 
89 
* The branch cuts for the special functions very likely will 
* The branch cuts for the special functions very likely will 
90 
not match the doublefloat versions, mostly because we don't 
not match the doublefloat versions, mostly because we don't 
91 
have working signed zeroes. 
have working signed zeroes. 
92 
* Type derivation for doubledoublefloats might not be 
* Type derivation for doubledoublefloats might not be 
93 
working quite right. 
working quite right. 
94 
* PI is still a doublefloat. If you want a doubledouble 
* PI is still a doublefloat. The doubledouble version of pi 
95 
version of pi, it's KERNEL:DDPI. (Soon to be EXT:DDPI.) 
is EXT:DDPI. 
96 
* There are probably still many bugs where doubledoublefloat 
* There may be bugs where doubledoublefloat support was 
97 
support was overlooked. 
overlooked. 
98 
* The doubledouble arithmetic operations can be inlined by 
* The doubledouble arithmetic operations can be inlined by 
99 
specifying (SPACE 0). Otherwise, they are not inlined. 
specifying (SPACE 0). Otherwise, they are not inlined. 
100 
(Each doubledouble operation is about 20 FP instructions.) 
(Each doubledouble operation is about 20 FP instructions.) 
131 
 An error is signaled if a declaration is used as the name of a 
 An error is signaled if a declaration is used as the name of a 
132 
deftype, condition, or defstruct, and vice versa. 
deftype, condition, or defstruct, and vice versa. 
133 
 An error is signaled when trying to generate a namestring from 
 An error is signaled when trying to generate a namestring from 
134 
a pathname with just a version component (other than nil, 
a pathname with just a version component (other than NIL, 
135 
:newest, or :unspecific). CMUCL cannot print that readably. 
:NEWEST, or :UNSPECIFIC). CMUCL cannot print that readably. 
136 
 FLET and LABELS functions will catch errors in keyword 
 FLET and LABELS functions will catch errors in keyword 
137 
parameters. Previously, a keyword of NIL was silently 
parameters. Previously, a keyword of NIL was silently 
138 
accepted. 
accepted. 
173 
out to C varargs functions. Now we always copy any float args 
out to C varargs functions. Now we always copy any float args 
174 
to the corresponding int regs (or stack) as required by the 
to the corresponding int regs (or stack) as required by the 
175 
ABI. This isn't necessary for nonvarargs functions, but 
ABI. This isn't necessary for nonvarargs functions, but 
176 
CMUCL doesn't know functions which are varargs functions. 
CMUCL doesn't know which functions are varargs functions. 
177 
 Callbacks with longlong args or results should work correctly 
 Callbacks with longlong args or results should work correctly 
178 
now for Darwin/ppc. 
now for Darwin/ppc. 
179 
 DESCRIBE no longer depends on having PCL loaded. 
 DESCRIBE no longer depends on having PCL loaded. 
180 
 Tracing with no encapsulation appears to be working now for 
 Tracing without encapsulation appears to be working now for 
181 
ppc. 
ppc. 
182 
 A simple interface to sysinfo(2) has been added for sparc. 
 A simple interface to sysinfo(2) has been added for sparc. 
183 
This is used to provide better values for MACHINETYPE and 
This is used to provide better values for MACHINETYPE and 
212 
 (expt 1 <big number>) doesn't trigger a continuable error 
 (expt 1 <big number>) doesn't trigger a continuable error 
213 
anymore and returns 1 immediately. 
anymore and returns 1 immediately. 
214 
 Disassembling methods doesn't produce a type error anymore. 
 Disassembling methods doesn't produce a type error anymore. 
215 
 The unknown condition type 'LISP:SOCKETERROR has been fixed. 
 The unknown condition type LISP:SOCKETERROR has been fixed. 
216 
It properly signals the EXT:SOCKETERROR condition now. 
It properly signals the EXT:SOCKETERROR condition now. 
217 
 The accuracy of the trig functions (sin, cos, tan) for large 
 The accuracy of the trig functions (sin, cos, tan) for large 
218 
arguments has been improved for x86 and ppc. Sparc already 
arguments has been improved for x86 and ppc. Sparc already 
226 
been fixed. (CMUCL would sometimes crash to ldb about weird, 
been fixed. (CMUCL would sometimes crash to ldb about weird, 
227 
invalid objects.) There are, however, still issues with weak 
invalid objects.) There are, however, still issues with weak 
228 
pointers. 
pointers. 

 Hash table entries with a key and value of :EMTPY now work as 


expected. 


 EXT:READVECTOR can read binary data from streams with element 


type BASECHAR or CHARACTER. 

229 


230 
* Trac Tickets 
* Trac Tickets 
231 
3. withoutpackagelocks doesn't work with defmacro 
3. withoutpackagelocks doesn't work with defmacro 
260 
the value of h_errno is returned. 
the value of h_errno is returned. 
261 
 A warning is printed when creating a weak key hash table with 
 A warning is printed when creating a weak key hash table with 
262 
a test different from EQ. 
a test different from EQ. 
263 

 An SCM and project management system is now available at 
264 

http://trac.commonlisp.net/cmucl. Please use this to submit 
265 

tickets, documentation, project requests, etc. 
266 


267 
* Improvements to the PCL implementation of CLOS: 
* Improvements to the PCL implementation of CLOS: 
268 


269 
* Changes to rebuilding procedure: 
* Changes to rebuilding procedure: 