Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Wed, 14 Nov 2001 21:23:17 +0100 From: "Gerrit P. Haase" X-Mailer: The Bat! (v1.53t) Business Reply-To: "Gerrit P. Haase" Organization: convey Information Systems GmbH X-Priority: 3 (Normal) Message-ID: <8514151749.20011114212317@familiehaase.de> To: Tels CC: tphan AT iqrinc DOT com, cygwin AT cygwin DOT com, cpan-testers AT perl DOT org Subject: Re: Cygwin Perl and Module Math::BigInt In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit 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 DOT haase AT convey DOT 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/