Day 103: Mere punctuations.

autrijus on 2005-05-14T20:19:25

My laptop's AC jack burned up last night, so it's in for a partial transplant now; considering how the keyboard and cd-rom are also quite kaputt, hopefully it will be back tomorrow as promised by the repair people. :-/

Following yesterday's syntax change: it seems that ^method was not, after all, an accepted or welcomed consensus for calling methods on the current invocant. So it's gone from Pugs; use $?SELF.method or declare method foo ($self: $arg) explicitly, as explained by Larry.

There have been some discussions on #perl6:

<autrijus> the dot in $.attr is unfortunate
<PerlJam> autrijus: indeed
<eric256__> yea i'm not sure i like $. being so much different than .

However, I think it's time to move on:

<autrijus> but, anyway. as interesting as punctuations are, I don't think it's wise to dwell on them too long... I got my answer and that is $?SELF or explicit inv for now.
<autrijus> I'd much rather leaving @Larry more time to figure out the missing Tier-1 synopses.
<PerlJam> autrijus++ yep. you have the wisdom of it. :)

In other p6l news, Damian posted an interesting list of use-cases for the [...] reduce metaoperator. I noticed this neat example (slightly paraphrased):

if ([<] @numbers) {
    say "All numbers are monotonic!"
}
So I asked about whether [...] preserves the associativity of the operator inside. Larry confirmed with a punny explanation, comparing the metaoperator with radio:
Yes. It's as if there is a long cat, only without the cat.

The usual rapid flow of commits and ++s continued today:

  • The $obj.id method is implemented to return an unique ID for each object.
  • foo($obj) was parsed incorrectly as foo(: $obj); it is foo($obj :) now.
  • Stevan made Perl::MetaModel use real Perl 6 OO now. When I get my laptop back and implement the Haskell-side metametamodel, we'll have a nicely reflective strange loop to play with.
  • bsb added Haddock to our messy-by-neccessity command line argument parser.
  • gaal noticed that <<$var>> was suddenly returning match objects that loops forever, due to the internal implemention's use of split. I kluged a :stringify rule adverb to deal with this issue.
  • iblech added more documentations for Set.pm and Net::IRC, then went ahead to use Set objects to maintain the list of currently joined channels.
  • masak and iblech cleaned up meta_meta_classes.pod a bit more.
  • Juerd started quickref/data for data structure syntax.
  • Corion cleaned up many OO tests, and moved even more working pugsbugs tests to where they really belong.
  • adehohum found some bugs with lexical scopes inside map, and wrote tests for it. He also found new ways to make PGE segfault -- I think I'll move all P6Rules tests en masse back to the parrot tree where PGE lives.
  • eric256 and iblech worked on tests for the reduce metaoperator.
  • Thanks to pjm, I added a notice to README to say OS X 10.4 (Tiger) users need to gcc_select 3.3 for compiling Pugs with GHC 6.4.