René's URL Explorer Experiment


Title: bpo-46541: Replace core use of _Py_IDENTIFIER() with statically initialized global objects. by ericsnowcurrently · Pull Request #30928 · python/cpython · GitHub

Open Graph Title: bpo-46541: Replace core use of _Py_IDENTIFIER() with statically initialized global objects. by ericsnowcurrently · Pull Request #30928 · python/cpython

X Title: bpo-46541: Replace core use of _Py_IDENTIFIER() with statically initialized global objects. by ericsnowcurrently · Pull Request #30928 · python/cpython

Description: In this PR we're no longer using _Py_IDENTIFIER() (or _Py_static_string()) in any core CPython code. It is still used in a number of non-builtin stdlib modules. The replacement is: PyUnicodeObject (not pointer) fields under _PyRuntimeState, statically initialized as part of _PyRuntime. A new _Py_GET_GLOBAL_IDENTIFIER() macro facilitates lookup of the fields (along with _Py_GET_GLOBAL_STRING() for non-identifier strings). https://bugs.python.org/issue46541#msg411799 explains the rationale for this change. The core of the change is in: (new) Include/internal/pycore_global_strings.h - the declarations for the global strings, along with the macros Include/internal/pycore_runtime_init.h - added the static initializers for the global strings Include/internal/pycore_global_objects.h - where the struct in pycore_global_strings.h is hooked into _PyRuntimeState Tools/scripts/generate_global_objects.py - added generation of the global string declarations and static initializers I've also added a --check flag to generate_global_objects.py (along with make check-global-objects) to check for unused global strings. That check is added to the PR CI config. The remainder of the PR updates the core code to use _Py_GET_GLOBAL_IDENTIFIER() instead of _Py_IDENTIFIER() and the related _Py*Id functions (likewise for _Py_GET_GLOBAL_STRING() instead of _Py_static_string()). This includes adding a few functions where there wasn't already an alternative to _Py*Id(), replacing the _Py_Identifier * parameter with PyObject *. I'm planning on addressing the following separately: stop using _Py_IDENTIFIER() in the stdlib modules (maybe) get rid of _Py_IDENTIFIER(), etc. entirely -- this may not be doable as at least one package on PyPI using this (private) API (maybe) intern the strings during runtime init https://bugs.python.org/issue46541

Open Graph Description: In this PR we're no longer using _Py_IDENTIFIER() (or _Py_static_string()) in any core CPython code. It is still used in a number of non-builtin stdlib modules. The replacement is: PyUnicodeOb...

X Description: In this PR we're no longer using _Py_IDENTIFIER() (or _Py_static_string()) in any core CPython code. It is still used in a number of non-builtin stdlib modules. The replacement is: PyUnico...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:cbda3ad1-ed00-1b83-cdc5-36818712b8c8
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idDD8E:5FB62:1D6F2C1:2757846:69958233
html-safe-nonce7a865a8ee4ecef475c5e24963d917126195a92bd5704716ec84a486477a08a74
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERDhFOjVGQjYyOjFENkYyQzE6Mjc1Nzg0Njo2OTk1ODIzMyIsInZpc2l0b3JfaWQiOiI3MTE2MzgzOTQwNzQ4MDgzNzYzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacd1d831cde3bf2e7ef7ab0c5844b38a83c83128983f828b0125262a133a1b2ad0
hovercard-subject-tagpull_request:832829329
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/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
twitter:imagehttps://avatars.githubusercontent.com/u/1152074?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1152074?s=400&v=4
og:image:altIn this PR we're no longer using _Py_IDENTIFIER() (or _Py_static_string()) in any core CPython code. It is still used in a number of non-builtin stdlib modules. The replacement is: PyUnicodeOb...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None4bd759bc5f83244e2a0de29b937365905c0fefd238b6f077c24a49830375b4df
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
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasecac7d4a5a6053f6655d0c3e8bfe5fd7a55c216fd
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F30928%2Fcommits%2F9d36c02417f43f585685772c3e6b8b527168f8cd
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%2F30928%2Fcommits%2F9d36c02417f43f585685772c3e6b8b527168f8cd
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%2Fcommits&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
Reloadhttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
Reloadhttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 34.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.5k 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 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 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
ericsnowcurrentlyhttps://github.com/ericsnowcurrently
python:mainhttps://github.com/python/cpython/tree/main
ericsnowcurrently:global-stringshttps://github.com/ericsnowcurrently/cpython/tree/global-strings
Conversation 39 https://github.com/python/cpython/pull/30928
Commits 117 https://github.com/python/cpython/pull/30928/commits
Checks 0 https://github.com/python/cpython/pull/30928/checks
Files changed https://github.com/python/cpython/pull/30928/files
Please reload this pagehttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
bpo-46541: Replace core use of _Py_IDENTIFIER() with statically initialized global objects. https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#top
Show all changes 117 commits https://github.com/python/cpython/pull/30928/files
ec0c931 Add _Py_STRING_LENGTH(). ericsnowcurrently Dec 2, 2021 https://github.com/python/cpython/pull/30928/commits/ec0c931905edb704c469d70c6e0d2dc0a8a4e219
cea1335 Add PyInterpreterState._preallocated.strings (identifiers-only for now). ericsnowcurrently Dec 2, 2021 https://github.com/python/cpython/pull/30928/commits/cea13355e95f6d19f9f9cd054c91093e51cf4d62
a5513fc Move the strings to _PyRuntimeState. ericsnowcurrently Jan 19, 2022 https://github.com/python/cpython/pull/30928/commits/a5513fced951da08d8e7ebc7e428b049f903aaf1
dd084ee Initialize the global singleton strings (identifiers-only for now). ericsnowcurrently Dec 2, 2021 https://github.com/python/cpython/pull/30928/commits/dd084ee9b38c29390800a37efa40db0e7bc1ae5e
472b0a6 Add the global (non-identifier) string literals. ericsnowcurrently Dec 2, 2021 https://github.com/python/cpython/pull/30928/commits/472b0a62a6925594d5eae16035f3b7eae63a1a65
8a3096b Add _PyObject_CallMethod(). ericsnowcurrently Dec 2, 2021 https://github.com/python/cpython/pull/30928/commits/8a3096bf233d3be742335e886dd27455390fe18e
38300b3 Get rid of _Py_IDENTIFIER() in tokenizer.c. ericsnowcurrently Dec 2, 2021 https://github.com/python/cpython/pull/30928/commits/38300b315e0fec435b63453f7c99eb2f6c564707
fb9fe24 Add _PyDict_GetItemWithError(). ericsnowcurrently Dec 3, 2021 https://github.com/python/cpython/pull/30928/commits/fb9fe24d87db7bd14e0160463579bd561d5e9267
7fa8e83 Set the hash if not set yet. ericsnowcurrently Dec 4, 2021 https://github.com/python/cpython/pull/30928/commits/7fa8e839a301d665c090113dd8acbc67cb664064
9563c27 Add _PySys_GetAttr(). ericsnowcurrently Dec 3, 2021 https://github.com/python/cpython/pull/30928/commits/9563c27e340a8be52a70996199cb8216906160b9
674e40b Get rid of _Py_IDENTIFIER() in _warnings.c. ericsnowcurrently Dec 3, 2021 https://github.com/python/cpython/pull/30928/commits/674e40b694b6d37076407db069c916a416d7e7eb
e5e7483 _PyObject_LookupSpecial() -> _PyObject_LookupSpecialId(). ericsnowcurrently Dec 4, 2021 https://github.com/python/cpython/pull/30928/commits/e5e748356b8bae7bb922c6f3bedde51214700aa8
07ac6ba Add _PyObject_LookupSpecial(). ericsnowcurrently Dec 4, 2021 https://github.com/python/cpython/pull/30928/commits/07ac6baf24ef4e48e85f84fca48f08c45c7c533e
249e830 Get rid of _Py_IDENTIFIER() in bltinmodule.c. ericsnowcurrently Dec 4, 2021 https://github.com/python/cpython/pull/30928/commits/249e8307c36f9e5c72e258a01c2d791e92da2dc4
3ea3c09 Get rid of _Py_IDENTIFIER() in ceval.c. ericsnowcurrently Dec 4, 2021 https://github.com/python/cpython/pull/30928/commits/3ea3c09b560757f7237a16702ff5d2bd736d1fbc
5713dab Add a TODO. ericsnowcurrently Jan 19, 2022 https://github.com/python/cpython/pull/30928/commits/5713dab10e3a1a6d6037fc77d25f6ff820de9e0a
77a21d6 Get rid of _Py_IDENTIFIER() in specialize.c. ericsnowcurrently Jan 19, 2022 https://github.com/python/cpython/pull/30928/commits/77a21d66d840bff65adfa679c2fae37ff4892f8b
704d440 Get rid of _Py_IDENTIFIER() in traceback.c. ericsnowcurrently Jan 19, 2022 https://github.com/python/cpython/pull/30928/commits/704d440921aaa6d988e9d724b81a73473d035c6f
2800db6 Get rid of _Py_IDENTIFIER() in codecs.c. ericsnowcurrently Jan 20, 2022 https://github.com/python/cpython/pull/30928/commits/2800db6f6b4148d1a619c3a08037e369701fb4f7
db72429 Get rid of _Py_IDENTIFIER() in compile.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/db7242927929cf6e41d69eb2b3b8e14a0fa0e1af
737391f Get rid of _Py_IDENTIFIER() in importdl.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/737391f307f31022feac2e372de1ae32524903b3
9e3ff70 Get rid of _Py_IDENTIFIER() in marshal.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/9e3ff70d0bef843374692e39917e5fc7fe442472
71fc362 Get rid of _Py_IDENTIFIER() in errors.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/71fc362f6f9f42ea3822e546962edad66485f1fe
2046b53 Get rid of _Py_IDENTIFIER() in import.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/2046b53845bd23918c4f096b8332d527426742b0
a4c1aa9 Add _PySys_SetAttr(). ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/a4c1aa91fe3d48d26b9326346924fc8a9c717478
48fcb06 Get rid of _Py_IDENTIFIER() in pylifecycle.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/48fcb062d9ce8d212241c172213246dd8a05a526
c9bc124 Get rid of _Py_IDENTIFIER() in pythonrun.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/c9bc12428127ea81b5b9a9c13419039a596b4c89
816c630 Get rid of _Py_IDENTIFIER() in sysmodule.c. ericsnowcurrently Jan 24, 2022 https://github.com/python/cpython/pull/30928/commits/816c630c7e36928ab46a5a9d352d1708a07a42c9
ef2b061 Get rid of _Py_IDENTIFIER() in typeobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/ef2b06146dd80ec561d1454aabe859f7c6171cf4
4e03f95 Get rid of _Py_IDENTIFIER() in abstract.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/4e03f95145c3e4ea311c739a615634113bd917dc
814ec4a Add _PyEval_GetBuiltin(). ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/814ec4ad7b6adbab7ba29bedeb0977b641623484
a91fe82 Get rid of _Py_IDENTIFIER() in descrobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/a91fe82c16a54c08de5c06ec91408c9f5d93f474
25a2ec4 Get rid of _Py_IDENTIFIER() in moduleobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/25a2ec4258c91c187eccfa595f940dc21607b8d7
865cc8a Get rid of _Py_IDENTIFIER() in object.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/865cc8a0ac2f0f79344c7d1b32d9d423db421d01
e4c2f0d Get rid of _Py_IDENTIFIER() in bytearrayobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/e4c2f0d6607a8355dd904d8561c8a8ab442aa88f
f82baa8 Get rid of _Py_IDENTIFIER() in bytesobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/f82baa897c306fa155104ad0531885ac190bc897
4b10323 Get rid of _Py_IDENTIFIER() in classobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/4b1032321293e0edf803606a6c50a19921f55ed6
ffd9493 Get rid of _Py_IDENTIFIER() in complexobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/ffd94932f9b0f4049885550cd2a237b2db15ffe8
ddd887b Get rid of _Py_IDENTIFIER() in dictobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/ddd887b674ad75ecfaa217c9fe84f37e1259ca99
0a02936 Get rid of _Py_IDENTIFIER() in enumobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/0a02936ee0d1c476cb3ec231815968728dc84134
d157842 Get rid of _Py_IDENTIFIER() in exceptions.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/d1578423f7ad6e0da748a3a305424e3b5483769b
297240c Get rid of _Py_IDENTIFIER() in fileobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/297240cf183fef839ffa2e13c51a27eeb72259e9
875353d Get rid of _Py_IDENTIFIER() in frameobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/875353d9c33311141bb9546d8553533460519e7c
9138b2e Get rid of _Py_IDENTIFIER() in funcobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/9138b2ed9f67fa296e1b909a028cc3052cf8e294
5e576f0 Get rid of _Py_IDENTIFIER() in genericaliasobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/5e576f01d72af2b3a2fea3f6a34d310050b4dfea
7591bf1 Get rid of _Py_IDENTIFIER() in genobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/7591bf10bd4b15a03f5ddfdefde92083c4397744
f27547e Get rid of _Py_IDENTIFIER() in iterobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/f27547e410a245165478859388a4839249987faa
dd3900f Get rid of _Py_IDENTIFIER() in listobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/dd3900fc80c9cc45df1d264daa02b065081bf863
ecd568d Get rid of _Py_IDENTIFIER() in longobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/ecd568df100666c3ee611741efe923dc6f9ec9d5
187133d Get rid of _Py_IDENTIFIER() in methodobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/187133d3021f3f98b79555fce36e78148ba1328f
e04947e Get rid of _Py_IDENTIFIER() in odictobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/e04947e5f3667cd81c13eae412fba0a442236c54
91ef303 Get rid of _Py_IDENTIFIER() in rangeobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/91ef303f1cba76ac7edcc73206e758a3fb753c63
21c564a Get rid of _Py_IDENTIFIER() in setobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/21c564a85466a69f8ffd399ee5241f2f2f88be39
d833719 Get rid of _Py_IDENTIFIER() in structseq.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/d833719df734b6496e275919b4b08b5427caba87
329f8fd Get rid of _Py_IDENTIFIER() in tupleobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/329f8fd0ccfb5af5618af37e0cfb1d54c0f8fd06
0cbeb2d Get rid of _Py_IDENTIFIER() in unicodeobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/0cbeb2d6fb8db3f9370583a687f827bd45d75b30
972044a Get rid of _Py_IDENTIFIER() in unionobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/972044a0d8850686808a1898520bcaf004558a9b
e55556f Get rid of _Py_IDENTIFIER() in weakrefobject.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/e55556f2e9980c6dd3d9fb09eb5a453418ad5bc4
5e32d13 Get rid of _Py_IDENTIFIER() in _pickle.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/5e32d13b22e74204ae7bd6c987c0db59fe4915ae
6081cf1 Add _PyObject_CallMethodObj(). ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/6081cf140e1bb150b69f14dcf8a8d4b48822ab81
6aa5674 Use _PyObject_CallMethodObj(). ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/6aa56742222b1e933a4e7739ab7dd49092e6f6e8
37c0200 _PyObject_CallMethod() -> _PyObject_CallMethodFormat(). ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/37c02006a3b8ddd372b60a030db3ffa366eeeb45
10f82cd _PyObject_CallMethodObj() -> _PyObject_CallMethod(). ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/10f82cd8e6c46e83f5c97fc56ae8c7ab142031e6
85f16a4 Get rid of _Py_IDENTIFIER() in the _io module. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/85f16a42b67d7ab41085882019e14bbf7541cd7f
aa641a3 Get rid of _Py_IDENTIFIER() in _threadmodule.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/aa641a3813beb88acedbb72dd257772a307c67ba
dda08ad Get rid of _Py_IDENTIFIER() in _abc.c. ericsnowcurrently Jan 25, 2022 https://github.com/python/cpython/pull/30928/commits/dda08adceb087e4cf38cee147b3678da890f8e95
4d75c6b Get rid of _Py_IDENTIFIER() in faulthandler.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/4d75c6b25c014d08fb4c166508f940c34f8170ca
9d36c02 Get rid of _Py_IDENTIFIER() in _collectionsmodule.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
1f42649 Get rid of _Py_IDENTIFIER() in itertoolsmodule.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/1f426491e6ba44cc9abc9ed8cfa4ed645bab5ddb
c2f1cfb Get rid of _Py_IDENTIFIER() in posixmodule.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/c2f1cfbcec40ff45f85815eefc1ae24682c9f1b4
3ed68a7 Get rid of _Py_IDENTIFIER() in _operator.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/3ed68a75edb07199984b29ddbe75d9958508114a
d86ceb1 Get rid of _Py_IDENTIFIER() in timemodule.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/d86ceb15a2ef1e6a20ac8dc9323f3a841cffa943
c0c6777 Get rid of _Py_IDENTIFIER() in main.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/c0c6777fddd204db7b2fab442392bc5e654356c7
c9f4563 Get rid of _Py_static_string() in typeobject.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/c9f4563d2f281a2edbd3375fd9d2c076437f3488
0796475 Get rid of _Py_static_string() in ast_opt.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/079647569134f3f16d78122ef9d19f44b4377a94
3e5fac3 Get rid of _Py_static_string() in compile.c. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/3e5fac384def758bb0cdee75bb1f576bc61fb9c5
77d423e Disallow _Py_IDENTIFIER in core. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/77d423e696d7b71e607443695d99dd3a52674020
308fb9e Leave all the functions. ericsnowcurrently Jan 26, 2022 https://github.com/python/cpython/pull/30928/commits/308fb9ec3c9b2bc905b98684c4a0ed80cac87aa4
2136577 Auto-generate the global strings. ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/21365773cb585b00bedbd3e30d440602e35de1ad
b14d0a8 Drop _Py_unicode_state.empty_string. ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/b14d0a8d1fb4532467bd2e3e8ae07809f0b5be50
61abdab Do not include the latin-1 characters (for now). ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/61abdabcd579c7693b8020289d7316b64d303ea3
db9de0a Use a better prefix for the field names. ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/db9de0a1122a9419dde700ed4e827d762f4f07d9
1074b77 Clean up the declarations a little. ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/1074b7706aec230d5cd28b371704b834ad8e505c
d4f58fd Add _Py_IS_POINTER_FROM_VAR(). ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/d4f58fdd3e843daaab86753c7fd913a967726ab9
09c2a51 Consider all global strings as singletons. ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/09c2a51b5ccabfc7e3eb20c2c27dc9efa23f8d67
983dda0 _Py_IS_POINTER_FROM_VAR() -> _PyObject_IsSingleton(). ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/983dda01af07c86e9fdd5c724e63b9505fe8cd66
3fbc75f Add _PyUnicode_InternSafe(). ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/3fbc75fef9918042627c23a47685f6fc18f7eb60
bd8b74c Intern the global strings when used. ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/bd8b74cfce968561bbbd9f2a712368436e786c5a
b305ded Limit when we check the global strings for consistency. ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/b305ded43357fdc4a2b3bf313f1fea1eec1ce539
3da2d65 Drop _PyUnicode_InternSafe(). ericsnowcurrently Jan 27, 2022 https://github.com/python/cpython/pull/30928/commits/3da2d657fb76dacc3180b8669669d1e7bc0a64f8
3673bbd Add a --check option to generate_global_objects.py. ericsnowcurrently Jan 28, 2022 https://github.com/python/cpython/pull/30928/commits/3673bbd20e99ea045f749a612db38134558799ea
9a419a7 Drop unused global strings. ericsnowcurrently Jan 28, 2022 https://github.com/python/cpython/pull/30928/commits/9a419a71fe898f483119e36056ae763d345168ee
c6a292d Check the global objects in CI. ericsnowcurrently Jan 28, 2022 https://github.com/python/cpython/pull/30928/commits/c6a292df1f90973c95d7952321e7359afc129efb
ffbd515 Fix _PyObject_CallMethod() for size_t. ericsnowcurrently Jan 31, 2022 https://github.com/python/cpython/pull/30928/commits/ffbd5153937c35961a370d888ce57862430e4ca6
878059b Dump the exception if normal printing fails. ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/878059b7a73b45fca00d21556ceff20768f33e32
780e61f Regenerate test_frozenmain.h. ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/780e61f81dc417f7064f791945636c3ee2670b32
876aa77 Add some identifiers that are only used in non-debug builds. ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/876aa77c5da0d93b7c5038fbbd38f6953f37bf12
f0bd78d Drop _PyObject_CallMethod_SizeT(). ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/f0bd78df26504117156fdb3ee0be18f7356b7633
d575057 Merge branch 'main' into global-strings ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/d575057dd43f1936bb0acfd52446263c010566a5
db92384 Cast to void* before casting to uint64_t. ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/db92384bc64ed5e096ce9428f8177caf17ffa2f0
955d26a Explicitly mark each module that still uses _Py_IDENTIFIER(). ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/955d26a90c1a2beb99e74e143ac5b5fd7b5ebfa0
3c66484 _testembed still uses _Py_IDENTIFIER(). ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/3c66484761dc5abd4b96afb7617292421f39501a
05fd034 Fix name collisions from Windows. ericsnowcurrently Feb 1, 2022 https://github.com/python/cpython/pull/30928/commits/05fd0348cc46904ebe72de69f9dda26e4b13f280
78482cf _Py_GET_GLOBAL_IDENTIFIER() -> _Py_ID(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/78482cfa87497bd09f085018bbdddff4a4295043
72316f4 _Py_GET_GLOBAL_STRING() -> _Py_STR(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/72316f471cc4238ffe4ed3b558bf075250944683
75b6a83 Use a simpler field prefix than spamspamspam_. ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/75b6a835484729f413debc05d1e2f92ca3563bca
7b670c1 ASCII_STR() -> STRUCT_FOR_ASCII_STR(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/7b670c14455f4555321dc1d830763914cb67db13
144ed0f LITERAL() -> STRUCT_FOR_STR(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/144ed0fcfe0313f9e87e1aa2d910781b4fe2a6b1
f3aa225 ID() -> STRUCT_FOR_ID(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/f3aa225ea9484781c635001b17dfd6f7786d0beb
050b34b Use _PyObject_IMMORTAL_INIT(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/050b34b21bb7e3233b3e8338f24bd4c7023c15ff
dbec341 Drop _Py_STRING_LENGTH(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/dbec341bcbe53005b8d2645f775dd8e885d8a770
7a075ac Inline uses of _Py_ID(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/7a075acd2e7e6215213cad47bbcad478f2012dde
6fdba80 Inline uses of _Py_STR(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/6fdba801c316b79ab1f00201c1c42a326cdd5a46
4e00c87 Drop _PyObject_IsSingleton(). (C99 undefined makes it too tricky.) ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/4e00c8701d52f44864b285b129ed511ff241c71c
fbe8f4a Drop address-taking from _PY_ID() and _Py_STR(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/fbe8f4ac22eea8191069f4277ebcb23cdb9ca51a
f2d9b81 Add a compatibility shim for _PyObject_LookupSpecialId(). ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/f2d9b81ddc08a7b630bd88eccf7871da24b22753
7781025 Merge branch 'main' into global-strings ericsnowcurrently Feb 4, 2022 https://github.com/python/cpython/pull/30928/commits/7781025e7143a8ce5b9efcde4c9d3483443303af
Clear filters https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
Please reload this pagehttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
Please reload this pagehttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
Prev https://github.com/python/cpython/pull/30928/commits/4d75c6b25c014d08fb4c166508f940c34f8170ca
Next https://github.com/python/cpython/pull/30928/commits/1f426491e6ba44cc9abc9ed8cfa4ed645bab5ddb
Please reload this pagehttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd
https://github.com/ericsnowcurrently
ericsnowcurrentlyhttps://github.com/python/cpython/commits?author=ericsnowcurrently
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L410
Modules/_collectionsmodule.chttps://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
View file https://github.com/ericsnowcurrently/cpython/blob/9d36c02417f43f585685772c3e6b8b527168f8cd/Modules/_collectionsmodule.c
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/30928/commits/{{ revealButtonHref }}
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
https://github.com/python/cpython/pull/30928/commits/9d36c02417f43f585685772c3e6b8b527168f8cd#diff-bfedaecb4a5a92b4dc78b96a753ae08600be7f0acab82383abcc6799aa47084c
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.