Stories
Slash Boxes
Comments
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)

autrijus
  (email not shown publicly)
http://pugs.blogs.com/

Journal of autrijus (1505)

Sunday June 19, 2005
08:25 PM

Day 136: Ninth day in Leo's: Prelude to PIR

[ #25279 ]
Thanks to iblech and putter, we now have a beginning of Prelude::PIR, a set of built-in Perl 6 functions implemented in Perl 6 for Parrot. I expect these, along with other primitives implemented in PIR, to be compiled to bytecode eventually.

After days of hacking, chromatic finally conquered Pugs's parameter binding to implement submethod BUILD (+$.x, +$:y) that works with .new calls. The next step toward OO nirvana is probably class variables (my $foo and our $foo inside a class declaration), which should make sri much happier.

Other progress on the PIR front:

  • The &infix_postfix_meta_operator:<=> now works: $x += 3
  • Basic support for arrays: my @a = 1..10; @a[5]=100; say join ",", @a
  • &infix:=< constructs a Pair object.
  • pugs -C no longer create the misleading dump.ast file -- the compiled code is now simply piped to stdout.
  • Trivial support for explicit tail calls via &sub.goto().
  • Lots and lots of primitives filled in.

Most of my time today are spent on sleeping -- the last week has stressed me out a bit -- as well as reading papers and other people's implementations. Of particular interest to me is the CLR family of languages -- Nemerle, Mondrian, F#, Boo, etc. Of those, Nemerle is especially interesting; like Perl 6, it is designed around metaprogramming, parametric polymorphism, good ML-style functional programming primitives, and a nice OO core.

Chasing the bibliographies from Erik Meijer of Mondrian fame, I have found some nice algorithms for codegen to register-based machines ; Dan's arguments for a register-based design and Leo's arguments for variable-sized frames all makes much more sense to me now. If AbsIL has a free Haskell counterpart, or if its F# library can interperate with Mono, I'd seriously consider working on Emit.IL for CLR too...

Anyway, I need to sleep now. Hopefully tomorrow I'll have enough time to roll a release. Then I'll fly to Toronto and participate in the next Hackathon -- will keep you posted.

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