Dan Sugalski wrote:
> jump FOO
>
> doesn't change scope.
>
> newscope scope_template_in_fixup_section
>
> does. And
>
> exitscope
>
> leaves one. :)
Ok. That clears it up a little. The current scope is part of
the VM internal state and compilers need to generate state
change instructions if they use lexicals. (Actually, I hope
they only need state change instructions if they need the
scope's symbol table...)
Just to check my understanding, Perl 6 will compile
{ bar { foo } blah }
into
newscope
bar
newscope
foo
exitscope
blah
exitscope
What happens with:
goto FOO; { bar { FOO: foo } blah }
Is goto responsible for figuring out it has entered bar's
scope and setting the VM state so that the exitscopes are
properly balanced?
- Ken
- PDD 6: Parrot Assembly Language Dan Sugalski
- Re: PDD 6: Parrot Assembly Language Matthew Cline
- Re: PDD 6: Parrot Assembly Language Bryan C . Warnock
- Re: PDD 6: Parrot Assembly Language Simon Cozens
- Re: PDD 6: Parrot Assembly Language Dan Sugalski
- Re: PDD 6: Parrot Assembly Language Ken Fox
- Re: PDD 6: Parrot Assembly Language Dan Sugalski
- Re: PDD 6: Parrot Assembly Language Ken Fox
- Re: PDD 6: Parrot Assembly Language Dan Sugalski
- Re: PDD 6: Parrot Assembly Language Bryan C . Warnock
- Re: PDD 6: Parrot Assembly Language Ken Fox
- Re: PDD 6: Parrot Assembly Language Dan Sugalski
- Re: PDD 6: Parrot Assembly Language Dan Sugalski
- Re: PDD 6: Parrot Assembly Language Bryan C . Warnock
- Re: PDD 6: Parrot Assembly Language Ken Fox
- Re: PDD 6: Parrot Assembly Language Dan Sugalski
- Re: PDD 6: Parrot Assembly Language Bryan C . Warnock
