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 -----------------------------------------------------------------
commit 6bfb74d1ee4ca8d1eff43fda0a3533f507b6e2f7
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.
compiler/generic/interr.lisp:
o Add new error
compiler/generic/new-genesis.lisp:
o Dump double-double-float objects (barely tested)
compiler/generic/primtype.lisp:
o Tell compiler about the new primitive type double-double-float.
compiler/generic/vm-fndb.lisp:
o Make double-double-float-p a known function.
compiler/generic/vm-type.lisp:
o Update FLOAT-FORMAT-NAME to include double-double-float
compiler/generic/vm-typetran.lisp:
o Tell compiler about double-double-float type predicate.
compiler/sparc/float.lisp:
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.
compiler/sparc/parms.lisp:
o Define double-double-float-digits
compiler/sparc/type-vops.lisp:
o Define double-double-float type vop
o Adjust number hierarchy to include double-double-float
compiler/sparc/vm.lisp:
o Define the necessary storage class and storage base for the
double-double-reg and double-double-stack.
lisp/gencgc.c:
o Tell GC about double-double-float objects.
lisp/purify.c:
o Tell purify about double-double-float objects.
code/class.lisp:
o Add the new double-double-float class.
code/exports.lisp:
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.)
code/float.lisp:
o Implement some of the necessary functions to support
double-double-float.
code/hash-new.lisp:
o Hash double-double-floats by xor'ing the hashes of each double-float
part. (Is that good enough?)
code/irrat.lisp:
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.
code/kernel.lisp:
o Make make-double-double-float, double-double-hi, and
double-double-lo known functions.
code/lispinit.lisp:
o Register the :double-double float feature.
code/load.lisp:
o Add FOP for reading double-double-float values from fasls. (Barely
tested, if at all.)
code/numbers.lisp:
o Implement basic arithmetic operations for double-double-floats.
This needs quite a bit of work to clean up, but most things work.
code/pred.lisp:
o Tell the type system about double-double-float type.
code/print.lisp:
o Add very rudimentary printing for double-double-float. Basically
copied from code written by Richard Fateman, with permission.
code/seq.lisp:
o Tell coerce how to coerce things to a double-double-float.
code/type.lisp:
o Tell type system about the new float format double-double-float and
how numeric contagion works with double-double-float.
code/dump.lisp:
o Tell dumper how to dump double-double-float values to a fasl.
compiler/float-tran.lisp:
o Add appropriate deftransforms to handle conversion of things to
double-double-float and from from double-double-float to other float
types.
o The basic implmentation of double-double-float arithmetic is also
here.
o Add deftransforms to tell the compiler how to do basic arithmetic
and comparisions on double-double-float numbers.
compiler/srctran.lisp:
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.
-----------------------------------------------------------------------
hooks/post-receive
--
CMU Common Lisp