Day 46: Baby steps.

autrijus on 2005-03-18T22:17:37

Today has been really really crazily full of Pugs events and developments, even by the breakneck Pugs standard, and I can't possibly summarize them all. So just some short links:

  • Mad Golfer asavige ported the original Golf test program into Perl 6, and wrote a summary about his findings.
  • Shortly before he posted it to PerlMonks, asavige asked on p6l about how best to slurp a file in Perl 6. I promptly implemented the slurp() builtin for him.
  • Larry made fun of my incessant use of Woot. I feel honoured. :)
  • malaire, nothingmuch, gaal and stevan of the test squad kept churning out tests; a better layout for the t/ directory is being worked out just now.
  • masak reported that hanoi.p6 produces weird results. It turns out that in binding sub foo ($a, $b), the $a is being seen from the expression bound to $b; this bug was caused by the support for sub foo ($a, ?$b = $a). Now only the defaulting for optional args can see the earlier bound parameters.
  • My Pugs hacking walkthrough on #perl6 for masak may be of interest to aspiring Pugs hackers. Some of it is likely appear in PA02 in a more concise form.
  • Ingy refactored our Makefile.PL to be less insane, but made it break for earlier MakeMakers, so we now require MakeMaker 6.17 or later. Much kudos to gaal for spending tons of time tracking this down!
  • The Unicode problem has been resolved; I switched to Dimitry Golubov's code (the same codebase as the upcoming GHC 6.4.1), and it now works across all platforms. I have also added -O to Eval and Unicode modules, so a normal Pugs executable should now be up to 5x faster.
  • I applied lightstep's massive refactoring patch to make := binding produce thunks (evaluations that remembers its original environment). So lvalue binding now works consistently, and the symbol table no longer contains Exps -- it's all Vals now.
  • malarie implemented substr; jworthington implemented ASCII versions of hyper operators; stevan finished porting File::Spec , except for the VMS part, but I don't think GHC runs on VMS anyway...
  • Darren continues to make Locale::KeyedText more idiomatically p6ish; so far all p6ification works have resulted in fruitful p6l discussions, often causing healthy rule 2 invocations. Nice!
  • Speaking of rule 2, Larry's sleepy brain came up with a truly ingenious idea to fix the $self.method vs $_.method dilemma, namely to introduce o for the current object and c for the current (dynamic) class. I think it is really the best solution I have seen so far, but p6l is still hashing it out and Larry seems about to change his mind again, so maybe it will become something even better.
  • Oh and I'm going to YAPC::NA 2005 in Toronto. Hope to see you there! (and no, I'm not going to OSCON. I'm highly interested in EurOSCON, though.)

Whew. I don't think I've covered more than half of today's developments. But I must sleep now. obra will arrive in less than 24 hours...