Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
29 lines (19 sloc) 1.26 KB
1. cp EmitRuleP5Ratchet into EmitRuleP6Rathet and prefix all subs with "use v5"
2. Use to convert EmitRuleP6Ratchet into EmitRuleP5Ratchet
3. Port EmitRuleP6Ratchet by hand to MiniPerl 6 (without using P6 Rules or advanced OO stuff)
---- Here We Declare Grammar Engine is Bootstrapped ----
4. Design AST for MP6 by taking Pugs.Exp and kill nodes, or take v6/AST and add nodes.
5. Write v6/Emit(MiniPerl6->Perl5) and redo step 3 to make an optimized PCR/EmitRuleP5Ratchet
6. Rewrite v6/Grammar/ to port Yapp-dependent parts into a new precedence parser
written in MP6 that utilizes <%foo> style tokens
7. Finalize Perl 6 AST by taking MP6 AST and expanding on it.
8. Convert all of v6/Grammar/* to MiniPerl6 and emitted to optimized Perl 5 code
---- Here We Declare Perl 6 Parser is Bootstrapped ----
9. Port MO to MiniPerl6
10. Port Sub::Multi to MiniPerl6
11. Port builtin Value and Container classes to MiniPerl6
---- Here We Declare Perl 6 Runtime is Bootstrapped ----
NB: The VM is responsible to provide coroutines, threads, sockets, etc etc;
if it's missing in the VM, it's _not_ our job to emulate them by drastically
change the emitting strategy to e.g. CPS. All Value/Container classes do is
to bridge the native VM API with Perl 6 class/method API.
Something went wrong with that request. Please try again.