Thanks for the fix Rob.  As I expected the longlong data type
is generated whether or not the perl can support that type.
We could fix the problem but I think the workaround is good
for now and the real fix can be for PDL3 type support rather
than hacking in another set of fixes to the PDL-2.x base.

--Chris

On Wed, Jan 22, 2014 at 8:45 AM,  <[email protected]> wrote:
>
>
> -----Original Message----- From: Chris Marshall
>
>>> 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]
>>
>>
>> Thanks, Rob.  Does Types.pm for the 32bit perl have a longlong section
>> with a packstr of 'q*'?
>
>
> Yeah - it doesn't look right. @pack certainly specifies a 'q*' for the
> PDL_LL type.
> There's very little difference between the 32-bit-integer Types.pm and
> 64-bit-integer Types.pm. (See attached Types.diff.)
> I'm also attaching the actual Types.pm for the 32-bit build of perl-5.16.0
> ... and the perl -V output of the very same perl-5.16.0 is in the attached
> V.txt.
>
>
>> In this case, it would probably be simpler to conditionalize the test and
>> not use 'longlong' unless the perl has support
>> for it (e.g., ivsize is 8).
>
>
> Ok - such a fixed version of t/attribPDL.t is also attached.
>
> Cheers,
> Rob

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

Reply via email to