At 01:31 PM 12/27/00 -0800, Daniel Chetlin wrote:
>On Wed, Dec 27, 2000 at 04:08:00PM -0500, Uri Guttman wrote:
> > i can see things changing very easily. but to me, how perl handles
> > overflow is a language semantic as much as implementation. in 5 it is
> > well defined (ilya not withstanding) and you are talking bigint stuff
> > which scares me. i don't think that should be the default in any case. i
> > would want my perl numbers to be float or ints and bring in bigint as
> > you said by pragma or attribute.
>
>Which of these two behaviors do you find more useful:
>
> [~] $ perl -le'$c=1;$c*=$_ for (2..170);print $c'
> 7.25741561530799e+306
> [~] $ perl -le'$c=1;$c*=$_ for (2..171);print $c'
> inf
>
>(The following are wrapped lines -- they come out all in one line
>originally)
>
> [~] $ ruby -e'c=1;(1..170).each{|i| c *= i};p c'
> 725741561530799896739672821112926311471699168129645137654357779890056-
> 184340170615785235074924261745951149099123783852077666602256544275302-
> 532890077320751090240043028005829560396661259965825710439855829425756-
> 896631343961226257109494680671120556888045719334021266145280000000000-
> 0000000000000000000000000000000
>
> [~] $ ruby -e'c=1;(1..1500).each{|i| c *= i};p c'
> <snipped 4115 digits for brevity>
>
>Oh, and in case you're wondering, both of the Ruby commands are *fast*.
>As compared to our core module, Math::BigInt, which is slower than
>molasses even after you bother to `use' it, deal with the interface, and
>do things by hand.
BigInt and BigFloat are both pure perl, and as such their speed leaves a
*lot* to be desired. Fixing that (at least yanking some of it to XS) has
been on my ToDo list for a while, but other stuff keeps getting in the
way... :)
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk