Thread

  1. removal of braces

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-06-15T19:16:02Z

    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.
    
    -- 
    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)
    
    
  2. Re: [HACKERS] removal of braces

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-06-15T20:55:17Z

    > 
    > 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.
    
    They had things like:
    
    	if (test != 0)
    		macro;
    
    while the macro was:
    
    #define macro() \
    	stmt1; \
    	stmt2; \
    	stmt3;
    
    Of course, only the stmt1 is conditional.  The rest are always executed.
    I am sure there were some bugs fixed by this cleanup.
    
    -- 
    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)
    
    
  3. Re: [HACKERS] removal of braces

    David Gould <dg@illustra.com> — 1998-06-15T20:59:58Z

    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.
    
    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?
    
    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.
    
    That said, if you get my patch in before you whack the braces, I don't have
    anything right now that would be harmed.
    
    -dg
    
    David Gould            dg@illustra.com           510.628.3783 or 510.305.9468 
    Informix Software  (No, really)         300 Lakeside Drive  Oakland, CA 94612
    "Don't worry about people stealing your ideas.  If your ideas are any
     good, you'll have to ram them down people's throats." -- Howard Aiken
    
    
  4. Re: [HACKERS] removal of braces

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-06-16T07:22:07Z

    > 
    > 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)