Due to clkao++ and fglock++'s work, the CPAN version of v6.pm now passes all Pugs sanity tests, up and including the Perl 6 Test.pm.
That makes it the second implementation (after Pugs) and the fourth runtime (after Pugs's Haskell/JavaScript/PIR backends) that has access to the 11,000+ subtests in the test suite. Once the Parrot/Perl6 implementation support for subroutines, arrays, hashes and use statements, it will join as the third implementation that can run the test suite.
Development of v6.pm, the new AST, a concrete definition of multiple dispatch, etc. continues apace in #perl6; we are seeing more than 50 commits per day in the past few days. (gaal++ says it's just like the good old days of early Pugs development, but it's actually faster now. :-)) For example, v6.pm can now parse regex/token/rule declarations natively.
I'm very excited about this new cleanly-partitioned task space of Perl 6 implementation:
(Non-Perl 5 Specific)
- Descriptions of semantics in the test space;
- Analytical summaries and stories in the spec space;
- Algorithmic expression of effects and structures in the new AST space;
(Perl 5 Specific)
- Extensions in XS to Perl 5 to make Perl6 semantics possible;
- Implementation APIs to embed those semantics as Perl 5 modules;
- Idiomatic Perl 5 sugar that makes the APIs accessible;
- Translation from Perl 6 surface syntax into those new perl 5 idioms;
And the best thing is that, instead of a cyclic dependency as we had before, each layer are independent from the ones after it. It means that CPAN people can use Class::MOP and Data::Bind to improve their own frameworks; or to use the new idioms enabled by Moose.pm et all; all without necessarily switching to the Perl 6 surface syntax.
Moreover, it also makes v6.pm's output idiomatic -- we just need to incrementally build a new Perl 5 idiom, which, as Bjorn Freeman-Benson noted, is a Very Good Thing.

Recent Comments