- Fix miscellaneous typos
- Remove an outdated mention of possibly dropping suport for storing
extra f_locals keys in optimised scopes
- Make it more explicit that accessing frame.f_locals in Python
refreshes the f_locals cache on that frame
- Replace GetReturnsCopy with GetKind & other updates
- Reference Jan/Feb 2021 python-dev threads
- Note that read-only views on optimised frames have
the same cache consistency limitations as the read/write
proxy does.
Further implementation work on the fast locals proxy resulted
in treating the "f_locals" frame storage more as an implicitly
or explicitly updated cache, rather than treating it solely as a
dynamic snapshot.
* drop wording about daemon threads in isolated subinterpreters
new threads are not allowed (including daemon threads) implies that the opposite
is true in isolated=False subinterpreters, that new threads are allowed (*excluding* daemon threads)
* Update pep-0554.rst
Co-authored-by: Thomas Grainger <tagrain@gmail.com>
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
* `pdb` stores `__return__` and `__exception__`` entries on
arbitrary frames, so that feature needs to be preserved
* Some fast locals proxy operations will implicitly update the
underlying shared mapping on the frame
* Anyone explicitly calling `LocalsToFast` is going to want the
read/write proxy, not any of the read-only options (plus it's
hard to fit an essay in an error message)
* Remove lingering reference to the removed `PyLocals_RefreshViews()`
While reading PEP 3104 to understand the ``nonlocal`` keyword, I found the explanation for why an alternative was not chosen to be vague. Further digging revealed an example for why there was a concern that ``.x`` and ``x`` could be used interchangeably. I linked this example as a footnote to save future readers time from digging to find an example. I hope this will increase comprehension of the PEP for future learners.