Day 220 (r7000): Updates from lambdacamels.

autrijus on 2005-09-14T17:33:10

I'm still scrambling, rather unsuccessfully, to redo all the lost works in this week, before my plane to Estonia takes off next Tuesday.

Fortunately, lambdacamels from #perl6 decided to collaboratively write this journal in my wahnsinnig absence, so here is the first issue. Enjoy!

PIL-Run

With newly added my variables in the weekend, the Perl 5 backend now supports complex definitions of lazy lists:

sub fat ($x) {
  if ($x == Inf) { $x }
  else { if ( $x == 1 ) { $x } else { fat( $x-1) * $x }  }
}
@a = (1..Inf).map:{ fat($_) }

(1, 2, 6 ... Inf)

Perl6-MetaModel 2.0

We decided today, after some discussion on #perl6 that class attributes need not be handled by the metamodel, and could be just treated as package level our variables. This of course simplifies the meta-model, which is always a good thing.

The latest version of the object model diagram was posted to perl6-langauge for review. This represents the current state of the meta-model prototype, our next step is to add Roles.

Debian package updates

pugs 6.2.9 was recently uploaded to Debian unstable and will go into the archive with the next dinstall run on 14.Sept 05.

The Debian package now Build-Depends on libghc6-plugins-dev. So now we have a pugs with perl5 and haskell eval support. Now the only thing missing for a full featured pugs in Debian is parrot, which is being worked on currently. General Pugs updates

Pugs can now be called with a specific runtime engine. The Perl 5 backend is invoked with pugs -B Perl5, and the JavaScript backend can be invoked with pugs -B JS.

The $?PUGS_BACKEND variable tells which is the current backend.

The wrapper script around pugs_bin, pugs, was modified so pugs -BJS respectively pugs -BPerl5 will launch the interactive shells of PIL2JS/PIL-Run. This also means that make test-js works now.