I just wanted to send a quick note to perl6-internals and perl6-compiler that I've just checked in some major changes to the PGE internals (r9681). Last week we added a shift-reduce operator precedence parser, this version uses that parser to parse perl 6 rules, which should improve the parsing speed a fair bit. It also simplifies the code somewhat.
On the other hand, I haven't migrated all of the various optimizations across yet, so the compiled routines will probably run slightly slower, but when those come across things ought to improve again. (I'm still looking for people to do some benchmarking, if there are any takers!) And although I ran the various test suites and a few other tests, there are certainly some things that don't work the same as before. Let me know about them and we'll get them fixed right away. This version adds a <p6rule> that can be used to parse a valid Perl 6 rule. (As one might expect, matching something against <p6rule> returns the parse tree as a Match object.) This version also allows grammars to define custom <ws> rules to be used in place of the default <ws> rule used for whitespace metacharacters. And the :words modifier now works along with the :w modifier. There are quite a number of other changes in this version or that will appear in the next couple of days, so I'll send a followup email with more details soon. Until then, questions, comments, patches, and tests are greatly appreciated! Pm