----- Original Message ----- From: "Orion Poplawski"

a difference in the sign of 0. The -0 result appears to be more "correct" in that that is what is present in both the C and perl x86_64 tests. This is pretty baffling to me. Thoughts?

Which version of perl ?
I know that 5.14.0 (and probably later, too) can be particularly bad at honouring the sign of zero.

For example:
#########################
use warnings;
use Devel::Peek;

use Inline C => <<'EOC';

SV * foo() {
    double d = -0.;
    return newSVnv(d);
}

EOC

$x = foo();
print $x, "\n";
Dump($x);
#########################

On my build of 5.14.0, the print() will claim that the value is "0", even though the Dump() correctly shows that the the NV slot contains "-0".
Earlier builds of perl seem fine, however.

If the particular perl was built using one compiler, and PDL-Graphics-PLplot (or even plplot) was built using a different compiler, then there's also the possibility that you're seeing a bug in the way that one of those compilers handles the signed zero .... but I'd mainly be suspicious of perl.

I think those failures you see invalidate the tests, rather than demonstrate a failing of the module itself.

Cheers,
Rob



_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to