Day 108: Assorted hackings.

autrijus on 2005-05-19T20:56:09

This now works, much to the joy to pad walkers everywhere:

my $x = 1;
{ my $x = 2; say $x + $OUTER::x }   # 3

I looked briefly at Mono, CIL and Mondrian/Haskell.NET today. It looks like I can't easily get Mondrian working on Mono or reuse its code, so Pugs.Compile.CIL does not look as attractive as it first seemed to be. Hmm, maybe Pugs.Compile.Perl5 is more attractive after all...

iblech implemented Perl 5-like behaviour for warn(), die() as well as warn("...\n") and die("...\n").

Yesterday's infix operator fix broke lots of tests, because all loose infix operators are made into tight ones. It caused Limbic_Region some troubles, but has been sorted out in the end.

Hacking on [...] autogeneration continued; it now works for user-defined infix subroutines, so defining infix:<Z> will yield a prefix:<[Z]> for free. However, the base operator's associativity is not yet respected -- it's all foldl now -- but it will be fixed. Update -- it's now fixed, two hours later.

I discovered that [=>] 1..10 can efficiently build linked lists dear to functional programmers.

iblech implemented a p6explain script, to explain what a complicated operator may mean. He is also working on a p6bible script, ported from Perl 5 to PErl 6.

The bundled Syck library has been updated to 0.55; the parser still works, and an emitter to serialise Pugs datatypes into YAML is planned.

iblech implemented two Roles for Net::IRC: Net::IRC::JoinOnInvite and Net::IRC::SeenExt.

After some wrangling with Haskell's type system, chromatic implemented $?CLASS and $?PACKAGE.

scook0 tweaked munge_haddock.pl so it also documents private functions, instead of just exported functions from modules.

putter, mugwump and Stevan continued their work on MetaModel. Stevan wrote a MetaModel compiler realises the meta-objects into real, Perl6-level Pugs objects, thereby effectively extending the OO system in itself. Amazing!

The atan() function was broken -- it was lacking an unary form, and the binary form was not adequately tested. putter fixed both issues.

mugwump added even more Unicode operators to Set.pm, and switched the implementation to use junctions internally.

Sorry for the brevity (and omissions) -- really need to sleep now. Ciao!