On Fri Oct 07 10:24:37 2011, coke wrote: > On Sun Jul 11 07:07:52 2010, masak wrote: > > <masak> rakudo: sub foo { my $y; our sub bar { say $y } }; bar > > <p6eval> rakudo 7579f7: ( no output ) > > <masak> this is problematic in my model. :/ > > <masak> and seemingly in Rakudo's, too :) > > <masak> locally, Null PMC access. > > * masak submits rakudobug > > This no longer generates an NPA: > > 13:18 < [Coke]> rakudo: sub foo { my $y; our sub bar { say $y } }; bar > 13:18 <+p6eval> rakudo 1c2c2d: OUTPUT«Could not find sub &bar in > block <anon> > at /tmp/SRJiCVZA9p:1 in <anon> at > /tmp/SRJiCVZA9p:1» > > But moritz thinks this is still incorrect behavior.
For what it's worth, I don't think it's incorrect behavior. Perl 6 semantics *used* to find &bar in the above case, but no longer does. (This is part of a general trend of Perl 6 leaning more and more heavily on lexical scoping as a guiding principle.) I think the change happened somewhere around the nqp-rx/Rakudo Star transition.