There have been a number of CPAN Testers reports that die in the
make process due to an apparent inability to find the PDL typemap file.
The problem build die at the stage with calls like this:
/opt/perls/nothreads/perl-5.12.3/bin/perl "-I../../blib/arch" "-I../../blib/lib" Core.xs.PL Core.xs
Extracting Core.xs (WITH bad value support)
/opt/perls/nothreads/perl-5.12.3/bin/perl -I../../blib/arch -I../../blib/lib -I/opt/perls/nothreads/perl-5.12.3/lib/5.12.3/armv5tel-linux -I/opt/perls/nothreads/perl-5.12.3/lib/5.12.3 Core.xs.PL Core.xs
Extracting Core.xs (WITH bad value support)
/opt/perls/nothreads/perl-5.12.3/bin/perl /opt/perls/nothreads/perl-5.12.3/lib/5.12.3/ExtUtils/xsubpp -typemap /opt/perls/nothreads/perl-5.12.3/lib/5.12.3/ExtUtils/typemap -typemap typemap Core.xs > Core.xsc && mv Core.xsc Core.c
Could not find a typemap for C type 'PDL_Long *' in Core.xs, line 1195
I'm not sure if this is the usual usage but it seems all
of the failed builds of this type have the same error
message and the same explicit list of typemaps. For
reference, the URLs for a number of these test reports
are:
http://www.cpantesters.org/cpan/report/391455fc-ad94-11e0-b536-68bbcb8fbd6e
http://www.cpantesters.org/cpan/report/3e49bedc-b031-11e0-b683-5ea469fb41e3
http://www.cpantesters.org/cpan/report/83cb3418-b428-11e0-a497-f2228a8ea032
The latest PDL-2.4.9_004 developers release has *many* FAIL
and UNKNOWN reports all from this problem. Something is
broken but I don't know where. If you can reproduce this problem
then help with debugging would be appreciated.
See:
http://myjaanjikri.appspot.com/bugs.gentoo.org/show_bug.cgi?id=378689
and the 2 bug reports referenced therein. They're blaming the version of Extutils::ParseXS for this. (I note that in the 3 tester reports listed above, version 3.x of that module is being used, yet on my perl-5.14.0 the version number sits at 2.2210. Is 5.14.1 really shipping a 3.x version of ExctUtils::ParseXS ? Or is it just these particular testers who have elected to install a broken version of the module ?)
I tried to access the bug reports for ExtUtils::ParseXS to find out if this was a known issue, but rt.cpan.org is apparently down again.
I did however look at the Changes file for ExtUtils-ParseXS-3.03 and saw this:
###############################
3.03 - Thu Aug 11 08:24:00 CET 2011
- Test fix: Try all @INC-derived typemap locations. (CPAN RT #70047)
[Mike Sheldrake]
###############################
It'd be nice to know what's in #70047 ..... and whether the "Test fix" does indeed fix it.
Cheers,
Rob
I took a look at the Core.xs line and it is the XS for the setdims(x,dims)
routine at line 1413 in Core.xs.PL. There is a typedef for PDL_Long
as int in pdl.h but no mention of PDL_Long in the Basic/Core/typemap
file. Does that need an explicit typemap or should the xsubpp be
smart enough to figure it out?
To answer Rob's question, my Perl 5.14.1 from MacPorts still has ExtUtils::ParseXS at 2.2210, so it's probably just those testers that upgraded.
$ perl -MExtUtils::ParseXS -we 'print "$]\n$ExtUtils::ParseXS::VERSION\n";'
5.014001
2.2210
If we can reproduce the problem with the newer ExtUtils::ParseXS
then it might be interesting to see if adding a PDL_Long * to the
typemap file fixes things...
I upgraded to the latest ExtUtils::ParseXS and was able to
reproduce the bug for the same cygwin setup that had passed
before.
I then added an explicit typemap for PDL_Long * T_PTR to
the Basic/Core/typemap file after which the build and tests
passed again.
I'm not sure why this ever passed before---probably the
DWIM feature going away with better checks in the
current release.
I plan to release another CPAN developers release with
the fix this evening unless I hear otherwise.
ExtUtils::ParseXS 3.03 was installed by my smoker. Adding the typemap for PDL_Long * T_PTR to
Basic/Core/typemap also fixed PDL-2.4.9_003 for me.
This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi
Thanks to Rob, the CHM/PDL-2.4.9_007.tar.gz release has the
revised fix (cleaner!) for the missing typemap problem.
Latest fix appears to be working well. Marking this ticket Pending to
close in 2 weeks unless further action is required.