This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: Cygwin Perl and Module Math::BigInt
- From: "Gerrit P. Haase" <freeweb at nyckelpiga dot de>
- To: Tels <perl_dummy at bloodgate dot com>
- Cc: tphan at iqrinc dot com, cygwin at cygwin dot com, cpan-testers at perl dot org
- Date: Wed, 14 Nov 2001 21:23:17 +0100
- Subject: Re: Cygwin Perl and Module Math::BigInt
- Organization: convey Information Systems GmbH
- References: <KLN303589B45@koeln.convey.de>
- Reply-to: "Gerrit P. Haase" <cygwin at cygwin dot com>
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
>>#----- Cygwin perl returns: NaN
>>
>>#----- ActiveState perl returns : -281474976710656
That is not correct, cygwin perl returns the same as Activestate:
#35: got -281474976710656
with or without Math::BigInt->new().
> 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
;)
Gerrit
--
convey Information Systems GmbH http://www.convey.de/
Vitalisstraße 326-328
Gerrit P. Haase D-50933 Köln
gerrit.haase@convey.de Fon: ++49 221 6903922
--
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/