fglock's braindump - Perl 6 enters the "What's the deal?" phase



Lambdafols, Parrotfolks and Camelfolks - all have their near-working implementations of Perl 6 now.

If you look around, all the pieces for an alpha version are already there.



* Long term (>2 weeks) plan - Have a plan for Perl 6 Alpha



Does writing in Pugs help? 

- it will not be able to compile itself to Pugs, 

- but it can compile to the backends 

-- Javascript looks to be the more stable

-- Parrot is "the" target



Types, OO, 

- follow Pugs Eval/Val/Syn structure.

- use metamodel

- how is Allison's experience with Punie doing



Self-host.



Reuse PGE.



Migrate Prelude, Prims from Pugs.



Generate PIL/YAML.



Annotate the AST; make OO nodes.



Modularize 

- are the compiler modules just linked together, or is there a high level protocol (plug-ins)



What "The Perl 6 AST" looks like



* Conclusion



Self-hosting in Perl5

- almost there, 

- but: proof of concept is done, people should move on to other projects

- there are too many Perl6 implementations already

- not likely to be an Alpha version

-- too many features to add

-- neither Pugs tradition, nor TPF support

- Parrot backend would be added later

- incremental - "works" from day zero

- migrate the self-hosting to Parrot too

- small - might attract more new developers "is that *all* code?"

- can reuse Pugs runtimes



Self-hosting in Parrot 

- use Pugs as development platform

-- does Pugs eval() Parrot

-- document each syntax construction used 

--- these will need to be implemented first

- modify PGE if needed 

-- needs(?) to be self-hosting - written in Perl 6

-- or make PGE an optional module

-- reuse some lrep ideas

- target a specific Parrot version 

-- work around any problems in Pugs or Parrot, instead of trying to fix

-- do not try to modify the code for each new Parrot version

- reuse Punie AST

-- how is it different from Pugs AST

- reuse existing Grammar

-- is it correct

- From day zero it would need:

-- pluggable emitter, pluggable grammar engine

-- OO nodes

- Too big, complex project

-- will likely work if at least audreyt, stevan, Allison and Patrick work together

-- reuse all experience available - no big architecture mistakes ahead

-- How is it better than Perl5/lrep self-hosting

