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:
$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.
<<$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.
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.
gcc_select 3.3
for compiling Pugs with GHC 6.4.