Front page | perl.perl6.compiler |
Postings from November 2004
Re: s/P6GE/PGE/g
Thread Previous
From:
Nick Glencross
Date:
November 23, 2004 02:09
Subject:
Re: s/P6GE/PGE/g
Message ID:
41A27CB6.8050005@glencros.demon.co.uk
Patrick,
What you've done works really well! I like the way that things have
really come together (especially the way that the compiler interface works).
Two little quirks: In demo.pir. glob seems be having a problem with Returns:
pge $ ../../parrot demo.pir
input "rule <pattern>", "glob <pattern>", "pir",
target string, "trace", or "next"
trace
Tracing for new patterns is now on
input "rule <pattern>", "glob <pattern>", "pir",
target string, "trace", or "next"
glob fred
input "rule <pattern>", "glob <pattern>", "pir",
target string, "trace", or "next"
fred
"fred\n" <1>
fail
match failed
I would have thought that it general the trailing Return should be
chopped off before being passed into the compile, although p5re_compile
certainly copes with it, so perhaps so should glob.
I know that it's still early days for the harness, but you get a Null
PMC if you haven't supplied a rule before a string to match, and if you
enter rule without a pattern you get "Label 'R3' is already defined". (I
know that in the grand scheme of things these are low down on your list!)
I may get a mo to supply a patch for these if you like...
Well done!
Nick
Patrick R. Michaud wrote:
>As of a few minutes ago, the "Perl 6 Grammar Engine" has been
>renamed to the "Parrot/Perl Grammar Engine" (PGE). All of the associated
>files and symbols have been likewise renamed, and some things have
>been moved around to more closely follow Parrot guidelines.
>
>The README file in compilers/pge has been updated as well, and it
>tries to explain most of what needs to be known to work with PGE.
>
>Some of the highlights of recent changes:
>
> - To load PGE into the Parrot interpreter, use
>
> load_bytecode "library/PGE.pir"
>
> - PGE subroutines and modules now live in the "PGE" namespace.
>
> - Several pattern-matching language compilers are provided with PGE:
>
> "p6rule" - Perl 6 rules syntax
> "glob" - Wildcard globs ( ? = any single character, * = 0+ chars )
> "p5re" - Perl 5 regular expression syntax
>
> All of these are still "under development". To access one of these
> compilers:
>
> .local pmc p6rule_compile
> find_global p6rule_compile, "PGE", "p6rule"
>
> - The beginnings of a test suite are in t/p6rules. More tests
> are greatly desired -- please feel free to contribute some!
> Good sources for test ideas are the existing test suites in
> Perl 5, Damian's Perl6::Rules, etc.
>
> - The :, ::, and ::: backtracking operators have been implemented
> (but need more testing).
>
> - The demo.pir program is a bit more robust, and allows patterns in
> p6rule, glob, or p5 syntax to be entered.
>
> - PGE now includes a "trace execution" option so that we can see the
> steps being performed during a match. Hopefully this will be useful
> in identifying and evaluating potential optimizations for the engine.
> (Yes, it also shows that some parts of the engine are not as efficient
> as they could be--we'll get there soon!)
>
>Questions, comments, suggestions can be sent to perl6-compiler@perl.org.
>
>Thanks!
>
>Pm
>
>
>
>
Thread Previous
-
s/P6GE/PGE/g
by Patrick R. Michaud
-
Re: s/P6GE/PGE/g
by Nick Glencross