At 9:06 PM -0500 8/25/04, Peter Behroozi wrote:
On Wed, 2004-08-25 at 13:03 -0400, Dan Sugalski wrote:
 Okay, as has been suggested, the type order for numbers should go:

     int->bignum->float

 owing to the fact that floats are lossy and nasty. I'm not entirely
 sure I agree, given that floats are supported in hardware and faster
 (I've gotten a suggestion that we only do float and bignum for PMCs,
 since float ops are nearly as fast as int ops, and there are more
 bits, but the quiet loss of precision bothers me enough that I'm not
 sure I'm up for that) but it's a sensible argument.

Can't this be something config-able?

Nope. If it is then you get some pretty significant changes in behaviour for the same bytecode depending on what machine it's running on, which is something I'd like to avoid if we can.


On my machine,

perl -e '$c++ while ((2**$c)!=(2**$c + 1)); print ($c-1)'

prints 52, which seems a lot better than the ~32 available for most
people's ints.  I can't imagine immediately any reason why the promotion
to a bignum for >52 bit ints would be conceptually different than a
promotion to a double for >32 bit ints.  Did I accidentally delete some
important bits of the conversation?

The big problem with going to floats is the quiet loss of precision--there's no portable way (or non-portable way, so far as I know) to tell that a float has started dropping bits on us.
--
Dan


--------------------------------------it's like this-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to