René's URL Explorer Experiment


Title: gh-141510: Update specializer to support frozendict with BINARY_SUBSCR by corona10 · Pull Request #144911 · python/cpython · GitHub

Open Graph Title: gh-141510: Update specializer to support frozendict with BINARY_SUBSCR by corona10 · Pull Request #144911 · python/cpython

X Title: gh-141510: Update specializer to support frozendict with BINARY_SUBSCR by corona10 · Pull Request #144911 · python/cpython

Description: We need to register frozendict for support in the specializer. Since frozendict is only introduced in Python 3.15, it is not yet widely used. However, it is thread safe for many operations, including CALL_LEN and BINARY_OP_SUBSCR. It could also be optimized more aggressively in the JIT using KNOWN_CLASS optimizations in the pipeline. This is just part of a draft PR. I am also happy to make _BINARY_OP_SUBSCR_FROZEN_DICT part of _BINARY_OP_SUBSCR_DICT, depending on what the JIT team prefers. Without this PR, frozendict would be at a performance disadvantage, even though it is intended to be a first-class citizen alongside dict. Issue: gh-141510

Open Graph Description: We need to register frozendict for support in the specializer. Since frozendict is only introduced in Python 3.15, it is not yet widely used. However, it is thread safe for many operations, includi...

X Description: We need to register frozendict for support in the specializer. Since frozendict is only introduced in Python 3.15, it is not yet widely used. However, it is thread safe for many operations, includi...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:76a5f63c-4427-3c44-e3d6-ad8148331ea9
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idB602:3FD636:574B988:7B39E6E:6A500072
html-safe-nonce27dbf059dc0cda9e08bfee301d0178659a8fb43acfd06094f1df789e79c38db5
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNjAyOjNGRDYzNjo1NzRCOTg4OjdCMzlFNkU6NkE1MDAwNzIiLCJ2aXNpdG9yX2lkIjoiMjk1MzU4Nzg0NjYxMzU2NTU1NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac98562acea4e956c7acca521f2c19911de5100c45f382280ae5c5e1b245fcdfdc
hovercard-subject-tagpull_request:3294234336
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/144911/files
twitter:imagehttps://avatars.githubusercontent.com/u/5110323?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/5110323?s=400&v=4
og:image:altWe need to register frozendict for support in the specializer. Since frozendict is only introduced in Python 3.15, it is not yet widely used. However, it is thread safe for many operations, includi...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None56eec25a3430492dd6ec2a480eb33256a0da5192d5714b0db4f5ab5f33203d94
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
releasee155b8a71f9284454f73118dfe5e634e74f7afb3
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/144911/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F144911%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/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/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/enterprise/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%2F144911%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/144911/files
Reloadhttps://github.com/python/cpython/pull/144911/files
Reloadhttps://github.com/python/cpython/pull/144911/files
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 34.9k 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
corona10https://github.com/corona10
python:mainhttps://github.com/python/cpython/tree/main
corona10:gh-141510-specializerhttps://github.com/corona10/cpython/tree/gh-141510-specializer
Conversation 21 https://github.com/python/cpython/pull/144911
Commits 13 https://github.com/python/cpython/pull/144911/commits
Checks 72 https://github.com/python/cpython/pull/144911/checks
Files changed https://github.com/python/cpython/pull/144911/files
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
gh-141510: Update specializer to support frozendict with BINARY_SUBSCR https://github.com/python/cpython/pull/144911/files#top
Show all changes 13 commits https://github.com/python/cpython/pull/144911/files
a9e4c02 gh-141510: Update specialzier to support frozendict with BINARY_SUBSCR corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/a9e4c02a5707f371b5279301c96b8f12e4bb1b43
9cb3cd7 Add NEWS.d corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/9cb3cd7f6013b0080dc83c5653f5dd3e4c378097
1549414 fix corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/1549414fe214ee5364f3f5ba3a65ed2682c56265
d22f149 fix corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/d22f1498d3c0fc883af12b9bb6c9a20f99633bb7
b4a06fd fix for free-threading corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/b4a06fd34899027a24a853884ea008c0b73c3d7d
c29933d fix symbol issue corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/c29933d42dcebc398906d51ae6f4351d1d01a633
9f1c969 Address code review corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/9f1c969f9317fdf4d9fe22139fa50ec6ea4085bc
acfab36 Increase _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES for frozendict corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/acfab3679c807398b4175f61201188b7d6941f56
4c7b59a Update Include/internal/pycore_dict.h corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/4c7b59a56364ea6f86f41f60e849c05affed5141
805fe2e Rename to BINARY_OP_SUBSCR_FROZENDICT corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/805fe2ed43d22e09fdc386d227dcf71bc283f7ff
a608252 Merge remote-tracking branch 'origin/gh-141510-specializer' into gh-1… corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/a6082528a1df443664f8e6f8c50d304e8ce44caa
dd616b4 Address code review corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/dd616b476ed0ccfebe7121ef6b00d162692672c9
8311052 Address code review corona10 Feb 17, 2026 https://github.com/python/cpython/pull/144911/commits/8311052773b19f4086ea878a3ced8bbadbaa2ecf
Clear filters https://github.com/python/cpython/pull/144911/files
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
pycore_dict.h https://github.com/python/cpython/pull/144911/files#diff-47692c69ef97b2d7cf05ad8e0fa2024b575af96abf9bbc5486f71156ab67ede4
pycore_interp_structs.h https://github.com/python/cpython/pull/144911/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
pycore_opcode_metadata.h https://github.com/python/cpython/pull/144911/files#diff-72bc4c0445516cc3eabd536220b2459617491ffaabbdb8a7c5381f36c991e378
pycore_uop_ids.h https://github.com/python/cpython/pull/144911/files#diff-2a420e4d0d58009249c0f73f7c822167b053bd51cb213b20179bd2aebfc66ff9
pycore_uop_metadata.h https://github.com/python/cpython/pull/144911/files#diff-55e65a72fa31e9b746e03076d2c74b716c0c1171663f36960b2339fcbfae9bab
opcode_ids.h https://github.com/python/cpython/pull/144911/files#diff-e4ecf20b65dcacb3c91fc910b83d99a2ca60282b51aa65e7902a662c227e6187
_opcode_metadata.py https://github.com/python/cpython/pull/144911/files#diff-3f2acff9cdbb005de538e3ba43dc12406bf414047d7d018476bac0048b5056e4
test_opcache.py https://github.com/python/cpython/pull/144911/files#diff-dd88a1417bab2a9400460e629e7e43a3f6e798e47b44fe3541f3f804f12430d1
2026-02-17-21-46-55.gh-issue-141510.8SqYuG.rst https://github.com/python/cpython/pull/144911/files#diff-cdeb3d274311bca6f4a921dd832744eed39f5a672e192bcd085f050accc2a160
test_cases.c.h https://github.com/python/cpython/pull/144911/files#diff-2852a58ed53ab1473b74dbdc4165885a9b74865b6d71e48fa4813d6289fa1838
test_targets.h https://github.com/python/cpython/pull/144911/files#diff-096e9952e325d9c098b3f85e87e7f41369678d0f019f26c8772531146896d50d
dictobject.c https://github.com/python/cpython/pull/144911/files#diff-b08a47ddc5bc20b2e99ac2e5aa199ca24a56b994e7bc64e918513356088c20ae
bytecodes.c https://github.com/python/cpython/pull/144911/files#diff-729a985b0cb8b431cb291f1edb561bbbfea22e3f8c262451cd83328a0936a342
executor_cases.c.h https://github.com/python/cpython/pull/144911/files#diff-a1c3430c42a66c16e6d2e154491a6da993b187b27c628545a12a02c7b2a06b81
generated_cases.c.h https://github.com/python/cpython/pull/144911/files#diff-4ef46fa654f95502e49a24f7dc8ee31a4cac9b3433fe9cd2b2d4dd78cfbad448
opcode_targets.h https://github.com/python/cpython/pull/144911/files#diff-d3363a4083b77b9157d0bf07c2e87f3d3464a8b4360d5d23b07bbb23061f007a
optimizer_cases.c.h https://github.com/python/cpython/pull/144911/files#diff-ed4567b3e67709ec57bf4df91ef058cfcbe00d7da11cd2a75e38241fa1ca99d2
specialize.c https://github.com/python/cpython/pull/144911/files#diff-22e653d878778ca28317261f7826545288d02fd9980cf485d0329f28a34993f2
Include/internal/pycore_dict.hhttps://github.com/python/cpython/pull/144911/files#diff-47692c69ef97b2d7cf05ad8e0fa2024b575af96abf9bbc5486f71156ab67ede4
View file https://github.com/corona10/cpython/blob/8311052773b19f4086ea878a3ced8bbadbaa2ecf/Include/internal/pycore_dict.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/144911/{{ revealButtonHref }}
https://github.com/python/cpython/pull/144911/files#diff-47692c69ef97b2d7cf05ad8e0fa2024b575af96abf9bbc5486f71156ab67ede4
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
https://github.com/python/cpython/pull/144911/files#diff-47692c69ef97b2d7cf05ad8e0fa2024b575af96abf9bbc5486f71156ab67ede4
Include/internal/pycore_interp_structs.hhttps://github.com/python/cpython/pull/144911/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
View file https://github.com/corona10/cpython/blob/8311052773b19f4086ea878a3ced8bbadbaa2ecf/Include/internal/pycore_interp_structs.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/144911/{{ revealButtonHref }}
https://github.com/python/cpython/pull/144911/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
https://github.com/python/cpython/pull/144911/files#diff-6075b6142803c1eccc213aa150704fd639443c65311d5999f69a5ea77cb76756
Include/internal/pycore_opcode_metadata.hhttps://github.com/python/cpython/pull/144911/files#diff-72bc4c0445516cc3eabd536220b2459617491ffaabbdb8a7c5381f36c991e378
View file https://github.com/corona10/cpython/blob/8311052773b19f4086ea878a3ced8bbadbaa2ecf/Include/internal/pycore_opcode_metadata.h
Open in desktop https://desktop.github.com
how customized files appear on GitHubhttps://docs.github.com/github/administering-a-repository/customizing-how-changed-files-appear-on-github
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
Please reload this pagehttps://github.com/python/cpython/pull/144911/files
Please reload this pagehttps://github.com/python/cpython/pull/144911/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.