This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin Perl and Module Math::BigInt


-----BEGIN PGP SIGNED MESSAGE-----

Moin,

On 14-Nov-01 Gerrit P. Haase tried to scribble about:
> Hallo Tels, 
> 2001-11-14 21:12:13, du schriebst:
> 
>>>  I tried to 'make test' on the the Convert:ASN1 and it kept fail at
>>>  place where the Math::BigInt always returns NaN.
>>>
>>>  I cut out the segment below and ran it and sure enough, it return
>>>  NaN in Cygwin Perl.  However, the same script return a number in
>>>  ActiveState Perl:
>>>
>>>#--------------------------
>>>use strict;
>>>use Math::BigInt;
>>>
>>>my $num = Math::BigInt->new(-1 * (1<<24) * (1<<24));
>>>
>>>print "$num\n";
>>>
>>>exit;
>>>
>>>#----- Cygwin perl returns:  NaN
>>>
>>>#----- ActiveState perl returns :  -281474976710656
>>>
>>> Any idea how to fix this in Cygwin?  Thank in advance!
> 
>> The scalar probably overflowed and returned "NaN" so that BigInt also
>> produced a "NaN".
> 
>> On my Linux 32 bit box it produces the same number than Activestate.
> 
>> What version of Bigint do you have? And what does Perl print without the
>> bigInt->new() around the expression?
> 
> Without Math::BigInt->new() (I added several print statements):
> 
> $ perl t/06bigint.t
> 1..35
> [...]
> $num is now: -2.8147497671066e+14
>#32: expecting hex:0207ff000000000000
>#32:       got hex:0207fefffffffffffc
>#line 93 t/06bigint.t
> not ok 32
> ok 33
> ok 34
>#35: expecting -2.8147497671066e+14
>#35:       got -281474976710656
>#line 96 t/06bigint.t
> not ok 35
> 
> If I change it back:
> 
> $num is now: -281474976710660
>#32: expecting hex:0207ff000000000000
>#32:       got hex:0207fefffffffffffc
>#line 90 t/06bigint.t
> not ok 32
> ok 33
> ok 34
>#35: expecting -281474976710660
>#35:       got -281474976710656
>#line 93 t/06bigint.t
> not ok 35

Ah! I didn't know about these failures. Were do they occur? In bleadperl?
In previous Perl versions, or in my latest release? Or is this inside
Convert:ASN1?

>>>#----- Cygwin perl returns:  NaN
>>>#----- ActiveState perl returns :  -281474976710656
> That is not correct, cygwin perl returns the same as Activestate:
>#35:       got -281474976710656

So, it got fixed in the meantime, or you have a different Cygwin platform
than the original poster ;)

> with or without Math::BigInt->new().

Thew new() shouldn't actually change the value of the expression, otherwise
I did bad work ;)

>>  perl -MDev::Bollocks -e'print Dev::Bollocks->rand(),"\n"'
> cnt: 5 for 1 sum: 1
> cnt: 5 for 2 sum: 1
> cnt: 5 for 3 sum: 2509
> cnt: 5 for 4 sum: 205657
> return 4
> autoschediastically scale B2C CEOs

Sorry, I accidentily forgot to disable some debug output in Math::String
v1.16. Will be fixed in v1.17 whenever I find time to tidy up the new
release ;) 

Tels

- --
 "Why do you go so slowly? Do you think this is some kind of game?"
 PGP key available on http://bloodgate.com/tels.asc or via email.
 perl -MDev::Bollocks -e'print Dev::Bollocks->rand(),"\n"'
 apprehensively promote professional markets



-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: latin1

iQEVAwUBO/L+yncLPEOTuEwVAQEWzAf/VaDsnexgD+G30Y0xlmcG/enZcTuPgHJR
UoMHWv12QDQjE+Jxw920l4ZunHvsIHXyPFxac/DVi4lV0QO0Loh8P7Wm9BiYysr7
n3S1LjNXVydUvhpuOXroSniONzTFL/c5vIkahqHeJ8QJTrnbA7xf6SLUFeP/5gFF
OtnUr6RIn+3mj6Cs8z5xuc5rY6Xi4HTzvsLSmOfnlgmkj5PyrXghKeNV6jsKtup/
uhpr4BAtLVWf1lWR+afR7YnOouUdm6Vn9yACJU/MzHaHNzEo4AkYvKwPqsPQ8FrI
9o4j640rKUvarJpB/jyUDc/h6fnunVBOpsKRHpRNeJxj35MiaO1ZEg==
=Uel9
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]