On Sat, Aug 14, 2021 at 8:01 PM Nick Coghlan <ncogh...@gmail.com> wrote:
> Bringing the public record up to date with a brief off-list discussion > between Mark, Nathaniel and I: > > * Mark hasn't convinced me that getting rid of the frame value cache > entirely for optimised frames is a good idea, so he's going to write that > proposal up as a competing PEP. Once it has been drafted and is ready for > review, he will request the SC assign a PEP delegate. > * On the PEP 558 front, Mark's proposal has highlighted a few > inefficiencies in my reference implementation, where the code still > implicitly updates the frame value cache in cases where the cache being up > to date may not matter to the proxy API client. So I'll be working on > another iteration of the implementation that ensures each caching proxy > instance (at worst) only pays the O(N) cache refresh price on the first > less than O(N) operation that relies on the cache being up to date, rather > than paying it every time "f_locals" is retrieved from the frame object. > > We still have plenty of time before 3.11b1, so we expect it will be a > month or two before the two proposals are in a position to be compared > directly. > I think I can speak for the SC by saying, "please, take as much time as you want" 😉. We are still trying to get out for our PEP review backlog as it is. -Brett > > Cheers, > Nick. > > On Fri, 30 Jul 2021, 5:25 pm Nick Coghlan, <ncogh...@gmail.com> wrote: > >> >> >> On Fri, 30 Jul 2021, 2:30 pm Nathaniel Smith, <n...@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 >>> >> _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/EU2TU6R2HDV6NLZQ56MSDIRMG6EHSOJO/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/U4K7OFXLQTNW667XAVEJPTPFSDTSWXB4/ Code of Conduct: http://python.org/psf/codeofconduct/