status on numbers

Matthew Dempsky <[email protected]> Mon, 12 Jan 2004 08:53:46 +0100
Newsgroups gmane.lisp.scheme.pika.devel
Message-ID <[email protected]>
Yesterday my network connection was out so I wasn't able to commit
anything to my archive, but this morning I finally committed patch-37
to my scm--numbers branch which fixed everything so all my new code
compiles.  I haven't written any unit tests yet, but I'm fairly happy
with the state of things.

Basically here's how it goes:

* NUMERIC_BINOP and NUMERIC_MONOP still need to be fixed to not
  destroy their arguments.

* scm_multiply needs a safe way to detect overflow when multiplying to
  fixnums - I was lazy and just use the built-in multiplication
  routine which will work as long as there isn't overflow.

* scm_quotient, scm_remainder, scm_modulo, scm_rationalize, and
  scm_expt still need to be implemented.

* The transcendental functions (sin, exp, etc.) still need to be
  implemented for complex numbers.  (SISC's code uses hyperbolic
  functions which don't exist in R5RS, but I might add them anyways
  unless there are any objections.)

* I originally implemented scm_truncate using trunc() from math.h only
  to find out it's only available in C99, so it's commented out at the
  moment.

* (sqrt 4) => 2.0

* scm_raise_for_binop isn't implemented yet for complex types.

I'm going to try to port some unit tests and benchmarks over to C so I
can verify that I'm getting the right results from this and I probably
won't move the code into scm--integration until I'm more confident in
this work.  (This is the first time it's compiled since patch-13.)

I also started hacked together a simple stop-and-copy garbage
collector, but it's not commited yet.  Once I get some more free time
later today I'll try to setup another spot in my archive for it.

-jivera