Thread

Commits

  1. Make eval statement naturally proof against perltidy

  2. Fix perltidy breaking perlcritic

  1. pgsql: Fix perltidy breaking perlcritic

    Alvaro Herrera <alvherre@alvh.no-ip.org> — 2022-09-08T09:23:09Z

    Fix perltidy breaking perlcritic
    
    perltidying a "##no critic" line moves the marker to where it becomes
    useless.  Put the line back to how it was, and protect it from further
    malfeasance.
    
    Per buildfarm member crake.
    
    Branch
    ------
    master
    
    Details
    -------
    https://git.postgresql.org/pg/commitdiff/12d40d4a8d0495cf2c7b564daa8aaa7f107a6c56
    
    Modified Files
    --------------
    src/backend/catalog/Catalog.pm | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)
    
    
  2. Re: pgsql: Fix perltidy breaking perlcritic

    Andrew Dunstan <andrew@dunslane.net> — 2022-09-08T20:32:14Z

    On Thu, Sep 8, 2022 at 5:23 AM Alvaro Herrera <alvherre@alvh.no-ip.org>
    wrote:
    
    > Fix perltidy breaking perlcritic
    >
    > perltidying a "##no critic" line moves the marker to where it becomes
    > useless.  Put the line back to how it was, and protect it from further
    > malfeasance.
    >
    >
    >
    A better way do do this IMNSHO is to put the eval in a block on its own
    along with the no critic marker on its own line, like this:
    
    {
       ## no critic (ProhibitStringyEval)
       eval ...
    }
    
    perlcritic respects block boundaries for its directives.
    
    cheers
    
    andrew
    
  3. Re: pgsql: Fix perltidy breaking perlcritic

    John Naylor <john.naylor@enterprisedb.com> — 2022-09-10T02:44:44Z

    On Fri, Sep 9, 2022 at 3:32 AM Andrew Dunstan <andrew@dunslane.net> wrote:
    
    > A better way do do this IMNSHO is to put the eval in a block on its own along with the no critic marker on its own line, like this:
    >
    > {
    >    ## no critic (ProhibitStringyEval)
    >    eval ...
    > }
    >
    > perlcritic respects block boundaries for its directives.
    
    I tried that in the attached -- it looks a bit nicer but requires more
    explanation. I don't have strong feelings either way.
    
    -- 
    John Naylor
    EDB: http://www.enterprisedb.com
    
  4. Re: pgsql: Fix perltidy breaking perlcritic

    Andrew Dunstan <andrew@dunslane.net> — 2022-09-10T06:50:09Z

    On Fri, Sep 9, 2022 at 10:44 PM John Naylor <john.naylor@enterprisedb.com>
    wrote:
    
    > On Fri, Sep 9, 2022 at 3:32 AM Andrew Dunstan <andrew@dunslane.net> wrote:
    >
    > > A better way do do this IMNSHO is to put the eval in a block on its own
    > along with the no critic marker on its own line, like this:
    > >
    > > {
    > >    ## no critic (ProhibitStringyEval)
    > >    eval ...
    > > }
    > >
    > > perlcritic respects block boundaries for its directives.
    >
    > I tried that in the attached -- it looks a bit nicer but requires more
    > explanation. I don't have strong feelings either way.
    >
    >
    Maybe even better would be just this, which I bet perltidy would not monkey
    with, and would require no explanation:
    
    eval "\$hash_ref = $_";  ## no critic (ProhibitStringyEval)
    
    cheers
    
    andrew
    
  5. Re: pgsql: Fix perltidy breaking perlcritic

    Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> — 2022-09-12T09:54:47Z

    Andrew Dunstan <andrew@dunslane.net> writes:
    
    > On Fri, Sep 9, 2022 at 10:44 PM John Naylor <john.naylor@enterprisedb.com>
    > wrote:
    >
    >> On Fri, Sep 9, 2022 at 3:32 AM Andrew Dunstan <andrew@dunslane.net> wrote:
    >>
    >> > A better way do do this IMNSHO is to put the eval in a block on its own
    >> along with the no critic marker on its own line, like this:
    >> >
    >> > {
    >> >    ## no critic (ProhibitStringyEval)
    >> >    eval ...
    >> > }
    >> >
    >> > perlcritic respects block boundaries for its directives.
    >>
    >> I tried that in the attached -- it looks a bit nicer but requires more
    >> explanation. I don't have strong feelings either way.
    >>
    >>
    > Maybe even better would be just this, which I bet perltidy would not monkey
    > with, and would require no explanation:
    >
    > eval "\$hash_ref = $_";  ## no critic (ProhibitStringyEval)
    
    I didn't see this until it got committed, since I'm not subscribed to
    -committers, but I think it would be even better to rely on the fact
    that eval returns the value of the last expression in the string, which
    also gets rid of the ugly quoting and escaping, per the attached.
    
    - ilmari
    
    
  6. Re: pgsql: Fix perltidy breaking perlcritic

    Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> — 2022-09-12T09:54:47Z

    [resending to -hackers instead of -committers]
    
    Andrew Dunstan <andrew@dunslane.net> writes:
    
    > On Fri, Sep 9, 2022 at 10:44 PM John Naylor <john.naylor@enterprisedb.com>
    > wrote:
    >
    >> On Fri, Sep 9, 2022 at 3:32 AM Andrew Dunstan <andrew@dunslane.net> wrote:
    >>
    >> > A better way do do this IMNSHO is to put the eval in a block on its own
    >> along with the no critic marker on its own line, like this:
    >> >
    >> > {
    >> >    ## no critic (ProhibitStringyEval)
    >> >    eval ...
    >> > }
    >> >
    >> > perlcritic respects block boundaries for its directives.
    >>
    >> I tried that in the attached -- it looks a bit nicer but requires more
    >> explanation. I don't have strong feelings either way.
    >>
    >>
    > Maybe even better would be just this, which I bet perltidy would not monkey
    > with, and would require no explanation:
    >
    > eval "\$hash_ref = $_";  ## no critic (ProhibitStringyEval)
    
    I didn't see this until it got committed, since I'm not subscribed to
    -committers, but I think it would be even better to rely on the fact
    that eval returns the value of the last expression in the string, which
    also gets rid of the ugly quoting and escaping, per the attached.
    
    - ilmari
    
    
  7. Re: pgsql: Fix perltidy breaking perlcritic

    John Naylor <john.naylor@enterprisedb.com> — 2022-09-13T09:25:18Z

    On Mon, Sep 12, 2022 at 4:54 PM Dagfinn Ilmari Mannsåker
    <ilmari@ilmari.org> wrote:
    
    > > eval "\$hash_ref = $_";  ## no critic (ProhibitStringyEval)
    >
    > I didn't see this until it got committed, since I'm not subscribed to
    > -committers, but I think it would be even better to rely on the fact
    > that eval returns the value of the last expression in the string, which
    > also gets rid of the ugly quoting and escaping, per the attached.
    
    Hmm, interesting.
    -- 
    John Naylor
    EDB: http://www.enterprisedb.com
    
    
    
    
  8. Re: pgsql: Fix perltidy breaking perlcritic

    Andrew Dunstan <andrew@dunslane.net> — 2022-09-14T02:05:20Z

    On 2022-09-13 Tu 05:25, John Naylor wrote:
    > On Mon, Sep 12, 2022 at 4:54 PM Dagfinn Ilmari Mannsåker
    > <ilmari@ilmari.org> wrote:
    >
    >>> eval "\$hash_ref = $_";  ## no critic (ProhibitStringyEval)
    >> I didn't see this until it got committed, since I'm not subscribed to
    >> -committers, but I think it would be even better to rely on the fact
    >> that eval returns the value of the last expression in the string, which
    >> also gets rid of the ugly quoting and escaping, per the attached.
    > Hmm, interesting.
    
    
    
    I agree it's a slight stylistic improvement. I was trying to keep as
    close as possible to the original.
    
    
    cheers
    
    
    andrew
    
    --
    Andrew Dunstan
    EDB: https://www.enterprisedb.com