[Parrot] #173: lexicals not found in PIRC

Parrot parrot-tickets at lists.parrot.org
Sun Nov 28 11:02:45 UTC 2010


#173: lexicals not found in PIRC
----------------------+-----------------------------------------------------
 Reporter:  kjs       |        Owner:  kjs     
     Type:  bug       |       Status:  reopened
 Priority:  normal    |    Milestone:          
Component:  core      |      Version:          
 Severity:  medium    |   Resolution:          
 Keywords:  lexicals  |         Lang:          
    Patch:            |     Platform:          
----------------------+-----------------------------------------------------

Old description:

> lexicals can't be found in nested .subs.
> the following works in parrot, but the generated bytecode doesn't seem to
> work:
>

> {{{
> .sub main
>  .lex "x", $P0
>  $P0 = new "Integer"
>  $P0 = 42
>  foo()
> .end
>
> .sub foo :outer("main")
>  $P0 = find_lex "x"
>  print $P0
> .end
> }}}
>

> So, apparently, lexicals are not stored correctly.
> This needs fixing.

New description:

 lexicals can't be found in nested .subs.
 the following works in parrot, but the generated bytecode doesn't seem to
 work:


 {{{
 .sub main
  .lex "x", $P0
  $P0 = new "Integer"
  $P0 = 42
  foo()
 .end

 .sub foo :outer("main")
  $P0 = find_lex "x"
  print $P0
 .end
 }}}


 So, apparently, lexicals are not stored correctly.
 This needs fixing.

--

Comment(by bacek):

 This is output of sample from description.

 {{{
 ~/src/parrot (master)$ ./parrot lex.pir
 42
 ~/src/parrot (master)$ ./parrot -o lex.pbc lex.pir
 ~/src/parrot (master)$ ./parrot lex.pbc
 Null PMC in say
 current instr.: 'foo' pc 21 (lex.pir:10)
 called from Sub 'main' pc 13 (lex.pir:5)
 }}}

 --
 Bacek.

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/173#comment:7>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development


More information about the parrot-dev mailing list