Friday November 04, 2005
Day 245: Seventh day at Liz's - Madly hacking.
Vast number of good news and progress. However, as I'm in hyperfocus coding mode now, this journal is suffering quite a bit. So, some random links and thoughts:
- Chip at last delivered a sane and wonderful lexical pad spec for Parrot. I'm working on codegenning to it -- I wonder if Leo will beat me to it by implementing the spec.
- Patrick committed the long-anticipated
PGE::OPTable precedence parser, and posted an update to P6C about it. This means we can finally start working on porting Parsec rules to Perl 6 rules, and bootstrap the previously-nonbootstrappable Parser component to Perl 6.
- I consulted with Stevan and iblech and decided that metamodel bootstrapping should be done only once, in the compiler; the compiler will serialize ::Object and ::Class as opaque objects. This alleviates the burden of runtime writers even more.
- I checked in code to make compile-time objects survive
pugs -CPugs (and the trivial test-only
pugs -BPugs), which makes pugscc applicable to most Perl 6 programs.
- To move beyond pugscc's native approach of serializing compiler state, I repo-copied PIL1 into PIL2, and started the long-overdue PIL renovation to support opaque objects, lexical hoisting, labels, pragmas, and other neat things that's long overdue. Sadly YARV can't help much here, as it doesn't seem to handle Ruby's BEGIN block.
- kane, liz and I did a bit SubEthaEdit on S22 draft to collect thoughts on Perl 6's module support and 6PAN issues. Sadly, during the lunch break, I suffered through serious carsick, and cannot resume the session with kane. My apologies. :-/
- Stevan polished the MetaModel bootstrap sequence to a point that the call graph is looking like S-expressions, so he went ahead and converted them into that. Now we just need a codegen to Perl6/Hs/PIR to finish the bootstrap of the metamodel part -- nothingmuch mentioned the codegen maybe written in attribute grammars (AGs), and that sounds like a good idea.
By the way, the main Pugs subversion is again down for the weekends, so try this fallback for latest version.
That's it for now, I think... More hacking awaits me. :)