pX/Common/iterator_engine/ChangeLog - fglock 2006-03-07 - rules can use Perl 5 syntax - rule xxx :P5 {...} - but needs a fix in the syntax - Grammar is circular - compiles itself, almost 100% written in p6 - Command line switches - pmurias++ - iterator_engine.p6 - a Perl 6 port of the backtracking parser - putter++ bug fix 2006-03-05: - 'if' implemented using Perl 6 macro (XXX - slow; non-reentrant yet; redefines subroutines to emulate anon-subs) - fixed $() syntax - refactored compiler dispatcher (pmurias) - implemented low-level #comment-is-whitespace (putter) 2006-03-04: - detailed TODO list - macros * macro compile time: - compile macro expander to AST - emit AST to Perl5 - insert the new term in the grammar * macro expander run time: - parse macro 'tail' - bind macro parameters to macro body using source filter (only named parameters - TODO: $0, $1) - compile macro body to AST - emit AST to Perl5 - execute Perl5 and get the resulting Perl6 source-code - compile the result to AST (TODO: if the result was AST, don't compile) XXX - re: source filter - parameters should be passed to the precompiled macro body, but subroutines don't support named parameters yet. Optionally, the arguments could be bound to the AST of the macro body. XXX - is string interpolation in macros different? does (') interpolate? - aliasing in rules - fixed $<$name> to $ when using alias XXX - is $ supposed to be $(name) ? - new iterator_engine op - ruleop::wrap() can be used to insert tracing and debug messages in the parser 2006-03-01: - precompiled Prelude - loads in < 1s 2006-02-26: - working Perl 6 compiler - about 100 lines of code are now written in perl6 - started a Prelude say 'compiling Prelude'; sub infix:<+> { eval(' $_[0] + $_[1] ', :lang); } - optimized rules - use Text::Balanced for implementing and - 124 tests for p6rule.pl - note: spec change '$<>' to '$()' not applied yet