PDLPorters/pdl

t/inlinepdlpp.t fails for Strawberry Perl 5.38.0

shawnlaffan opened this issue · 9 comments

Excerpts from the build log below (test failures then start of log). Please let me know if you want the full log or other subsets.

This might also affect other versions of Strawberry Perl but has not appeared in previous testing.

Oddly, the install goes ahead. (Edit: The Strawberry Perl config is currently to ignore test failures, a left over from earlier times).

This could be a parallelisation issue. The previous builds did not use this. I'll post an update when a non-parallel build is complete.

Env vars:

set MAKEFLAGS=-j8
set TEST_JOBS=8
set LC_ALL=C

Test failure:

t/croak.t .............. ok
t/inline-with.t ........ ok

#   Failed test 'bind no error'
#   at t/inlinepdlpp.t line 32.
#          got: 'Can't create Inline validation file C:\strawberry_build\env\AppDataRoaming\.cpanm\work\1688359654.2040\
PDL-2.084\.inlinepdlpp\lib\auto\inlinepdlpp_t_575f\inlinepdlpp_t_575f.inl: No such file or directory at t/inlinepdlpp.t
line 22.
# '
#     expected: ''
Can't locate object method "testinc" via package "PDL" at t/inlinepdlpp.t line 34.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 2 just after 1.
t/inlinepdlpp.t ........
Dubious, test returned 2 (wstat 512, 0x200)
Failed 1/1 subtests
t/lvalue.t ............. ok
t/math.t ............... ok
t/matrix.t ............. ok

Start of build:

cpanm (App::cpanminus) 1.7043 on perl 5.038000 built for MSWin32-x64-multi-thread
Work directory is C:\strawberry_build\env\AppDataRoaming/.cpanm/work/1688359654.2040
You have make C:\strawberry\c\bin\gmake.exe
You have LWP 6.71
Falling back to Archive::Tar 3.02
Searching PDL on mirror https://cpan.metacpan.org ...
Downloading index file https://cpan.metacpan.org/modules/02packages.details.txt.gz ...
Unpacking PDL-2.084.tar.gz
Entering PDL-2.084
Checking configure dependencies from META.json
Checking if you have ExtUtils::Depends 0.402 ... Yes (0.8000)
Checking if you have File::Path 0 ... Yes (2.18)
Checking if you have Devel::CheckLib 1.01 ... Yes (1.16)
Checking if you have File::Which 0 ... Yes (1.27)
Checking if you have Carp 1.2 ... Yes (1.54)
Checking if you have ExtUtils::MakeMaker 7.12 ... Yes (7.70)
Running Makefile.PL
--> Working on PDL
Fetching https://cpan.metacpan.org/authors/id/E/ET/ETJ/PDL-2.084.tar.gz ... OK
Configuring PDL-2.084 ... Loaded ExtUtils::F77 version 1.26
Checking if your kit is complete...
Looks good
        1 file(s) copied.
Extracting Types.pm
Warning (mostly harmless): No library found for
Will not build TriD graphics, need OpenGL >=0.70 and OpenGL::GLUT >=0.72

Not building PDL::Graphics::PGPLOT, PGPLOT not installed

No support for PDL::Graphics::IIS on win32 platform yet. Will skip build process

Curses capable library not found, not building PDL::IO::Browser

Error loading Alien::HDF4: ' *** Can't load dependency information for Alien::HDF4:

Can't locate Alien/HDF4/Install/Files.pm in @INC (you may need to install the Alien::HDF4::Install::Files module) (@INC
entries checked: C:/strawberry/perl/site/lib/MSWin32-x64-multi-thread C:/strawberry/perl/site/lib C:/strawberry/perl/ven
dor/lib C:/strawberry/perl/lib C:/strawberry_build/env/AppDataRoaming/.cpanm/work/1688359654.2040/PDL-2.084 C:/strawberr
y_build/env/AppDataRoaming/.cpanm/work/1688359654.2040/PDL-2.084/IO .) at C:/strawberry/perl/vendor/lib/ExtUtils/Depends
.pm line 181.


'

Skipping build of PDL::IO::HDF.

Will skip build of PDL::GIS::Proj on this system - no Alien::proj
ExtUtils::F77: Unable to guess and/or validate system/compiler configuration
ExtUtils::F77: Will try system=MinGW Compiler=GFortran
ExtUtils::F77: Unable to guess and/or validate system/compiler configuration
ExtUtils::F77: Will try system=MinGW Compiler=GFortran

Will skip build of PDL::Transform::Proj4 on this system - no Alien::proj
Generating a gmake-style Makefile
Writing Makefile for PDL
Writing MYMETA.yml and MYMETA.json
Writing Basic/Core/Config.pm
Checking dependencies from MYMETA.json ...
Checking if you have File::Path 0 ... Yes (2.18)
Checking if you have Math::Complex 0 ... Yes (1.62)
Checking if you have Scalar::Util 0 ... Yes (1.63)
Checking if you have IPC::Cmd 0.72 ... Yes (1.04)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.70)
Checking if you have Test::Warn 0 ... Yes (0.37)
Checking if you have ExtUtils::ParseXS 3.21 ... Yes (3.51)
Checking if you have Test::Exception 0 ... Yes (0.43)
Checking if you have File::Map 0.57 ... Yes (0.71)
Checking if you have Filter::Util::Call 0 ... Yes (1.64)
Checking if you have Data::Dumper 2.121 ... Yes (2.188)
Checking if you have Pod::Select 0 ... Yes (1.65_01)
Checking if you have Storable 1.03 ... Yes (3.32)
Checking if you have File::Which 0 ... Yes (1.27)
Checking if you have List::Util 1.33 ... Yes (1.63)
Checking if you have Text::Balanced 2.05 ... Yes (2.06)
Checking if you have Filter::Simple 0.88 ... Yes (0.96)
Checking if you have CPAN::Meta 2.120900 ... Yes (2.150010)
OK

The build passes when MAKEFLAGS and TEST_JOBS are not set, so this would seem to be an issue with parallelisation.

...although it still fails when it is built under the Strawberry Perl build system, so it could be related to that and thus a false negative related to the build path.

Could you say here which version of Inline is installed there? It seems (given the code in that test file is fairly simple and works very widely) like it might be a bug in Inline.

Also, it would be very helpful to uncomment the use Inline 'INFO' on line 21 and see if that sheds any light.

It's a fresh build so uses the latest Inline.

Also, it would be very helpful to uncomment the use Inline 'INFO' on line 21 and see if that sheds any light.

I'll report more when I've had a chance to try this.

Could you report any further findings, or close this if it has gone away?

It would seem likely to be an issue with the length of the path. A similar issue was noted for Inline::C in StrawberryPerl/Perl-Dist-Strawberry#95

It does not affect most Strawberry Perl users since the build path is short by default. However, under the SP build system it is built under a deeper path.

Is this an Inline problem, rather than a PDL one? If so, could an issue be opened there, and closed here?

All the indications are that the problem manifests with Inline. It has been report at ingydotnet/inline-c-pm#103

I'll close this one.