-----Original Message-----
From: Chris Marshall
t/attribPDL.t ..... Invalid type 'q' in pack at Basic/Core/Core.pm.PL
(i.e.
PDL::Core.pm) line 1318.
# Looks like your test exited with 255 before it could output anything.
t/attribPDL.t ..... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 13/13 subtests
This looks like a bug in the longlong support since if the perl does not
support 64bit ints, then it doesn't support the qQ pack options.
Maybe you could track this down.
Line 1318 of Basic/Core/Core.pm.pl (PDL-2.007) is found in sub PDL::new() :
${$new->get_dataref} = pack( $pack[$new->get_datatype], $value );
The line of code in t/attribPDL.t that generates the error is:
$dataset->attrSet('IDLONG'=>pdl(longlong,123456789123456784));
And the simplest demo of the error is:
C:\>perl -MPDL -e "$x=pdl(longlong, 1);"
Invalid type 'q' in pack at Basic/Core/Core.pm.PL (i.e. PDL::Core.pm) line
1318.
The following, however, are permitted:
C:\>perl -MPDL -le "$x=pdl(longlong, [1]);print $x"
[1]
C:\>perl -MPDL -le "$x=pdl(longlong, [123456789123456784]);print $x;"
[1.23456789123457e+017]
HDF5.xs:2164:9: warning: overflow in implicit constant conversion
[-Woverflow]
It looks like this value should be a size_t type rather than int.
If I make the change it seems to work here. I've attached a
patchfile with that change. Does it work?
Yes.
I actually misreported the warning. Turns out it doesn't happen on
64-bit-integer builds of 32-bit perl; happens only with 64-bit builds of
perl.
So size_t seems to be the correct type.
Cheers,
Rob
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl