in reply to Re^5: Math::GSL::SparseMatrix is broken if installed on latest 5.32.1.1 "Strawberry Perl PDL edition", whom to report this issue to?
in thread Math::GSL::SparseMatrix is broken if installed on latest 5.32.1.1 "Strawberry Perl PDL edition", whom to report this issue to?

assuming that works for you

ouch... Shame on me to check this too late, but my test case (2) (i.e. install Math::GSL on non-PDL 5.32 SP) only "works" because there was 5.26 PDL-SP "installed" (i.e. system PATH modified) long time ago on test computer. Now I ran portableshell.bat with different portable perls, which just push their paths onto system PATH. Alien::GSL->version says 2.7.1 (shared), but Math::GSL::gsl_version says 2.3 i.e. it finds static lib from PDL-SP 5.26. If I fix the PATH, then installing Math::GSL fails for me, too.

I think I'll write to Math::GSL queue. Looking at tester report, there's 1.07 Alien::GSL mentioned, but also 2.6 GSL, not 2.7. Which suggests they use "PDL edition"? Something is definitely messed up.

  • Comment on Re^6: Math::GSL::SparseMatrix is broken if installed on latest 5.32.1.1 "Strawberry Perl PDL edition", whom to report this issue to?
  • Select or Download Code

Replies are listed 'Best First'.
Re^7: Math::GSL::SparseMatrix is broken if installed on latest 5.32.1.1 "Strawberry Perl PDL edition", whom to report this issue to?
by syphilis (Archbishop) on Nov 09, 2022 at 23:42 UTC
    If I fix the PATH, then installing Math::GSL fails for me, too

    If I set PKG_CONFIG_PATH env var to the location of the gsl.pc file:
    set PKG_CONFIG_PATH=D:\sp\_64\sp-5.32.1\perl\site\lib\auto\share\dist\ +Alien-GSL\lib\pkgconfig
    then I get a little bit further but it still fails because Build.PL inc/Ver2Func.pm doesn't cater for the possibility that the gsl library is at a version greater than 2.7. The build terminated with:
    .... Asking PkgConfig with ENV{PKG_CONFIG_PATH}=D:\sp\_64\sp-5.32.1\perl\si +te\lib\auto\share\dist\Alien-GSL\lib\pkgconfig:/usr/pkgconfig:/usr/li +b/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/pkgconfig:/usr/libdat +a/pkgconfig:/usr/local/libdata/pkgconfig:/opt/pkgconfig Checking if gcc supports "-Wall"...yes Checking if gcc supports "-Wno-sometimes-uninitialized"...yes Checking if gcc supports "-Wno-unused-function"...yes Checking if gcc supports "-Wno-unused-value"...yes Checking if gcc supports "-Wno-unused-function"...yes Checking if gcc supports "-Wno-unused-variable"...yes Checking if gcc supports "-Wno-gnu"...yes Checking if gcc supports "-g"...Unsupported GSL version!!! : 2.7.1 at +Build.PL line 85. yes -> N/A -> FAIL Configure failed for Math-GSL-0.43. See D:\sp\_64\sp-5.32.1\da +ta\.cpanm\work\1668033142.8832\build.log for details.
    So I changed the "2.7" => { to "2.7.1" => { in inc/Ver2Func.pm, installed the missing build prerequisites (Test::Class, Test::Most and Test::Taint) using cpanm, and built the damn thing manually by running perl Build.PL, perl Build test and perl build install.
    There were a few test failures:
    Test Summary Report ------------------- t\00-load.t (Wstat: 65280 Tests: 1 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t\Histogram.t (Wstat: 768 Tests: 43 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 74 tests but ran 43. t\Histogram2D.t (Wstat: 768 Tests: 52 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 89 tests but ran 52. t\Matrix.t (Wstat: 0 Tests: 290 Failed: 0) TODO passed: 235, 237-238 t\MatrixComplex.t (Wstat: 768 Tests: 28 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 38 tests but ran 28. t\Multilarge.t (Wstat: 768 Tests: 2 Failed: 0) Non-zero exit status: 3 Parse errors: No plan found in TAP output t\Multiroots.t (Wstat: 768 Tests: 2 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 11 tests but ran 2. t\Permutation.t (Wstat: 768 Tests: 11 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 85 tests but ran 11. t\SF.t (Wstat: 768 Tests: 2 Failed: 0) Non-zero exit status: 3 Parse errors: No plan found in TAP output t\Vector.t (Wstat: 768 Tests: 29 Failed: 0) Non-zero exit status: 3 Parse errors: Bad plan. You planned 143 tests but ran 29. Files=58, Tests=2791, 42 wallclock secs ( 0.17 usr + 0.05 sys = 0.22 + CPU) Result: FAIL Failed 9/58 test programs. 0/2791 subtests failed.
    I note that Alien built and installed static libs (libgsl.a & libgslcblas.a) rather than the dll I was expecting. I don't know if that caused any problems. Running the following script:
    use strict; use warnings; use feature 'say'; use Alien::GSL; use Math::GSL; use Math::GSL::SparseMatrix ':all'; say join ' ', Alien::GSL->version, Alien::GSL->install_type; say Math::GSL::gsl_version(); my $m = gsl_spmatrix_alloc( 1, 1 ); die if gsl_spmatrix_set( $m, 0, 0, 1 ); say gsl_spmatrix_nnz( $m ); die if gsl_spmatrix_set( $m, 123 + 1 << 32, 0, 1 ); say gsl_spmatrix_nnz( $m ); die if gsl_spmatrix_set( $m, 456 + 1 << 32, 0, 1 ); say gsl_spmatrix_nnz( $m );
    produced:
    D:\s\Math-GSL-0.43>perl \pscrpt\math-gsl\try.pl 2.7.1 share 2.7 1 1 1
    Admittedly, my hack to inc/Ver2Func.pm was perhaps unrealistically hopeful ;-)
    The gsl-2.7.1 that Alien installed is definitely the only gsl library on this machine.

    I think I'll write to Math::GSL queue.

    Yes, I think that's an appropriate thing to do.
    Good luck with it.

    Cheers,
    Rob