Today I discovered to my surprise that part of the core of Perl 6 is written in Perl6. This is Prelude.pm. Having this part of the code in Perl6 means it is easier for Perl 6 users to hack on. It also means this functionality is available to all Perl 6 implementations, not just Pugs.
For effiency, Prelude.pm is compiled into a YAML format file, and later read back into Haskell with less effort.
There are still some functions which are currently implemented in Pugs which would be good candidates to include in Prelude.pm. These are listed on the Preludification Candidates page, although I can't vouch for the freshness of the list. This is your chance to write some of Perl 6 in Perl 6!
(There's also a Prelude/PIR.pm which is written in a Perl 6, and I'm not sure how it's related. If you know, please add a comment to the top of PIR.pm to explain the difference. )
Last week I wrote an example script (examples/ca_wolfram.pl in your Pugs tarball or svk checkout) in Perl 6, but found I was lacking sprintf("%b",$arg), which was used in my Perl 5 version of the same script. The #perl6 crew, led by audreyt++ encouraged me to implement it in Prelude.pm, and voila! Not an hour later, I had sprintf("%b") working like a charm in my script. w00t!
Posted by: rodi | 2006.09.10 at 10:04 AM