Re: Make all Perl warnings fatal - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Make all Perl warnings fatal
Date
Msg-id df26b11c-fc51-e11f-8801-503ae88b8538@dunslane.net
Whole thread Raw
In response to Re: Make all Perl warnings fatal  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
List pgsql-hackers


On 2023-08-22 Tu 09:20, Alvaro Herrera wrote:
On 2023-Aug-10, Peter Eisentraut wrote:

I wanted to figure put if we can catch these more reliably, in the style of
-Werror.  AFAICT, there is no way to automatically turn all warnings into
fatal errors.  But there is a way to do it per script, by replacing
    use warnings;

by
    use warnings FATAL => 'all';

See attached patch to try it out.
BTW in case we do find that there's some unforeseen problem and we want
to roll back, it would be great to have a way to disable this without
having to edit every single Perl file again later.  However, I didn't
find a way to do it -- I thought about creating a separate PgWarnings.pm
file that would do the "use warnings FATAL => 'all'" dance and which
every other Perl file would use or include; but couldn't make it work.
Maybe some Perl expert knows a good answer to this.

Maybe the BEGIN block of each file can `eval` a new PgWarnings.pm that
emits the "use warnings" line?


Once we try it, I doubt we would want to revoke it globally, and if we did I'd rather not be left with a wart like this. As I mentioned upthread, it is possible to override the setting locally. The manual page for the warnings pragma contains details.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: pgsql: Allow tailoring of ICU locales with custom rules
Next
From: Jacob Champion
Date:
Subject: Re: Convert encrypted SSL test keys to PKCS#8 format