On 2/4/25 17:56, Karl Berry wrote:
If the concern is making certain that new Perl warnings are noticed,
simply putting PERL5OPT='-Mwarnings=FATAL,all' in the environment when
running the testsuite should accomplish that.
Thanks for the suggestion. I put a note into HACKING about it.
I also tried running the tests that way, and discovered one intentional
warning in t/parallel-tests-log-compiler-example.sh (and so the test
failed). I added an explicit "use warnings" there to override the envvar
setting. -k
If a plain "use warnings;" in a script overrides setting
PERL5OPT=-Mwarnings=FATAL,all in the environment, then I was wrong and
using PERL5OPT like that will /not/ make warnings in Automake code
fatal, since every Automake module (should) "use warnings;" and thus end
up overriding them to the default of being non-fatal. Oops.
TIMTOWTDI:
Automake would need to choose an environment variable or other means of
selecting fatal warnings mode and do something like:
use if defined $ENV{'AUTOMAKE_FATAL_PERL_WARNINGS'},
warnings => FATAL => 'all';
... in each file to select fatal warnings if desired. It seems that the
above must appear *after* the basic "use warnings;" line. The "if"
pragma was introduced in Perl 5.6.2 according to corelist(1).
Note that the test above, for concision, checks only that
AUTOMAKE_FATAL_PERL_WARNINGS *exists* in the environment and ignores its
value.
-- Jacob