[cmucl-cvs] [git] CMU Common Lisp tag double-double-init-sparc created. 6bfb74d1ee4ca8d1eff43fda0a3533f507b6e2f7

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
participants (1)
-
Raymond Toy