Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34k
gh-144161: Clarify additional immortalization in free-threaded build#144176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
gh-144161: Clarify additional immortalization in free-threaded build#144176
Conversation
…buildClarify that the objects listed in the free-threading HOWTO areadditional immortalizations specific to the free-threaded build.This addresses the inconsistency with sys.intern() documentation,which describes the default (mortal) behavior.
python-cla-botbot commentedJan 23, 2026 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
sharktide left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
LGTM
ZeroIntensity left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I think it would make much more sense to just add a note tosys.intern andPyUnicode_InternInPlace saying that the free-threaded build makes all interned strings immortal.
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Doc/c-api/unicode.rst Outdated
| You must keep a reference to the result to benefit from interning. | ||
| ..note:: | ||
| On the free-threaded build, all interned strings are:term:`immortal`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Sorry I messed up the suggestion, the right term is "free threading":
| On the free-threaded build, all interned strings are:term:`immortal`. | |
| On the:term:`freethreaded <free threading>` build, all interned strings are:term:`immortal`. |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
This comment was marked as outdated.
This comment was marked as outdated.
ZeroIntensity commentedJan 27, 2026
"free threaded" is the more common spelling in the docs: |
vstinner commentedJan 27, 2026
I confirm. No hyphen should be used, see the issuegh-144277. |
Prometheus3375 commentedJan 28, 2026
In this PR preposition was changed from "in the free threaded build" to "on the free threaded build". I believe that "in" is more correct because it can be rephrased as "inside the free threaded build" unlike "on" version. Quick check with LLM also told me that, but perhaps I am missing something. |
Uh oh!
There was an error while loading.Please reload this page.
Clarify that the objects listed in the free-threading HOWTO are additional immortalizations specific to the free-threaded build.
This addresses the inconsistency reported in#144161, where
sys.intern()documentation states that interned strings are not immortal, while the free-threading HOWTO suggested otherwise. Both are correct for their respective contexts (default vs. free-threaded builds).Changes follow the suggestion by@Prometheus3375 in the issue discussion.
📚 Documentation preview 📚:https://cpython-previews--144176.org.readthedocs.build/