develooper Front page | perl.perl5.porters | Postings from March 2013

Re: [perl #117315] [Win32, 5.17.10] infinity is zero

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
March 25, 2013 19:30
Subject:
Re: [perl #117315] [Win32, 5.17.10] infinity is zero
Message ID:
20130325193042.GH3729@plum.flirble.org
On Mon, Mar 25, 2013 at 12:08:06PM -0700, bulk88 via RT wrote:
> On Sat Mar 23 21:15:58 2013, sisyphus wrote:

> > Perl correctly evaluates 2**1e15 as infinity.
> > But it evaluates 2**1e16 as 0. For exponents greater than 16, 0
> > is also returned. (This shows up in one of the
> > t/op/sprintf2.t tests as a 'divide-by-zero' error.)
> 
> I think the problem is only on (newer?) Mingw/GCC Win64 Perl, using my
> VC 2008 Win64 Perl I get

> I'll make a random guess and say something changed in spec file for
> Mingw64 4.7.0 that sisyphus is using. I don't really use GCC, so I can't
> debug or research any further, but I think there is a bug or something
> that has to be fixed here, or atleast when Strawberry 5.18 is created
> with a 4.7 or 4.8 series GCC this will be brought up again. This ticket
> needs more opinions.

That's a good point, about avoiding future repeat bug reports.

So, here's an opinion...

We've never been averse to working around compiler or library bugs if it's
practical to do so. So, if there's a good way to detect this one (is it
known at build time, or can it change at runtime due to a using a different
version of the relevant DLL?) and a good way to fix it, then the core can
be patched to conditionally compile the relevant workaround when needed.

But if that's not possible, how to avoid it is really going to have to be
something that the Strawberry folks figure out. eg - if it's a particular
compiler version, use a different compiler version which doesn't have the
bug.

Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About