This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients Mark.Shannon, arigo, belopolsky, benjamin.peterson, gvanrossum, ncoghlan, njs, vstinner, xdegaye, xgdomingo, yselivanov
Date 2017-10-13.08:05:00
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1507881900.25.0.213398074469.issue30744@psf.upfronthosting.co.za>
In-reply-to
Content
We're OK with the idea that installing a trace function might automatically turn off various compiler and interpreter managed optimisations (it's similar to how requesting or implying reliance on full frame support in other implementations can disable various optimisations). For trace hooks like coverage tools and debuggers, that's often downright desirable, since it makes the runtime behaviour correlate more directly with the source code.

What we're aiming to avoid is requiring that implementations make the assertion in "a = 1; locals('a') = 2; assert a == 2" pass at function scope, and if anything, we'd prefer to make it a requirement for that assertion to *fail*.

Requiring locals to actually *be* a write-through proxy (for all locals, not just cell references) would revert Python's semantics to the state they were in before the "fast locals" concept was first introduced, and we have no intention of going back there.
History
Date User Action Args
2017-10-13 08:05:00ncoghlansetrecipients: + ncoghlan, gvanrossum, arigo, belopolsky, vstinner, benjamin.peterson, njs, xdegaye, Mark.Shannon, yselivanov, xgdomingo
2017-10-13 08:05:00ncoghlansetmessageid: <1507881900.25.0.213398074469.issue30744@psf.upfronthosting.co.za>
2017-10-13 08:05:00ncoghlanlinkissue30744 messages
2017-10-13 08:05:00ncoghlancreate