# New Ticket Created by Jonathan Sillito # Please include the string: [perl #18170] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=18170 > The attached patch implements a very complete set of lexical scope semantics. For those that have been following along, here are some highlights. - supports (fast) access by lexical position, rather than just by name - adds a couple more ops and some variations, including push_pad and peek_pad - adds a couple of keyed vtable functions for Scratchpad PMCs, so the following work in a similar way to the various flavours of find_lex and store_lex. The difference is that the find_lex and store_lex ops work implicitly on the current pad, while these let you explicitly specify a pad new_pad P20, 0 # does not push on stack set P20[0;"foo"], P0 # like: store_lex Ix, Sy, Pz set P20[0;0], P0 # like: store_lex Ix, Iy, Pz set P20["foo"], P0 # like: store_lex Sx, Py set P20[0], P0 # like: store_lex Ix, Py set P3, P20[0;"foo"] # like: find_lex Px, Iy, Sz set P3, P20[0;0] # like: find_lex Px, Iy, Iz set P4, P20["foo"] # like: find_lex Px, Sy set P4, P20[0] # like: find_lex Px, Iy - not based on PerlHash --------------- Files affected by patch: - added: classes/scratchpad.pmc - added: t/pmc/scratchpad.t - changed: sub.c - changed: include/parrot/sub.h - changed: core.ops - changed: t/op/lexicals.t Comments? -- Jonathan Sillito -- attachment 1 ------------------------------------------------------ url: http://rt.perl.org/rt2/attach/40837/32924/c69a1d/lexical.tarThread Next