René's URL Explorer Experiment


Title: gh-153060: Add an empty frozendict singleton by vstinner · Pull Request #153061 · python/cpython · GitHub

Open Graph Title: gh-153060: Add an empty frozendict singleton by vstinner · Pull Request #153061 · python/cpython

X Title: gh-153060: Add an empty frozendict singleton by vstinner · Pull Request #153061 · python/cpython

Description: The singleton is created immortal to avoid refcount contention in Free Threading. Add PyInterpreterState.dict_state.empty_frozendict. Add _PyDict_Init() and _PyDict_Fini() to create and destroy the empty frozendict singleton. Issue: gh-153060

Open Graph Description: The singleton is created immortal to avoid refcount contention in Free Threading. Add PyInterpreterState.dict_state.empty_frozendict. Add _PyDict_Init() and _PyDict_Fini() to create and destroy th...

X Description: The singleton is created immortal to avoid refcount contention in Free Threading. Add PyInterpreterState.dict_state.empty_frozendict. Add _PyDict_Init() and _PyDict_Fini() to create and destroy th...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:10986ad1-e3f9-11cc-52e0-65165f190037
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idCD5A:163E47:A485E0:F1DE1A:6A4E1E09
html-safe-nonce92b000830c5dbb0d8121ff2944f9c6effa7ae1fbaa7fbce5797f20f2036d6d4a
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDRDVBOjE2M0U0NzpBNDg1RTA6RjFERTFBOjZBNEUxRTA5IiwidmlzaXRvcl9pZCI6IjMzNzM4Mzk3NjIxODgwMTcxNjEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac2c178a2d203f9571306746991d5a71036b5480b49b728c70a21bf9157b8b0648
hovercard-subject-tagpull_request:3992550601
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/153061/files
twitter:imagehttps://avatars.githubusercontent.com/u/194129?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/194129?s=400&v=4
og:image:altThe singleton is created immortal to avoid refcount contention in Free Threading. Add PyInterpreterState.dict_state.empty_frozendict. Add _PyDict_Init() and _PyDict_Fini() to create and destroy th...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0
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
release5fe497b4815fcce3df76c0e246faa739a82c3124
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/153061/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F153061%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
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
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
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%2F153061%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/153061/files
Reloadhttps://github.com/python/cpython/pull/153061/files
Reloadhttps://github.com/python/cpython/pull/153061/files
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 34.8k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 73.6k 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.3k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality 0 https://github.com/python/cpython/security
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 and quality 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
vstinnerhttps://github.com/vstinner
python:mainhttps://github.com/python/cpython/tree/main
vstinner:frozendict_emptyhttps://github.com/vstinner/cpython/tree/frozendict_empty
Conversation 11 https://github.com/python/cpython/pull/153061
Commits 6 https://github.com/python/cpython/pull/153061/commits
Checks 50 https://github.com/python/cpython/pull/153061/checks
Files changed https://github.com/python/cpython/pull/153061/files
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
gh-153060: Add an empty frozendict singleton https://github.com/python/cpython/pull/153061/files#top
Show all changes 6 commits https://github.com/python/cpython/pull/153061/files
2e450b1 gh-153060: Add an empty frozendict singleton vstinner Jul 5, 2026 https://github.com/python/cpython/pull/153061/commits/2e450b1dae7ac879a8babd8c76effc4780c6a5df
609b8d8 Add NEWS entry vstinner Jul 5, 2026 https://github.com/python/cpython/pull/153061/commits/609b8d8a1e1d991ede52d5abce666ae99dcede90
4815d54 Fix test_set: fix frozendict_or() vstinner Jul 5, 2026 https://github.com/python/cpython/pull/153061/commits/4815d544b3523495ceb3dd961491d60014613d7e
b2f1dfe Test that the singleton is not tracked and is immortal vstinner Jul 5, 2026 https://github.com/python/cpython/pull/153061/commits/b2f1dfe7b8b5523a761b2bcdaaba5e162ea4eb42
0cd588d Add more tests vstinner Jul 5, 2026 https://github.com/python/cpython/pull/153061/commits/0cd588d948b1e72ded26d25cf5ae618a2b250d17
959c77c Fix singleton test: pass an empty generator, not a list vstinner Jul 5, 2026 https://github.com/python/cpython/pull/153061/commits/959c77c43c4ddbea805e48ba8edd5b984a5abc9a
Clear filters https://github.com/python/cpython/pull/153061/files
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
pycore_dict_state.h https://github.com/python/cpython/pull/153061/files#diff-3263c8b16705dc3ea3e56b42dbbc78ab240468ecf9c572eddc3a417dc986a4c7
pycore_pylifecycle.h https://github.com/python/cpython/pull/153061/files#diff-654f110e8bb3ccaa35433482309c4552cd8d74958bfb8b780daa6222f8ab2859
test_dict.py https://github.com/python/cpython/pull/153061/files#diff-868508372bc6bc420fae7a33d576e9829d3899bf00c1a448b58383a62a61e77b
test_dict.py https://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
2026-07-05-05-39-16.gh-issue-153060.p1G8nO.rst https://github.com/python/cpython/pull/153061/files#diff-6b0e47f7c99ccbe6c11e4ef48a343781e4161d56aca15448fcf3f192fa897ba5
dictobject.c https://github.com/python/cpython/pull/153061/files#diff-b08a47ddc5bc20b2e99ac2e5aa199ca24a56b994e7bc64e918513356088c20ae
pylifecycle.c https://github.com/python/cpython/pull/153061/files#diff-69223f5bb01f359a23246afbbf75b45c622e719424418d658674fbb6c2b36fad
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L323
Include/internal/pycore_dict_state.hhttps://github.com/python/cpython/pull/153061/files#diff-3263c8b16705dc3ea3e56b42dbbc78ab240468ecf9c572eddc3a417dc986a4c7
View file https://github.com/python/cpython/blob/959c77c43c4ddbea805e48ba8edd5b984a5abc9a/Include/internal/pycore_dict_state.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/153061/{{ revealButtonHref }}
https://github.com/python/cpython/pull/153061/files#diff-3263c8b16705dc3ea3e56b42dbbc78ab240468ecf9c572eddc3a417dc986a4c7
ZeroIntensityhttps://github.com/ZeroIntensity
Jul 6, 2026https://github.com/python/cpython/pull/153061/files#r3525970516
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
vstinnerhttps://github.com/vstinner
Jul 6, 2026https://github.com/python/cpython/pull/153061/files#r3528560480
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
ZeroIntensityhttps://github.com/ZeroIntensity
Jul 7, 2026https://github.com/python/cpython/pull/153061/files#r3538375677
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
https://github.com/python/cpython/pull/153061/files#diff-3263c8b16705dc3ea3e56b42dbbc78ab240468ecf9c572eddc3a417dc986a4c7
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L320
Include/internal/pycore_pylifecycle.hhttps://github.com/python/cpython/pull/153061/files#diff-654f110e8bb3ccaa35433482309c4552cd8d74958bfb8b780daa6222f8ab2859
View file https://github.com/python/cpython/blob/959c77c43c4ddbea805e48ba8edd5b984a5abc9a/Include/internal/pycore_pylifecycle.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/153061/{{ revealButtonHref }}
https://github.com/python/cpython/pull/153061/files#diff-654f110e8bb3ccaa35433482309c4552cd8d74958bfb8b780daa6222f8ab2859
https://github.com/python/cpython/pull/153061/files#diff-654f110e8bb3ccaa35433482309c4552cd8d74958bfb8b780daa6222f8ab2859
https://github.com/python/cpython/pull/153061/files#diff-654f110e8bb3ccaa35433482309c4552cd8d74958bfb8b780daa6222f8ab2859
Lib/test/test_capi/test_dict.pyhttps://github.com/python/cpython/pull/153061/files#diff-868508372bc6bc420fae7a33d576e9829d3899bf00c1a448b58383a62a61e77b
View file https://github.com/python/cpython/blob/959c77c43c4ddbea805e48ba8edd5b984a5abc9a/Lib/test/test_capi/test_dict.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/153061/{{ revealButtonHref }}
https://github.com/python/cpython/pull/153061/files#diff-868508372bc6bc420fae7a33d576e9829d3899bf00c1a448b58383a62a61e77b
https://github.com/python/cpython/pull/153061/files#diff-868508372bc6bc420fae7a33d576e9829d3899bf00c1a448b58383a62a61e77b
Lib/test/test_dict.pyhttps://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
View file https://github.com/python/cpython/blob/959c77c43c4ddbea805e48ba8edd5b984a5abc9a/Lib/test/test_dict.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/153061/{{ revealButtonHref }}
https://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
https://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
https://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
https://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
https://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
https://github.com/python/cpython/pull/153061/files#diff-a040eea55332ac71f2f5db3966f7261f844ceceaac675cc0f30eb973d2593a26
Misc/NEWS.d/next/Core_and_Builtins/2026-07-05-05-39-16.gh-issue-153060.p1G8nO.rsthttps://github.com/python/cpython/pull/153061/files#diff-6b0e47f7c99ccbe6c11e4ef48a343781e4161d56aca15448fcf3f192fa897ba5
View file https://github.com/python/cpython/blob/959c77c43c4ddbea805e48ba8edd5b984a5abc9a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-05-05-39-16.gh-issue-153060.p1G8nO.rst
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/153061/{{ revealButtonHref }}
Please reload this pagehttps://github.com/python/cpython/pull/153061/files
Please reload this pagehttps://github.com/python/cpython/pull/153061/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.