[cmucl-cvs] [git] CMU Common Lisp tag double-double-init-sparc created. 6bfb74d1ee4ca8d1eff43fda0a3533f507b6e2f7
rtoy at common-lisp.net
Tue Oct 11 17:28:51 UTC 2011
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".
The tag, double-double-init-sparc has been created
at 6bfb74d1ee4ca8d1eff43fda0a3533f507b6e2f7 (commit)
- Log -----------------------------------------------------------------
Author: rtoy <rtoy>
Date: Fri Jun 9 16:05:19 2006 +0000
Add basic support for kernel:double-double-float type. The primitive
type is there, and basic arithmetic operations work as well as PRINT.
But many things do not work: No reader, formatted output, many mixed
type arithmetic operations, special functions are just double-float
values, coerced to double-double-float.
o Add new error
o Dump double-double-float objects (barely tested)
o Tell compiler about the new primitive type double-double-float.
o Make double-double-float-p a known function.
o Update FLOAT-FORMAT-NAME to include double-double-float
o Tell compiler about double-double-float type predicate.
o Add necessary vops to move double-double-float args, store and load
double-double-floats to/from the double-double-stack,
double-double-reg moves, box and unbox double-double-floats, move
double-double-floats to and from args
o Add necessary vops to create a double-double-float and to extract
the high and low parts out of a double-double-float.
o Define double-double-float-digits
o Define double-double-float type vop
o Adjust number hierarchy to include double-double-float
o Define the necessary storage class and storage base for the
double-double-reg and double-double-stack.
o Tell GC about double-double-float objects.
o Tell purify about double-double-float objects.
o Add the new double-double-float class.
o Add the necessary symbols to the various packages. (This is
important to get right otherwise there's confusion on what symbol
really represents double-double-float stuff.)
o Implement some of the necessary functions to support
o Hash double-double-floats by xor'ing the hashes of each double-float
part. (Is that good enough?)
o Implement the special functions by calling the double-float versions
and coercing the result to a double-double-float. This is needed to
get type-derivation working, but the precise value isn't that
important right now. We'll have to implement them later.
o Make make-double-double-float, double-double-hi, and
double-double-lo known functions.
o Register the :double-double float feature.
o Add FOP for reading double-double-float values from fasls. (Barely
tested, if at all.)
o Implement basic arithmetic operations for double-double-floats.
This needs quite a bit of work to clean up, but most things work.
o Tell the type system about double-double-float type.
o Add very rudimentary printing for double-double-float. Basically
copied from code written by Richard Fateman, with permission.
o Tell coerce how to coerce things to a double-double-float.
o Tell type system about the new float format double-double-float and
how numeric contagion works with double-double-float.
o Tell dumper how to dump double-double-float values to a fasl.
o Add appropriate deftransforms to handle conversion of things to
double-double-float and from from double-double-float to other float
o The basic implmentation of double-double-float arithmetic is also
o Add deftransforms to tell the compiler how to do basic arithmetic
and comparisions on double-double-float numbers.
o Fix a bug in interval-range-info when :low is 0dd0 and :high is 0.
We weren't returning the right value, which confuses interval-div,
which caused an infinite loop because we couldn't split the
numerator into positive and negative parts.
o Tell other parts about double-double-float.
CMU Common Lisp
More information about the cmucl-cvs