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 ClarkThread Previous | Thread Next