From: Bruce Momjian <bruce@momjian.us>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: Perl scripts: eliminate "Useless interpolation" warnings
Date: Sun, 15 Sep 2024 21:28:58 -0400
Message-ID: <ZueJ2qppUkTwREIk@momjian.us> (raw)
In-Reply-To: <42f2242a-422b-4aa3-8d60-d67b229c4a52@dunslane.net>
References: <E1spqfS-001Ehn-Cx@gemulon.postgresql.org>
<66b5b1d6-3f2a-4944-91a3-7e40a565ccac@dunslane.net>
<ZudAtNRQOkveAa91@momjian.us>
<e51357f4-4ac5-4b64-b01a-15931485702f@dunslane.net>
<ZudFaDhhXHg3AAlv@momjian.us>
<42f2242a-422b-4aa3-8d60-d67b229c4a52@dunslane.net>
On Sun, Sep 15, 2024 at 06:07:21PM -0400, Andrew Dunstan wrote:
>
> On 2024-09-15 Su 4:36 PM, Bruce Momjian wrote:
> > On Sun, Sep 15, 2024 at 04:33:49PM -0400, Andrew Dunstan wrote:
> > > I understand perfectly what the warning is about.
> > >
> > > But the project's perlcritic policy is expressed at src/tools/perlcheck/
> > > perlcriticrc. It's basically severity 5 plus some additions and one exception.
> > > We shouldn't be imposing our personal perlcritic policies on the project.
> > >
> > > The change isn't bad in itself, but there shouldn't be any expectation that we
> > > will keep to this policy, as it's not required by project policy.
> > >
> > > There is a huge mass of perlcritic issues in our perl code at severity 1 (over
> > > 13000 by my count). If we're going to clean them up (which I would oppose) we
> > > should do it in a systematic way. It's hard to see why this one is special.
> > I guess it is special only because my policy is more strict so I wanted
> > my new code to match. Should I revert it?
>
>
> Yes I think so.
Okay, done.
> > Is the very tiny improvement
> > not worth the churn in the code?
>
>
> Yeah, I don't think it is.
FYI, the line that got me started was:
my ($tmpfilename) = $filename . ".tmp";
while I would write that with single quotes. Because mine uses single
quotes and version_stamp.pl uses double-quotes, I started to try to
unify the style.
I agree severity=1 generates many false warnings, and changing code
based on them can actually produce errors, but I do think there are some
safe ones like the single/double quote item we can improve.
Attached is my Perl critic file, where I do use severity=1, but turn off
various warnings.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
When a patient asks the doctor, "Am I going to die?", he means
"Am I going to die soon?"
Attachments:perlcritic (text/plain, 1.3K) download
# syntax https://github.com/schwern/Perl-Critic/blob/master/examples/perlcriticrc
verbose = 7
severity = 1
# list from --profile-proto
# --verbose 8 outputs critic labels
# Write open $handle, $path instead of open($handle, $path).
[-CodeLayout::ProhibitParensWithBuiltins]
# Must run code through perltidy.
[-CodeLayout::RequireTidyCode]
# Write if($condition){ do_something() } instead of do_something() if $condition.
[-ControlStructures::ProhibitPostfixControls]
# Give every module a $VERSION number.
[-Modules::RequireVersionVar]
# Write @{ $array_ref } instead of @$array_ref.
[-References::ProhibitDoubleSigils]
# Always use the /s modifier with regular expressions.
[-RegularExpressions::RequireDotMatchAnything]
# Always use the /x modifier with regular expressions.
[-RegularExpressions::RequireExtendedFormatting]
# Always use the /m modifier with regular expressions.
[-RegularExpressions::RequireLineBoundaryMatching]
# Use character classes for literal meta-characters instead of escapes.
[-RegularExpressions::ProhibitEscapedMetacharacters]
# Don't write sub my_function (@@) {}.
[-Subroutines::ProhibitSubroutinePrototypes]
# Write q{} instead of ''.
[-ValuesAndExpressions::ProhibitEmptyQuotes]
# Don't use values that don't explain themselves.
[-ValuesAndExpressions::ProhibitMagicNumbers]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-committers@postgresql.org
Cc: bruce@momjian.us, andrew@dunslane.net, pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: Perl scripts: eliminate "Useless interpolation" warnings
In-Reply-To: <ZueJ2qppUkTwREIk@momjian.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox