# New Ticket Created by  Will Coleda 
# Please include the string:  [perl #49758]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=49758 >


% make perl6 #in the top level directory.
% ./perl6

> $a=1;
No scope found for PAST::Var '$a'
> my $a=1;
Bus error

This error ONLY happens in interactive mode; given perl6 is basically
invoking the HLLCompiler method for this, I suspect an issue with the
toolkit rather than perl6 itself.

>From IRC:

<lathos> After the interpreter panics it for some
                reason starts wrapping up new code as closures instead of subs.
<lathos> Those closures have no outer scope, and so the code which
                invokes a closure explodes on them.

Running with "./perl6 --target=pir", you can see that the second line
above generates the following code:

.namespace
.sub "_block15"  :outer("_block10")
    .lex "$_", $P16
    .lex "$/", $P17
    .lex "$!", $P18
    new $P19, "Integer"
    assign $P19, 3
    new $P20, "Undef"
    .lex "$a", $P20
    eq_addr $P20, $P19, copy_21
    morph $P20, "Undef"
    assign $P20, $P19
  copy_21:
    .return ($P20)
.end

-- 
Will "Coke" Coleda

Reply via email to