The following is a set of running notes that I made as I worked through this.
I checked through Makefile.PL: I had all prerequisites except for two.
Math::Matrix installed without a hitch.
The other, Test::CheckManifest, had a problem:
Running make test for RENEEB/Test-CheckManifest-1.42.tar.gz
PERL_DL_NONLAZY=1 "/home/ken/perl5/perlbrew/perls/perl-5.34.0/bin/perl
+.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::
+Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/
+extra/*.t t/xt/*.t
t/00_load.t ........................ ok
Bailout called. Further testing stopped: Cannot find a MANIFEST. Ple
+ase check!
FAILED--Further testing stopped: Cannot find a MANIFEST. Please check!
make: *** [Makefile:874: test_dynamic] Error 255
(/usr/bin/make test exited with 512)
I've encountered that problem on a variety of platforms over a number of years.
There was a report about this in rt-cpan;
the tracker has been moved to github and I can't find the report.
However, I do recall that discussions in that report lead to this in the doco:
"Test::CheckManifest - REPLACE THIS MODULE".
I've been using ExtUtils::Manifest ever since
(for both personal and $work modules) without any problems.
Also, ExtUtils::Manifest is a core module, so no CPAN installation necessary.
You may want to consider making this change too.
Anyway, I force-installed Test::CheckManifest to avoid problems with prerequisite testing:
actual tests using this may still fail, but I'll worry about that down the track.
[On a side note,
modules such as Test::Pod and Test::CheckManifest should be for "Author Only" tests.
They are typically skipped unless something like $ENV{RELEASE_TESTING} has a true value.
I question their inclusion under PREREQ_PM in Makefile.PL.]
I manually made the changes you indicated for lib/Inline/CUDA.pm (from new code in github).
Unfortunately, that didn't fix my reported problem:
$ perl Makefile.PL
Can't exec "/cygdrive/c/Program": No such file or directory at /home/k
+en/local/opt/perl/inline_cuda/perl-inline-cuda-master/lib/Inline/CUDA
+/Utils.pm line 182.
Inline::CUDA::Utils::find_dependencies (via N/A) : failed to find vers
+ion of /cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v1
+1.4/bin/nvcc with this command: /cygdrive/c/Program Files/NVIDIA GPU
+Computing Toolkit/CUDA/v11.4/bin/nvcc --version
Makefile.PL : error, call to Inline::CUDA::Utils::find_dependencies()
+has failed.
I then made a manual change to Inline::CUDA::Utils::find_dependencies().
At line 181:
#my $cmd = "${aexe} --version";
my $cmd = "\Q${aexe}\E --version";
A Makefile was successfully created:
$ perl Makefile.PL
find_dependencies() : report:
cc : /usr/bin/cc
cxx : /usr/bin/c++
ld : /usr/bin/cc
nvcc : /cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v
+11.4/bin/nvcc
nvcc-release : 11.4
nvcc-version : V11.4.48
nvlink : /cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA
+/v11.4/bin/nvlink
nvlink-release : 11.4
nvlink-version : V11.4.48
Makefile.PL : configuration written to '/home/ken/local/opt/perl/inlin
+e_cuda/perl-inline-cuda-master/config/Inline-CUDA.conf'.
Generating a Unix-style Makefile
Writing Makefile for Inline::CUDA
Writing MYMETA.yml and MYMETA.json
No problems with make:
$ make
cp /home/ken/local/opt/perl/inline_cuda/perl-inline-cuda-master/config
+/Inline-CUDA.conf blib/lib/auto/share/dist/Inline-CUDA/Inline-CUDA.co
+nf
cp lib/Inline/CUDA/Utils.pm blib/lib/Inline/CUDA/Utils.pm
cp lib/Inline/CUDA.pm blib/lib/Inline/CUDA.pm
cp scripts/nvidia-ml-test.pl blib/script/nvidia-ml-test.pl
"/home/ken/perl5/perlbrew/perls/perl-5.34.0/bin/perl.exe" -MExtUtils::
+MY -e 'MY->fixin(shift)' -- blib/script/nvidia-ml-test.pl
Manifying 1 pod document
I did have problems with 'make test'.
There was a huge amount of output: too much to post here and I don't have time to look through this closely right now.
Some look like previous problems caused by spaces and can probably be just as easily fixed.
For instance:
/bin/sh: /cygdrive/c/Program: No such file or directory
make[1]: *** [Makefile:352: _011_basic_t_f5ac.o] Error 127
The "Author Tests" were handled as I indicated above, so no issues with my potentially dodgy Test::CheckManifest:
t/manifest.t ....................................... skipped: Author t
+ests not required for installation
t/pod-coverage.t ................................... skipped: Author t
+ests not required for installation
t/pod.t ............................................ skipped: Author t
+ests not required for installation
This further strengthens my argument for not including those Test::* modules as prerequisites.
I also note that Test::Pod::Coverage is not mentioned in Manifest.PL
but is used in t/pod-coverage.t.
The final few lines of make test output were:
Files=20, Tests=13, 59 wallclock secs ( 0.03 usr 0.01 sys + 14.46 cus
+r 16.56 csys = 31.06 CPU)
Result: FAIL
Failed 15/20 test programs. 0/13 subtests failed.
make: *** [Makefile:926: test_dynamic] Error 255
It's Friday morning in my timezone and I have $work today.
I can probably spend more time on this over the weekend.
|