Обсуждение: pgsql: Fix precedence problem in new Perl code.

Поиск
Список
Период
Сортировка

pgsql: Fix precedence problem in new Perl code.

От
Tom Lane
Дата:
Fix precedence problem in new Perl code.

I think this bit of commit 1f1cd9b5d didn't do quite what I meant :-(

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/59cb323053f4ed582d4e71acaeb5770603f074db

Modified Files
--------------
src/backend/catalog/Catalog.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)


Re: pgsql: Fix precedence problem in new Perl code.

От
Mike Blackwell
Дата:
In my experience, that would more commonly be written with the lower precedence "or" operator (with or without the param list parens):

 unlink $temp_name or die "unlink: $temp_name: $!";

__________________________________________________________________________________
Mike Blackwell | Technical Analyst, Distribution Services/Rollout Management | RRD
1750 Wallace Ave | St Charles, IL 60174-3401
Office: 630.313.7818
Mike.Blackwell@rrd.com
http://www.rrdonnelley.com



On Fri, May 4, 2018 at 8:46 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Fix precedence problem in new Perl code.

I think this bit of commit 1f1cd9b5d didn't do quite what I meant :-(

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/59cb323053f4ed582d4e71acaeb5770603f074db

Modified Files
--------------
src/backend/catalog/Catalog.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)


Re: pgsql: Fix precedence problem in new Perl code.

От
Tom Lane
Дата:
Mike Blackwell <mike.blackwell@rrd.com> writes:
> In my experience, that would more commonly be written with the lower
> precedence "or" operator (with or without the param list parens):
>  unlink $temp_name or die "unlink: $temp_name: $!";

Yeah, I thought about that, but the pre-existing rename call had ||
and I didn't want to deviate from the existing style; I'm not a good
enough Perl programmer to be entitled to have opinions about Perl style.

Probably all of this code could use a visit from the Perl style police.
I wonder if anyone's tried perlcritic on it recently.

            regards, tom lane


Re: pgsql: Fix precedence problem in new Perl code.

От
Mike Blackwell
Дата:
I didn't see a .perlcriticrc file in the project, so ran with our local settings.

With those, perlcritic is pretty unhappy, even at -4, though I don't see anything that pops out as potentially bug-inducing.  The ones I'd probably look fixing at for starters would be the two argument form of open, and maybe the .pl files without a #! so perlcritic doesn't mistake them for .pm files.  

It's also pretty noisy about the possible confusion cause by using a leading zero for octal vs oct(), though that's been common practice as far back as my memory goes.  Those could be silenced in an rc file if that's preferred.

If there's interest I could put together a patch for some or all of this.

Mike

__________________________________________________________________________________
Mike Blackwell | Technical Analyst, Distribution Services/Rollout Management | RRD
1750 Wallace Ave | St Charles, IL 60174-3401
Office: 630.313.7818
Mike.Blackwell@rrd.com
http://www.rrdonnelley.com



On Fri, May 4, 2018 at 10:19 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Mike Blackwell <mike.blackwell@rrd.com> writes:
> In my experience, that would more commonly be written with the lower
> precedence "or" operator (with or without the param list parens):
>  unlink $temp_name or die "unlink: $temp_name: $!";

Yeah, I thought about that, but the pre-existing rename call had ||
and I didn't want to deviate from the existing style; I'm not a good
enough Perl programmer to be entitled to have opinions about Perl style.

Probably all of this code could use a visit from the Perl style police.
I wonder if anyone's tried perlcritic on it recently.

                        regards, tom lane

Re: pgsql: Fix precedence problem in new Perl code.

От
Andrew Dunstan
Дата:
On Fri, May 4, 2018 at 5:28 PM, Mike Blackwell <mike.blackwell@rrd.com> wrote:
> I didn't see a .perlcriticrc file in the project, so ran with our local
> settings.
>
> With those, perlcritic is pretty unhappy, even at -4, though I don't see
> anything that pops out as potentially bug-inducing.  The ones I'd probably
> look fixing at for starters would be the two argument form of open, and
> maybe the .pl files without a #! so perlcritic doesn't mistake them for .pm
> files.
>
> It's also pretty noisy about the possible confusion cause by using a leading
> zero for octal vs oct(), though that's been common practice as far back as
> my memory goes.  Those could be silenced in an rc file if that's preferred.
>
> If there's interest I could put together a patch for some or all of this.
>

(Please don't top-post, it violates our mailcritic policy)

There's been discussion about it before. The consensus was that we
don't care about a good many of the things perlcritic consider to be
very severe, e.g. two-argument open, which is an old and widely used
idiom that I at least have never had any problems with.

Also, I was more than amused yesterday when looking at it against the
buildfarm client code when I got this:

Fatal error while critiquing "./run_build.pl": Not an ARRAY reference
at /usr/share/perl5/vendor_perl/Perl/Critic/Policy/BuiltinFunctions/ProhibitUselessTopic.pm
line 81.

Oh, the irony.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services