René's URL Explorer Experiment


Title: [PEP 558 - WIP] bpo-30744: Trace hooks no longer reset closure state by ncoghlan · Pull Request #3640 · python/cpython · GitHub

Open Graph Title: [PEP 558 - WIP] bpo-30744: Trace hooks no longer reset closure state by ncoghlan · Pull Request #3640 · python/cpython

X Title: [PEP 558 - WIP] bpo-30744: Trace hooks no longer reset closure state by ncoghlan · Pull Request #3640 · python/cpython

Description: (Declined as per the PEP deferral notice in https://github.com/python/peps/pull/3050/files - this reference implementation was useful at the time, but after the frame management changes in Python 3.11 any implementation of the updated semantics in PEP 558 or PEP 667 would be best off starting from scratch. The test cases from this branch might still be useful, but those can always be copied out to a new branch easily enough) Previously, trace hooks running on a nested function could incorrectly reset the state of a closure cell. This avoids that by changing the semantics of the f_locals namespace on function frames to use a write-through proxy, such that changes are made immediately rather than being written back some arbitrary time later. PEP 558 and bpo-17960 cover additional changes to locals() and frame.f_locals semantics that are part of this update. Remaining TODO items before this PR could be considered complete: Resolve #27525 and resync this PR with the main branch Update PEP 558 to cover the performance improvements made to the proxy implementation (lazy initial cache refresh, share a single fast refs mapping between all proxy instances for a given frame) Merge in Python 3.11 frame implementation changes Fix fast locals proxy implementation to account for Python 3.11 frame implementation changes Fix fast locals proxy implementation to follow the design changes in python/peps#1787 Stop implicitly updating the local variable snapshot when running Python tracing functions Python API documentation updates for locals(), vars(), and potentially others (check all locals mentions) docstring updates for locals() (and potentially vars()) PyEval_* C API documentation updates PyFrame_* C API documentation updates Fix C API header layout to follow modern conventions (#18052) When rearranging headers, fix the clang warning/error about PyFrameObject redefinition Add refcount adjustment info for new C APIs Migrate eval() default locals namespace to PyLocals_Get() Migrate exec() default locals namespace to PyLocals_Get() Report an error if IMPORT_STAR opcode is encountered in a CO_OPTIMIZED frame Add an explicit test for the new PyFrame_LocalsToFast() runtime error Add explicit C API tests for PyLocals_Get() and PyEval_GetLocals() at different scopes Implement and test the other new PyLocals and PyFrame functions Implement and test the following methods on the fast locals proxy: setdefault() popitem() clear() update() (theoretically already implemented, but needs explicit tests) Add explicit tests for the behaviour of proxies that reference a cleared frame Desirable code structure improvements (current plan for these is to put any duplicated into a sharable location in this PR, but file separate maintainability issues to migrate to using the shared code in the original locations, to avoid the diff size impact on this PR): Deduplicate the mutable mapping code copied from odictobject.c Move the DictProxy code out of descrobject.c (obsolete task, as frame locals proxy is now independent of mapping proxy) https://bugs.python.org/issue30744

Open Graph Description: (Declined as per the PEP deferral notice in https://github.com/python/peps/pull/3050/files - this reference implementation was useful at the time, but after the frame management changes in Python 3...

X Description: (Declined as per the PEP deferral notice in https://github.com/python/peps/pull/3050/files - this reference implementation was useful at the time, but after the frame management changes in Python 3...

Opengraph URL: https://github.com/python/cpython/pull/3640

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:dd8fd607-80f1-0025-14c5-81631ee0a706
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idE364:87E17:28868F7:358007C:696B2329
html-safe-nonce84ad26f645deb4c48103f2f58100a7fc9352bff7e7bd7b1443027c714a6da421
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFMzY0Ojg3RTE3OjI4ODY4Rjc6MzU4MDA3Qzo2OTZCMjMyOSIsInZpc2l0b3JfaWQiOiI4MjQ0MDQ4NDQ3Nzg2Mzk0NDA5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacb529a192ebb0c2f55b1d06d02cf8b4a4db45ad996109530b8629205a99cfc1cc
hovercard-subject-tagpull_request:141542215
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/3640/files
twitter:imagehttps://avatars.githubusercontent.com/u/1026649?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1026649?s=400&v=4
og:image:alt(Declined as per the PEP deferral notice in https://github.com/python/peps/pull/3050/files - this reference implementation was useful at the time, but after the frame management changes in Python 3...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release82560a55c6b2054555076f46e683151ee28a19bc
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/3640/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F3640%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F3640%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/3640/files
Reloadhttps://github.com/python/cpython/pull/3640/files
Reloadhttps://github.com/python/cpython/pull/3640/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/3640/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/pull/3640/files
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
ncoghlanhttps://github.com/ncoghlan
python:mainhttps://github.com/python/cpython/tree/main
ncoghlan:bpo-30744-make-locals-closure-safehttps://github.com/ncoghlan/cpython/tree/bpo-30744-make-locals-closure-safe
Conversation 38 https://github.com/python/cpython/pull/3640
Commits 80 https://github.com/python/cpython/pull/3640/commits
Checks 0 https://github.com/python/cpython/pull/3640/checks
Files changed https://github.com/python/cpython/pull/3640/files
Please reload this pagehttps://github.com/python/cpython/pull/3640/files
[PEP 558 - WIP] bpo-30744: Trace hooks no longer reset closure state https://github.com/python/cpython/pull/3640/files#top
Show all changes 80 commits https://github.com/python/cpython/pull/3640/files
7626a0e bpo-30744: Trace hooks no longer reset closure state ncoghlan Sep 18, 2017 https://github.com/python/cpython/pull/3640/commits/7626a0e73fff2ea97cb33f09e53809e5d1c1e7fe
3cbb73c Disable the current broken writeback logic ncoghlan Nov 5, 2017 https://github.com/python/cpython/pull/3640/commits/3cbb73c8d3ec30434fc82a1e43537a324ac091fb
01f3f34 Failing test case for writeback functionality ncoghlan Nov 5, 2017 https://github.com/python/cpython/pull/3640/commits/01f3f34f9295fb5b8f7a52abe8e5b88497e62261
4f6dd93 Initial skeleton for a write-through proxy ncoghlan Nov 5, 2017 https://github.com/python/cpython/pull/3640/commits/4f6dd934e61ad9deb74944b9479d320a2f28f2e5
cd45da7 Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Apr 21, 2019 https://github.com/python/cpython/pull/3640/commits/cd45da7f8133f132539a19381e2d7c8082b58218
acbf587 Finish adding the write-through proxy ncoghlan Apr 21, 2019 https://github.com/python/cpython/pull/3640/commits/acbf5876e8a7c9b3b9b7b82f17b9e9dee726df6c
d1a9014 Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan May 21, 2019 https://github.com/python/cpython/pull/3640/commits/d1a9014fd14effcfc597c8ff97a11f3c6d539c10
5ea8bcf Add test case for the PEP 558 locals() behaviour ncoghlan May 22, 2019 https://github.com/python/cpython/pull/3640/commits/5ea8bcfb9192f35e9e421efd634651b14def0b1f
fe92891 Actually implement most of the PEP and fix the tests ncoghlan May 22, 2019 https://github.com/python/cpython/pull/3640/commits/fe928915d4c8fad7426ebcab33a115cf06252886
ac9e0bf Fix segfault on cleared frames ncoghlan May 27, 2019 https://github.com/python/cpython/pull/3640/commits/ac9e0bfc68cf24da77e35b9448f61eb5ba72f198
6774e71 Use correct printf formatting code ncoghlan May 27, 2019 https://github.com/python/cpython/pull/3640/commits/6774e71cf41de77860527d534c6c92b3b2716677
74c51e4 Initial skeleton for other mutable mapping methods ncoghlan May 28, 2019 https://github.com/python/cpython/pull/3640/commits/74c51e447e83746b11cf9996fe5eac285f019b8d
0e5fbf3 Break ref cycle when frame finishes executing ncoghlan May 30, 2019 https://github.com/python/cpython/pull/3640/commits/0e5fbf3fac82644a7ca6427007dabde27a370942
9e3ce53 Remove implicit frame locals update ncoghlan May 30, 2019 https://github.com/python/cpython/pull/3640/commits/9e3ce53a369f6946bff33b0e28bd90f13c1ca985
9479557 Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan May 30, 2019 https://github.com/python/cpython/pull/3640/commits/94795571686cc83730c2defcd974694274554697
8e886ef Avoid double DECREF on error ncoghlan May 30, 2019 https://github.com/python/cpython/pull/3640/commits/8e886efb0d70689624fff8b10acd1425a313110a
5b63e7c Attempt to make dealloc more robust under gc ncoghlan May 30, 2019 https://github.com/python/cpython/pull/3640/commits/5b63e7cfe489c124ec4dcef3ba3fd1ca8027f099
f0ecee3 Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/f0ecee3d3725f3979cbf231bcc70dc992e4a09e9
1752b54 Fix post-merge compilation errors ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/1752b5436f8d85f6048b766404937aa9d2142789
348a56d Implement flp.pop() ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/348a56d6e97b1142b1464cb0b7df9824f4670b1c
93f512c Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/93f512c29784ff7e0ad343d80b172a04a855a1fa
39ec4d8 Refactor ref map creation ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/39ec4d8c89205318bfc3cf1188efb29e48ae6301
7078632 Correctly manage fast local refcounts ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/7078632520279fd19ec59b8faec5ddd27ea4b64c
ed5f86e Allow closure updates after frame termination ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/ed5f86ee989ec2826553684181d901a869a33ede
a216747 Refactor frame post-eval cleanup ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/a216747a0122f8754c414768415806ea5701976c
a0dc787 Use full word in API name ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/a0dc787f3891fd58c133b50e9d18dbbb2a1a32ff
7b02bed Update to match latest PEP draft ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/7b02bedd8cf2d87e43114995d925cdffd745da06
e9876b5 Update test_scope for snapshot semantics ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/e9876b5d5e4b012b3172417c828d5cf765a937cd
0033c60 Update test_sys_settrace for snapshot semantics ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/0033c600591e028e7f9ed25dd0897f153087df36
a5a8b19 Fix pop/delete locals proxy bug ncoghlan Dec 29, 2019 https://github.com/python/cpython/pull/3640/commits/a5a8b1971f1c9b74b15d57d0d4348f291a073ed2
6c98f48 Update argument clinic output ncoghlan Dec 30, 2019 https://github.com/python/cpython/pull/3640/commits/6c98f48c8ba1018acea3aa4c6ac2028dd6a82aaf
617f6ab Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Dec 30, 2019 https://github.com/python/cpython/pull/3640/commits/617f6ab5c0aa915e3f39a733f77c632c2eb7025d
729f121 Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Jan 18, 2020 https://github.com/python/cpython/pull/3640/commits/729f12159ccaa855eea18b7aeff3c19f7b915a81
619fb75 Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Feb 2, 2020 https://github.com/python/cpython/pull/3640/commits/619fb75acc9e5a571d00a77a51c7ce8a71913dc4
1fe964e Migrate to revised public API design ncoghlan Feb 2, 2020 https://github.com/python/cpython/pull/3640/commits/1fe964ed7380c3362cfe99f1d3ce68bcffeaeef3
b047ae4 Rename PyFrame_LocalsIsSnapshot to PyFrame_GetLocalsReturnsSnapshot ncoghlan Feb 2, 2020 https://github.com/python/cpython/pull/3640/commits/b047ae4394cdf43f09b9e6db30c2d7c6781c786a
d1a8420 Mark fast locals proxy as an internal type ncoghlan Feb 2, 2020 https://github.com/python/cpython/pull/3640/commits/d1a8420577543e551bddffce2c3887230715d8d2
82108ff Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Feb 15, 2020 https://github.com/python/cpython/pull/3640/commits/82108fffea4d4e0960f2f38822cd62b82e0c32a8
eccb1ea Update draft C API to match latest PEP text ncoghlan Feb 16, 2020 https://github.com/python/cpython/pull/3640/commits/eccb1ea3b3ddca6c12747382718f297a12596149
c1933e7 Migrate exec() and eval() to PyLocals_Get() ncoghlan Feb 16, 2020 https://github.com/python/cpython/pull/3640/commits/c1933e744f7d5b1d3489d3588267178b94851ab9
161ad47 Merge remote-tracking branch 'origin/master' into bpo-30744-make-loca… ncoghlan Feb 22, 2020 https://github.com/python/cpython/pull/3640/commits/161ad47576e1ec772bdb1bbdd30f6edfb096530f
68f10ce Avoid circular reference between locals proxy and frame ncoghlan Feb 22, 2020 https://github.com/python/cpython/pull/3640/commits/68f10ced11a24166269cef8416bb98715d9bd200
29ce344 Add back implicit view refresh in Python trace hook ncoghlan Feb 22, 2020 https://github.com/python/cpython/pull/3640/commits/29ce344d55c502a08481987e5ff0cc749ead7946
ed6e53b Attempt to tidy up Mac OS X compile warnings/errors ncoghlan Feb 22, 2020 https://github.com/python/cpython/pull/3640/commits/ed6e53be7794ec94924b69cd46d5b009633c6307
96c77cb Merge remote-tracking branch 'origin/main' into bpo-30744-make-locals… ncoghlan Jul 3, 2021 https://github.com/python/cpython/pull/3640/commits/96c77cb4eff511fccb08d2f504a48ca920b3dbd6
a348d08 Fix Argument Clinic checksum ncoghlan Jul 3, 2021 https://github.com/python/cpython/pull/3640/commits/a348d086c447a77860da8b17c79815bff6da2291
69c8f19 Fix stable ABI minimum version ncoghlan Jul 3, 2021 https://github.com/python/cpython/pull/3640/commits/69c8f19742d8a8e083d11c568d512d6668c3b1a1
caeaf66 Bring implementation into line with latest PEP version ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/caeaf667a72e020b623dc1dc12564dc05be6b74b
7ec5d26 Register new stable ABI additions ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/7ec5d26622088840240f20276016f15d05a16050
7ddc3eb Add FLP str(), fix various value lookup issues ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/7ddc3ebaf15f024e5ecef83c0ce6265b98bc7f1a
7400a46 Uninitialised fields will get you every time ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/7400a4608e3704c9e56f6b6c10cec3da15b05ee5
5eae0d5 Fix refcounting, bdb segfault, pdb functionality ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/5eae0d52fd743c8e28613346fc76f0a895f1b26f
40db4e7 Delegate more operations to the full dynamic snapshot ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/40db4e7d387261aaa9037b03546ece89401d5ee8
74b97a3 Add TODO item for false positives in containment checks ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/74b97a3ef39a5e67c019858f8d60a033401dee64
9f16513 Only ensure frame snapshot is up to date in O(n) proxy operations ncoghlan Jul 10, 2021 https://github.com/python/cpython/pull/3640/commits/9f16513a919c3d2ad7e6ead6298d0cb590caf1a3
c477e24 Keep locals snapshot up to date when reading/writing individual keys ncoghlan Jul 11, 2021 https://github.com/python/cpython/pull/3640/commits/c477e2432c2d8c6c938340c230da7da520b31d8b
dd94608 Avoid false positives in FLP contains method ncoghlan Jul 11, 2021 https://github.com/python/cpython/pull/3640/commits/dd946084ea5aaacc9961554bcddf475e9fe5a861
b7eb662 Merge remote-tracking branch 'origin/main' into bpo-30744-make-locals… ncoghlan Jul 17, 2021 https://github.com/python/cpython/pull/3640/commits/b7eb6627dd759cfab4960a8e28386bc2a0667aed
1484c10 Finish public C API, start dict API tests ncoghlan Jul 17, 2021 https://github.com/python/cpython/pull/3640/commits/1484c100ef9f5669f9e83b58c06a2dce4bfdec37
3891c13 Merge remote-tracking branch 'origin/main' into bpo-30744-make-locals… ncoghlan Jul 17, 2021 https://github.com/python/cpython/pull/3640/commits/3891c130e09e1bb3734e2d41372a8061a002ad9d
760ffa9 Remove debugging print statement ncoghlan Jul 17, 2021 https://github.com/python/cpython/pull/3640/commits/760ffa9e44aa02ebe3fc1f3d4ccb8f90df660a58
ae6b013 Regenerated stable ABI files ncoghlan Jul 18, 2021 https://github.com/python/cpython/pull/3640/commits/ae6b013787bb337759535b4fa4936f9912474c49
b03309b Rename _PyLocals_Kind APIs to avoid potential confusion ncoghlan Jul 21, 2021 https://github.com/python/cpython/pull/3640/commits/b03309bd8c454dca27c2f8bf248b0252445a0c04
cde5035 Merge remote-tracking branch 'origin/main' into bpo-30744-make-locals… ncoghlan Jul 21, 2021 https://github.com/python/cpython/pull/3640/commits/cde503519db8f5e87e67a55f9bea5e0c89983af1
66d058c PyLocals_GetReturnsCopy -> PyLocals_GetKind() ncoghlan Jul 21, 2021 https://github.com/python/cpython/pull/3640/commits/66d058c1eda1009c0590bcb0f36eafdba4df5dd5
67c3958 Share fast_refs mapping between proxy objects ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/67c3958c473923d548b6fdc9d7bb66fde7989e6d
034345f Remove debugging print ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/034345fd519784f98d46c216d301b238d3068c25
3c49ff8 Defer value cache refresh until needed, start fleshing out dict API t… ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/3c49ff822b8dbba18db1904caf319271d2b723ad
ea5f943 Add dict union operations to proxy ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/ea5f943e683c558049a81e9214dd874edd7be08b
fcf99ca Implement and test locals proxy clear() method ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/fcf99cac737d5a046b42ba515847e41697f3da9b
16e0581 Remove pointless print() call ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/16e05810d412317b8c53014b6fa0a0eae47eb90a
c356949 Implement proxy pop() tests ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/c35694981bc3c96b4dede707a476d2efd2958393
8a4e788 Implement and test proxy popitem() ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/8a4e7887cf38102cf0f3519cd1d1142c7217c0aa
706eec4 Test popitem with cells and extra variables ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/706eec4076ae902237fa508415e81182dc7883c0
35a017c Implement and test setdefault() ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/35a017cfdf7697af26212d156e0111e506092e89
06c406c Implement and test proxy __sizeof__() ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/06c406c9338e5bfe74de50a1307ba8bdebad3a6c
31493b9 Add C API test for the LocalsToFast exception ncoghlan Aug 21, 2021 https://github.com/python/cpython/pull/3640/commits/31493b98315d72850f92eb1935fcc4faa99773d2
b587a41 Force enum size ncoghlan Aug 23, 2021 https://github.com/python/cpython/pull/3640/commits/b587a4170179d528d7f699c2a7315c458c807db9
e1b505d Clarify code comment ncoghlan Aug 23, 2021 https://github.com/python/cpython/pull/3640/commits/e1b505d9c4e8b9ed0f36eb8b2046f39c45c5a832
2b27389 Keep track of defined names even on cleared frames ncoghlan Aug 26, 2021 https://github.com/python/cpython/pull/3640/commits/2b27389f10a282901b7c78b7758691501c7e7a2f
Clear filters https://github.com/python/cpython/pull/3640/files
Please reload this pagehttps://github.com/python/cpython/pull/3640/files
Please reload this pagehttps://github.com/python/cpython/pull/3640/files
cell.rst https://github.com/python/cpython/pull/3640/files#diff-29d19f4fd6c69028296dc4f72998373ce0b6747eb1c60887d5f36e663e491ca3
reflection.rst https://github.com/python/cpython/pull/3640/files#diff-2db59c6f2683bf28c191e43a8edcbaff79f8de9cd7529901af0f3c015e0d6d3a
stable_abi.dat https://github.com/python/cpython/pull/3640/files#diff-e87eccb88c979495c493aed4127b9f9932c320edfe4d95c8e28e2ca92e8e33f3
ceval.h https://github.com/python/cpython/pull/3640/files#diff-ebdfffaf18bedcdb18ef52479aec307e5f9853560ebaabc481808e84458a1400
frameobject.h https://github.com/python/cpython/pull/3640/files#diff-80b0f0cc7ce311d47e1134cb8615910f8a728ef96ff098f3635497efda485a00
descrobject.h https://github.com/python/cpython/pull/3640/files#diff-b68a6d837599eb6c5aa44d496408b0f3cef47dc81d84de03ebcff3212e63f9a8
pycore_code.h https://github.com/python/cpython/pull/3640/files#diff-97ea1759f82531a45fa685065ff86bc1077c3ab3d5f65220eea48b7730032bc8
pycore_frameobject.h https://github.com/python/cpython/pull/3640/files#diff-309ed810463e9e4ad6c266cbb9ae6f42e012cceeb6426d2a97f77a8a5f55f566
test_frame.py https://github.com/python/cpython/pull/3640/files#diff-55c13388062eea8a35790a234232d00080f6c6e02fc0f1e945844f97c6c85012
test_scope.py https://github.com/python/cpython/pull/3640/files#diff-2e2edd8afb38105e300dce023fde6e7cc6e42aff5364e060601e90a26b823207
test_sys_settrace.py https://github.com/python/cpython/pull/3640/files#diff-8b73bfc55514d8add8904c5f4d1d24b7b644ebfccba8d846085303577aa94dd6
stable_abi.txt https://github.com/python/cpython/pull/3640/files#diff-43a983c76a633759b683f6d9cc60064a1a4542f20bbbddec4de7a1f05dedfd56
frameobject.c.h https://github.com/python/cpython/pull/3640/files#diff-e938e47cc876d13d098d92e92158180e37d2a5eaa415ad513160ad6921ec293e
codeobject.c https://github.com/python/cpython/pull/3640/files#diff-6f869eb8beb7cbe4bc6817584b99ad567f88962fa67f7beca25d009dc401234d
descrobject.c https://github.com/python/cpython/pull/3640/files#diff-7952643fe36a8662b3e4be2c6478b06b1af5b5754fc25eaf3eb4b46569659264
frameobject.c https://github.com/python/cpython/pull/3640/files#diff-7b8cef249e5cca077d30de4e428a6bde6b9b803464e790e9cffa7e052e19efdd
object.c https://github.com/python/cpython/pull/3640/files#diff-ba56d44ce0dd731d979970b966fde9d8dd15d12a82f727a052a8ad48d4a49363
typeobject.c https://github.com/python/cpython/pull/3640/files#diff-1decebeef15f4e0b0ce106c665751ec55068d4d1d1825847925ad4f528b5b872
python3dll.c https://github.com/python/cpython/pull/3640/files#diff-be34b08a4cde4f0bfbf86bc3c427e4a3dcc3f2f472061a50d00040a0d8a57c88
bltinmodule.c https://github.com/python/cpython/pull/3640/files#diff-e4fd8b8ee6a147f86c0719ff122aca6dfca36edbd4812c87892698b3b72e40a1
ceval.c https://github.com/python/cpython/pull/3640/files#diff-c22186367cbe20233e843261998dc027ae5f1f8c0d2e778abfa454ae74cc59de
bltinmodule.c.h https://github.com/python/cpython/pull/3640/files#diff-a4b4bbe4bcd5f70f9cbf9fb324779deb3c774ab38683ebc3cad83f03920070c5
compile.c https://github.com/python/cpython/pull/3640/files#diff-ebc983d9f91e5bcf73500e377ac65e85863c4f77fd5b6b6caf4fcdf7c0f0b057
sysmodule.c https://github.com/python/cpython/pull/3640/files#diff-a3a5c73931235f7f344c072dc755d6508e13923db3f5d581c5e88652075871cb
Doc/c-api/cell.rsthttps://github.com/python/cpython/pull/3640/files#diff-29d19f4fd6c69028296dc4f72998373ce0b6747eb1c60887d5f36e663e491ca3
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Doc/c-api/cell.rst
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
https://github.com/python/cpython/pull/3640/files#diff-29d19f4fd6c69028296dc4f72998373ce0b6747eb1c60887d5f36e663e491ca3
https://github.com/python/cpython/pull/3640/files#diff-29d19f4fd6c69028296dc4f72998373ce0b6747eb1c60887d5f36e663e491ca3
Doc/c-api/reflection.rsthttps://github.com/python/cpython/pull/3640/files#diff-2db59c6f2683bf28c191e43a8edcbaff79f8de9cd7529901af0f3c015e0d6d3a
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Doc/c-api/reflection.rst
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
https://github.com/python/cpython/pull/3640/files#diff-2db59c6f2683bf28c191e43a8edcbaff79f8de9cd7529901af0f3c015e0d6d3a
https://github.com/python/cpython/pull/3640/files#diff-2db59c6f2683bf28c191e43a8edcbaff79f8de9cd7529901af0f3c015e0d6d3a
Doc/data/stable_abi.dathttps://github.com/python/cpython/pull/3640/files#diff-e87eccb88c979495c493aed4127b9f9932c320edfe4d95c8e28e2ca92e8e33f3
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Doc/data/stable_abi.dat
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
https://github.com/python/cpython/pull/3640/files#diff-e87eccb88c979495c493aed4127b9f9932c320edfe4d95c8e28e2ca92e8e33f3
https://github.com/python/cpython/pull/3640/files#diff-e87eccb88c979495c493aed4127b9f9932c320edfe4d95c8e28e2ca92e8e33f3
Include/ceval.hhttps://github.com/python/cpython/pull/3640/files#diff-ebdfffaf18bedcdb18ef52479aec307e5f9853560ebaabc481808e84458a1400
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Include/ceval.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
https://github.com/python/cpython/pull/3640/files#diff-ebdfffaf18bedcdb18ef52479aec307e5f9853560ebaabc481808e84458a1400
https://github.com/python/cpython/pull/3640/files#diff-ebdfffaf18bedcdb18ef52479aec307e5f9853560ebaabc481808e84458a1400
Include/cpython/frameobject.hhttps://github.com/python/cpython/pull/3640/files#diff-80b0f0cc7ce311d47e1134cb8615910f8a728ef96ff098f3635497efda485a00
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Include/cpython/frameobject.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
https://github.com/python/cpython/pull/3640/files#diff-80b0f0cc7ce311d47e1134cb8615910f8a728ef96ff098f3635497efda485a00
https://github.com/python/cpython/pull/3640/files#diff-80b0f0cc7ce311d47e1134cb8615910f8a728ef96ff098f3635497efda485a00
https://github.com/python/cpython/pull/3640/files#diff-80b0f0cc7ce311d47e1134cb8615910f8a728ef96ff098f3635497efda485a00
Include/descrobject.hhttps://github.com/python/cpython/pull/3640/files#diff-b68a6d837599eb6c5aa44d496408b0f3cef47dc81d84de03ebcff3212e63f9a8
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Include/descrobject.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
https://github.com/python/cpython/pull/3640/files#diff-b68a6d837599eb6c5aa44d496408b0f3cef47dc81d84de03ebcff3212e63f9a8
https://github.com/python/cpython/pull/3640/files#diff-b68a6d837599eb6c5aa44d496408b0f3cef47dc81d84de03ebcff3212e63f9a8
Include/internal/pycore_code.hhttps://github.com/python/cpython/pull/3640/files#diff-97ea1759f82531a45fa685065ff86bc1077c3ab3d5f65220eea48b7730032bc8
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Include/internal/pycore_code.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
https://github.com/python/cpython/pull/3640/files#diff-97ea1759f82531a45fa685065ff86bc1077c3ab3d5f65220eea48b7730032bc8
https://github.com/python/cpython/pull/3640/files#diff-97ea1759f82531a45fa685065ff86bc1077c3ab3d5f65220eea48b7730032bc8
Include/internal/pycore_frameobject.hhttps://github.com/python/cpython/pull/3640/files#diff-309ed810463e9e4ad6c266cbb9ae6f42e012cceeb6426d2a97f77a8a5f55f566
View file https://github.com/ncoghlan/cpython/blob/2b27389f10a282901b7c78b7758691501c7e7a2f/Include/internal/pycore_frameobject.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/3640/{{ revealButtonHref }}
Please reload this pagehttps://github.com/python/cpython/pull/3640/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.