pdlporters / pdl-graphics-plplot Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://p3rl.org/PDL::Graphics::PLplot
Home Page: https://p3rl.org/PDL::Graphics::PLplot
On some of my smoker systems I see the following failure:
Can't load '/usr/home/cpansand/.cpan/build/2019122820/PDL-Graphics-PLplot-0.73-2/blib/arch/auto/PDL/Graphics/PLplot/PLplot.so' for module PDL::Graphics::PLplot: /usr/home/cpansand/.cpan/build/2019122820/PDL-Graphics-PLplot-0.73-2/blib/arch/auto/PDL/Graphics/PLplot/PLplot.so: Undefined symbol "c_plshade1" at /usr/perl5.28.0p/lib/5.28.0/amd64-freebsd/DynaLoader.pm line 193.
Compilation failed in require at t/plplot.t line 11.
BEGIN failed--compilation aborted at t/plplot.t line 11.
t/plplot.t ................
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
Can't load '/usr/home/cpansand/.cpan/build/2019122820/PDL-Graphics-PLplot-0.73-2/blib/arch/auto/PDL/Graphics/PLplot/PLplot.so' for module PDL::Graphics::PLplot: /usr/home/cpansand/.cpan/build/2019122820/PDL-Graphics-PLplot-0.73-2/blib/arch/auto/PDL/Graphics/PLplot/PLplot.so: Undefined symbol "c_plshade1" at /usr/perl5.28.0p/lib/5.28.0/amd64-freebsd/DynaLoader.pm line 193.
Compilation failed in require at t/plplot_library_tests.t line 6.
BEGIN failed--compilation aborted at t/plplot_library_tests.t line 6.
t/plplot_library_tests.t ..
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
On some of my smokers I see test failures like the following:
...
# Failed test './t/x01c.c compiled successfully'
# at t/plplot_library_tests.t line 44.
# Failed test 'C code ./t/x01c.c ran successfully'
# at t/plplot_library_tests.t line 52.
Can't locate PDL.pm in @INC (you may need to install the PDL module) (@INC contains: /home/cpansand/.cpan/build/2019122702/PDL-Graphics-PLplot-0.72-1/blib/arch /home/cpansand/.cpan/build/2019122702/PDL-Graphics-PLplot-0.72-1/blib/lib /home/cpansand/.cpan/build/2019122702/PDL-Graphics-PLplot-0.72-1/blib/lib /home/cpansand/.cpan/build/2019122702/PDL-Graphics-PLplot-0.72-1/blib/arch /usr/local/lib/perl5/site_perl/mach/5.24 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.24/mach /usr/local/lib/perl5/5.24 .) at ./t/x01.pl line 29.
BEGIN failed--compilation aborted at ./t/x01.pl line 29.
...
The contents of @INC
indicate that the system perl (/usr/bin/perl
) is used here, but the current build & test process is running with another (self-compiled) perl.
Problem is probably this line: https://github.com/PDLPorters/pdl-graphics-plplot/blob/master/t/plplot_library_tests.t#L55
Instead of hardcoding perl
the variable $^X
should be used, which points to the currently used perl binary.
On some of my freebsd smokers the test suite fails like this:
"/usr/perl5.28.1Dp/bin/perl5.28.1" -MExtUtils::Command::MM -e 'cp_nonempty' -- PLplot.bs blib/arch/auto/PDL/Graphics/PLplot/PLplot.bs 644
PERL_DL_NONLAZY=1 "/usr/perl5.28.1Dp/bin/perl5.28.1" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01-checkmanifest.t ...... skipped: Author tests not required for installation
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
t/plplot.t ................ ok
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
# Failed test 'Output file /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x03p.svg.1 matches C output'
# at t/plplot_library_tests.t line 68.
# /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x03p.svg.1: 53935, /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x03c.svg.1: 53933
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
# Failed test 'Output file /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07p.svg.1 matches C output'
# at t/plplot_library_tests.t line 68.
# /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07p.svg.1: 65518, /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07c.svg.1: 65518
... etc ...
# Failed test 'Output file /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07p.svg.8 matches C output'
# at t/plplot_library_tests.t line 68.
# /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07p.svg.8: 53894, /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07c.svg.8: 53894
# Failed test 'Output file /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07p.svg.9 matches C output'
# at t/plplot_library_tests.t line 68.
# /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07p.svg.9: 57561, /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x07c.svg.9: 57561
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Output file name is /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x31c.svg.1
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
Output file name is /var/tmp/cpansmoker-1023/2021073020/W9Hbts6kV1/x31p.svg.1
Your perl NV has more precision than PDL_Double. There will be loss of floating point precision!
# Looks like you failed 21 tests of 230.
t/plplot_library_tests.t ..
Dubious, test returned 21 (wstat 5376, 0x1500)
Failed 21/230 subtests
This seems to happen only with perls compiled with -Duselongdouble
.
Hi,
I struck this when building PDL-Graphics-PLplot-0.74 on Ubuntu-18.04, perl-5.32.0.
(See https://www.perlmonks.org/?node_id=11120908 for the full story.)
I had installed latest PDL, but the plplot library was not present anywhere on the system:
###############################
$ cpanm -i PDL::Graphics::PLplot
--> Working on PDL::Graphics::PLplot
Fetching http://www.cpan.org/authors/id/D/DH/DHUNT/PDL-Graphics-PLplot-0.74.tar.gz ... OK
Configuring PDL-Graphics-PLplot-0.74 ... OK
Building and testing PDL-Graphics-PLplot-0.74 ... OK
Successfully installed PDL-Graphics-PLplot-0.74 1 distribution installed
###############################
Of course, given that there was no plplot library to be found, the module was not built or installed, and most of that output is simply untrue.
It became a little clearer when I switched to using the more verbose cpan utility:
###############################
$ cpan -i PDL::Graphics::PLplot
[... skip irrelevant preamble ...]
Configuring D/DH/DHUNT/PDL-Graphics-PLplot-0.74.tar.gz with Makefile.PL
PDL is installed
Checking PDL::Graphics::PLplot...
Searching for libplplot.so library.
Searching for libplplotd.so library.
Cannot find plplot library (libplplotd.so), skipping PDL::Graphics::PLplot
Not building PDL::Graphics::PLplot
Cannot find plplot library (libplplotd.so), skipping PDL::Graphics::PLplot
Not building PDL::Graphics::PLplot
Checking if your kit is complete...
Looks good
DHUNT/PDL-Graphics-PLplot-0.74.tar.gz
/home/sisyphus/perl-5.32.0-d/bin/perl Makefile.PL -- OK
Running make for D/DH/DHUNT/PDL-Graphics-PLplot-0.74.tar.gz
Could not read metadata file. Falling back to other methods to determine prerequisites
make: Nothing to be done for 'all'.
DHUNT/PDL-Graphics-PLplot-0.74.tar.gz
/usr/bin/make -- OK
[ ... skip request to install CPAN::DistnameInfo ...]
make: Nothing to be done for 'test'.
DHUNT/PDL-Graphics-PLplot-0.74.tar.gz
/usr/bin/make test -- OK
Running make install for DHUNT/PDL-Graphics-PLplot-0.74.tar.gz
make: Nothing to be done for 'install'.
DHUNT/PDL-Graphics-PLplot-0.74.tar.gz
/usr/bin/make install -- OK
###############################
I would expect that the process should teminate as soon as the decision to not build the module was made.
To instead continue on with untrue assertions is confusing and misleading.
I would actually be inclined to run no checks at all during the Makefile.PL step, and just let the build take its course.
When the plplot library is absent, that would result in the plplot header files not being found during the 'make' step, which is reported as "UNKNOWN" by cpan-testers.
OTOH, if you're then unlucky enough to hit a cpan-tester system where the header files are locatable, but the .so file is not, then the report will be FAIL.
Chris "Bingos" Williams recently unleashed a smoker that finds the gmp and mpfr headers but fails to find the respective .so files - so I know from first hand experience that this can happen, and that it does result in FAIL, as happens with my gmp and mpfr modules on that smoker.
(Just thought that, for balance. I'd mention that downside associated with not checking for the availability of the library during the Makefile.PL step.)
Cheers,
Rob
META.yml and META.json currently do not list PDL as a prerequisite. Probably this depends whether PDL is already installed on the machine creating the PDL-Graphics-PLplot distribution (see https://github.com/PDLPorters/pdl-graphics-plplot/blob/master/Makefile.PL#L20-L27 ).
This means that the metacpan page does not list PDL as a dependency, and also PDL-Graphics-PLPlot is not listed as a reverse dependency. Also, test reports do not list PDL (and the installed version) as a dependency (for example http://www.cpantesters.org/cpan/report/664e55ae-287e-11ea-8a52-45591f24ea8f ), which means full statistical analysis in case of failures are not possible.
cc: @doughunt
I noticed that PDL-Graphics-PLplot-0.74 has not been pushed to GitHub yet. Could you push those commits please when you get a chance?
@mohawk2, if I'm looking at the settings correctly, I think @doughunt needs commit bits.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.