[petsc-dev] download-ml failure with perl-5.22

Jed Brown jed at jedbrown.org
Mon Oct 5 15:52:45 CDT 2015


My --download-ml fails with the following:

perl ./config/generate-makeoptions.pl ./src/Makefile ML > /home/jed/petsc/mpich-optg/include/Makefile.export.ml.macros
Makefile:754: recipe for target 'install-exec-hook' failed
make[3]: Leaving directory '/home/jed/petsc/mpich-optg/externalpackages/ml'
Makefile:645: recipe for target 'install-exec-am' failed
make[2]: Leaving directory '/home/jed/petsc/mpich-optg/externalpackages/ml'
Makefile:602: recipe for target 'install-am' failed
make[1]: Leaving directory '/home/jed/petsc/mpich-optg/externalpackages/ml'
Makefile:325: recipe for target 'install-recursive' failedCan't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./config/generate-makeoptions.pl line 13.

The relevant code is:

  if( !(defined(@ARGV) && scalar(@ARGV)==2) ) {
    die "Error, this script takes two and only two arguments (makefile_name package_name).!\n";
  }

Using defined() on arrays has been deprecated for ages, but was finally
removed in perl 5.22.

https://metacpan.org/pod/distribution/perl/pod/perldelta.pod#defined-array-and-defined-hash-are-now-fatal-errors


I rarely touch Perl, but I think they could safely rewrite this as

  if($#ARGV != 1) {


Also, this file was deleted over 4 years ago in their repository.  I
feel like we're going to become de-facto maintainers of standalone ML if
we don't find a way to move to the version that upstream develops (which
is now tangled in Trilinos, at least from a build perspective).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20151005/0c947190/attachment.sig>


More information about the petsc-dev mailing list