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