[R6RS] fixnum operators and overflow detection
William D Clinger
will at ccs.neu.edu
Thu Apr 13 17:11:16 EDT 2006
I have run into some issues while revising the arithmetic
First of all, I'd like to use div0, mod0, and div0+mod0
instead of div2, mod2, and div2+mod2 as names for the
procedures that use remainders centered around 0. I find
the 0 more mnemonic than the 2's complement association,
and I know of several programs where div2 is a name for
dividing by two. Please express an opinion if you like.
Secondly, another naming issue: We have agreed to use
names like fixnum+ for fixnum operations that wrap,
and fx+ for fixnum operations that signal an error on
overflow. What about operations that can't possibly
overflow? Should we have fixnum<, or fx<, or both?
Most importantly, I'd like to know the rationale for
restricting the domains of fx+/carry, fx-/carry, and
fx*/carry to non-negative fixnums, and for requiring
them to return non-negative fixnums as results. That
surrenders one bit of precision for no purpose that I
can see, and also makes them less generally useful.
More information about the R6RS