a) [1] is .Sub, [2] is turned off The subroutine prints main's $m - very likely wrong.
Q: Should the Sub get a NULL scratch pad, or a new empty scratch pad stack?
b) [1] is .Closure, [2] is turned off The closure prints "main" - probably ok
c) [1] is .Closure, [2] is "newpad 0" Lexical '$m' not found
d) [1] is .Closure, [2] is "newpad 1" prints "main"
Q: What is correct?
.sub _main
new_pad 0
new $P0, .PerlString
set $P0, "main\n"
store_lex -1, "$m", $P0
.sym pmc foo
newsub foo, .Sub, _foo # [1]
.pcc_begin prototyped
.pcc_call foo
.pcc_end
pop_pad
end
.end
.sub _foo prototyped
# new_pad 1 # [2]
find_lex $P0, "$m"
print $P0
# pop_pad
.pcc_begin_return
.pcc_end_return
.endleo
