Wim (>): > The following program works fine in pugs r17041 (which is the rev of > /usr/bin/pugs on feather): > > my $r=\{say $x+1}; > my $x=2; > $r(); > > With r17041, this gives 3; > However, on the latest pugs (r17615 or later), it gives an error: > *** > Unexpected "$r" > expecting "=", "::", context, ":" or "(" > Variable "$x" requires predeclaration or explicit package name > at pugs_var_bug.p6 line 1, column 4 > > It would think that the r17041 result is correct. > ------- > There is also a scoping issue in r17615: > > my $v=1; > if ($v) { > map ->$v {$v},(2); > } else { > $v; > } > > With r17041, this gives 2; With r17615 it gives an error: > *** > Unexpected end of input > expecting "::" > Variable "$v" requires predeclaration or explicit package name > at pugs_scoping_bug.p6 line 6, column 15 > > Now, if I change $v to $x in the pointy sub, it works fine. > ----- > > Both seems like bugs to me, but can someone confirm that?
They're most likely bugs. Since May, Pugs has been halfway towards getting a new MO core. <http://moritz.faui2k3.org/irclog/out.pl?channel=perl6;date=2007-05-17#i_18608> Not everything has been working since then, and likely won't until the other half is committed. #perl6 people might be able to fix minor flaws, but there's general hesitation towards fixing things that might be superceded by the new MO machinery. // Carl