Re: [HACKERS] removal of braces - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [HACKERS] removal of braces
Date
Msg-id 199806160722.DAA07971@candle.pha.pa.us
Whole thread Raw
In response to Re: [HACKERS] removal of braces  (dg@illustra.com (David Gould))
List pgsql-hackers
>
> Bruce Momjian chortles ominiously:
> > I have written a script to remove braces around single statements, if
> > the statement is only one line in length.
> >
> > The macro fixup context diff was 1,200 lines, and this diff is 12k
> > lines.
> >
> > Hope no one is sitting on patches.
>
> Is this trip necessary? While I am a strong believer in aesthetics when
> it comes to code (make it pretty first, making pretty code work is easy),
> I am not sure I support wholesale changes (12,000 lines of diff) for
> the sake of purely cosmetic issues.
>
> It is somewhat costly to the developers as we will all have to pull a complete
> new source tree from CVS.

Yes, it is a tradeoff in making so much of a change, but I reviewed the
code, and patch file, and it looked good.  I thought it was broken
because I could not recompile after it, but then realized the macros
were broken.

> It is also somewhat risky. Suppose the script makes an error some
> where due to a tricky macro or suchlike. If this is not in something that
> gets checked by the regression test how likely are we to find it?

If it is broken, we back out the changes.

>
> And, for those of us contemplating larger projects where we might change a
> large number of files over a period of weeks or months, it presents a
> really scary merge problem.

The code was very conservative:

    awk '    {    line3 = $0;  /* remove un-needed braces around single statements */
            if (skips > 0)
                skips--;
            if (line1 ~ "        *{$" &&
                line2 ~ "        *[^;{}]*;$" &&
                line3 ~ "        *}$")
            {
                print line2;
                line1 = "";
                line2 = "";
                line3 = "";
                skips = 3;
            }
            else
                 if (skips == 0 && NR >= 3)
                    print line1;
            line1 = line2;
            line2 = line3;
            line3 = "";
        }
        END {
            if (skips <= 1)
                print line1;
            if (skips <= 2)
                print line2;
    }'


>
> That said, if you get my patch in before you whack the braces, I don't have
> anything right now that would be harmed.


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Re: [DOCS] Re: FE/BE protocol revision patch
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] removal of braces