|
Perl 6
Preludification Candidates: Revision 1
About Prelude.pmsrc/perl6/Prelude.pm contains some core functions for Perl 6...written in Perl 6. Through a bootstrapping process, it is a available at runtime in an efficient, pre-compiled form. Being able to write some of Perl 6 in a Perl 6 is a benefit it itself, but an additional benefit is that functions in Prelude.pm are automatically available to all Perl 6 implementations, helping spend of their development, and providing some consistency between them. Hacking on Prelude.pmHere's a rough shot at things that are implemented in src/Pugs/Prim.hs now and might be moved to src/perl6/Prelude.pm . Some (many) of those rely on internals support to do the actual low-level stuff, for example IO. So it's (probably) okay to split up the work to a "myprim" sub in the Prelude and a sister "Pugs::Internals::myprim" in Prim. For example, Pipe.open2 offers a simple Perl6 interface to Haskell's runInteractiveCommand. If your prim can be written efficiently in pure Perl6, that's great; by all means put it in the Prelude and mark it as such in a kwid block (FIXME: notation to be determined), so that it may be reused by non-pugsy Perl6 implementations :-) If you have an questions about hacking on Prelude.pm, please ask on IRC want |