I announced last week the release of Parrot 0.5.0, a major milestone in the development of the Parrot virtual machine. The largest accomplishment in this release is the development of a powerful new object system which we believe is capable of serving as the foundation for several modern languages running atop Parrot, including Ruby and Perl 6.
With PDD 15 in place, well-tested, and stable, Patrick Michaud has in the past week made tremendous progress on Parrot’s compiler tools. He’s written a Perl 6 on Parrot ROADMAP.
An early milestone there is the completion of a language called NQP, which is a simplified version of Perl 6 built on Parrot which is powerful enough to use to build other compilers. Previously, the canonical way of writing a compiler for Parrot was to use PIR, Parrot’s native high-level language. That worked, but PIR is a line-oriented assembly language despite some syntactic sugar, so it can occasionally lead to verbose code. You might remember that a few months ago, we made tremendous progress to make the Perl 6 implementation pass the Perl 6 sanity tests (see Adding a Feature to Perl 6 on Parrot); progress slowed when it was clear that NQP would improve our work tremendously.
As of yesterday, NQP
is powerful enough to write real compilers. Within the Parrot source tree,
languages/abc is an implementation of the Unix
What’s next? Migrating the existing Perl 6 implementation from PIR to NQP. Then the fun begins.