Re: Perl 5.12 complains about ecpg parser-hacking scripts
Andy Colson <andy@squeakycode.net>
From: Andy Colson <andy@squeakycode.net>
To: Andrew Dunstan <andrew@dunslane.net>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgreSQL.org, meskes@postgresql.org, kris@shannon.id.au
Date: 2011-03-02T19:33:35Z
Lists: pgsql-hackers
Attachments
- parse2.pl (text/plain)
On 1/23/2011 5:11 AM, Michael Meskes wrote: > On Sat, Jan 22, 2011 at 08:40:13PM -0500, Andrew Dunstan wrote: >> I think these really need to be rewritten from scratch. They look >> like they were written by someone who never heard of Perl 5 (it's >> only about 16 years old). > > You might remember that we had this discussion before. The script was written > in awk and then translated to perl by a2p. We knew that this code was less than > optimal, but at least it works. > > As I already said when the script was introduced, I would love to have a real > perl solution, but I'm not a perl programmer by any means. > > Michael I thought Kris was going to work on this, but saw no progress, and I was bored the other day, so I started working on it. Here is a parse.pl, with some major refactoring. I named it with a 2 so I could run it beside the original and diff em: time perl parse.pl . < ../../../backend/parser/gram.y > preproc.y real 0m10.636s user 0m8.793s sys 0m0.050s time perl parse2.pl . < ../../../backend/parser/gram.y > preproc2.y real 0m0.289s user 0m0.214s sys 0m0.009s diff preproc.y preproc2.y I am sure there are new bugs. I have not run it on anything but 9.0.1. Are there other .y files you might feed it? (something other than backend/parser/gram.y?) I touched pretty much everything, and I broke a few things and had to go back and fix 'em, so it would not surprise me at all if there were still a few bugs. Anyway, feedback, suggestions, etc are welcomed. (oh, yeah, I probably need to go add some documentation) -Andy