Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

autrijus (1505)

  (email not shown publicly)

Journal of autrijus (1505)

Sunday June 26, 2005
10:49 PM

Day 143: Night before YAPC::NA

[ #25376 ]
Last night luqui entered the zone, and cranked out a PIL to Perl 5 codegen interface. Stevan's Perl 6 object environment in Perl 5 is progressing nicely; today nothingmuch extended the codegen with PPI, so we can work with quasiquoting Perl 5 syntax trees instead of concatenating strings.

The upshot of all this is, in addition to GHC and Parrot, Perl 5 is going to be the third runtime that we can run Perl 6 on. Because the codegen and PIL representation are themselves written in Perl 6, we may recompile this:

    use perl5:PPI;
    use Perl::Compiler::CodeGen::Perl5_PPI;
    # ...codegen from PIL to Perl5...

Into this Perl 5 code:

    use PPI;
    use Perl6::Loader 'Perl::Compiler::CodeGen::Perl5_PPI';
    # ...codegen from PIL to Perl5...

and run it with the Perl 5 runtime. Perl 6's base types and the roles/class system are evaluated in Stevan's Perl6::MetaModel module to be released later this week; Coro and Perl6::Junction etc may be needed to simulate the more complex parts of the control flow.

At the Cabal meeting today, Allison mentioned that it would be nice to have the same set of PIR/PASM abstraction tree I'm using available as Parrot objects, so people targetting Parrot can generate their code in a more robust form, and said it would be nice to have it at OSCON time. Well, by tonight's dinner time I've hacked the Parrot objects emitter from any Haskell data structures to PIR objects. To make use of them in the stand-alone PIR, we'd just need to port the 100ish line of instance Emit defintions. We can also use the same Haskell-declarations-to-objects process to keep PIL's Haskell form and Perl 6 form in sync, which would ensure reusable macro and compiler code, which allows gradual porting of Haskell to Perl 6.

There's plenty of other news, for example the first templating system being developed on Pugs, but I really need to crash now after less than 3 hours of sleep last night. And I also got a 3hr talk on Tuesday, which I have zero slides prepared... ;-)

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.