Giter Site home page Giter Site logo

pdl-graphics-plplot's People

Contributors

d-lamb avatar dcmertens avatar dougburke avatar doughunt avatar mohawk2 avatar mvgrimes avatar timj avatar zmughal avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mikef5410

pdl-graphics-plplot's Issues

Undefined symbol "c_plshade1"

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 

Wrong perl used in test suite

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.

t/plplot_library_tests.t fails (with -Duselongdouble?)

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.

PDL::Graphics::PLplot build doesn't bail out when plplot library cannot be found

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.* files do not contain PDL

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.