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