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