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
Other progress on the PIR front:
$x += 3
my @a = 1..10; @a=100; say join ",", @a
&infix:=<constructs a Pair object.
pugs -Cno longer create the misleading
dump.astfile -- the compiled code is now simply piped to stdout.
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.