On Fri, 30 Jul 2021, 2:30 pm Nathaniel Smith, <njs@pobox.com> wrote:
For [proxy] versus [snapshot], a lot depends on what we think of
changing the semantics of exec(). [proxy] is definitely more consistent and elegant, and if we could go back in time I think it's what we'd have done from the start. Its compatibility is maybe a bit worse than [snapshot] on non-exec() cases, but this seems pretty minor overall (it often doesn't matter, and if it does just write dict(locals()) instead of locals(), like you would in non-function scope). But the change in exec() semantics is an actual language change, even though it may not affect much real code, so that's what stands out for me.
I *think* (please correct me if I'm wrong) that what that calls [PEP-minus-tracing] is now corresponds to the current PEP draft, and [proxy] corresponds to Mark's draft at the beginning of this thread?
At the locals() level, PEP 558 is now [snapshot] (due to your original analysis showing that it was strictly better than what I had at the time), while Mark's draft is indeed [proxy]. Cheers, Nick.
-n
-- Nathaniel J. Smith -- https://vorpus.org