-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
PEP 803: Stable ABI for Free-Threaded Builds #4556
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
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.
Looks good, some small 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.
Thanks @encukou. I've made a few readability suggestions.
peps/pep-0803.rst
Outdated
that is, only a subset of the functions, structures, etc. that CPython | ||
exposes. | ||
The limited API is versioned, and building against Limited API 3.X | ||
yields an extension that is ABI-compatible with CPython 3.X *and above* (modulo |
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.
Not sure what "modulo bugs" means in this sentence.
However, CPython will add a line of defense against outdated or misconfigured | ||
tools, or human mistakes, in the form of a new *module slot* containing | ||
basic ABI information. |
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.
However, CPython will add a line of defense against outdated or misconfigured | |
tools, or human mistakes, in the form of a new *module slot* containing | |
basic ABI information. | |
However, CPython will help defend against outdated or misconfigured | |
tools, or human mistakes, in the form of a new *module slot* containing | |
basic ABI information. |
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 my wording better suggests that we're adding a distinct mechanism.
This information will be checked when a module is loaded, and incompatible | ||
extensions will be rejected. |
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.
This information will be checked when a module is loaded, and incompatible | |
extensions will be rejected. | |
Checks will be done when a module is loaded, and incompatible | |
extensions will be rejected. |
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'd like to say which information is checked (with “this” referring to the previous sentence).
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.
Thank you for the reviews!
Sometimes I have reasons for a particular wording, and copy editing helps make the nuances stand out :)
Projects that need this can build separate extensions specifically for | ||
the 3.14 free-threaded interpreter, and for older stable ABI versions. | ||
|
||
API changes are OK |
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.
That's what the next sentence says. Do you think the 4 words don't make sense as a heading?
This information will be checked when a module is loaded, and incompatible | ||
extensions will be rejected. |
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'd like to say which information is checked (with “this” referring to the previous sentence).
However, CPython will add a line of defense against outdated or misconfigured | ||
tools, or human mistakes, in the form of a new *module slot* containing | ||
basic ABI information. |
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 my wording better suggests that we're adding a distinct mechanism.
Users -- or rather the tools they use for building and installing extensions -- | ||
will continue to be responsible for not putting incompatible extensions on | ||
Python's import paths. |
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.
The tools can only be responsible for their own actions; they're not expected to prevent anything else from messing things up.
- :c:type:`!PyModuleDef_Base` | ||
- :c:type:`PyModuleDef` | ||
|
||
- no longer include the following macros: |
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'd like to keep the current wording if you don't mind.
AFAIK, “exclude” sounds more like “prevent from being included” or “expel” than a passive “not include”. (And a few dictionaries I checked at least put the definitions in this order.)
Co-authored-by: Carol Willing <[email protected]> Co-authored-by: Jelle Zijlstra <[email protected]>
Basic requirements (all PEP Types)
pep-NNNN.rst
), PR title (PEP 123: <Title of PEP>
) andPEP
headerAuthor
orSponsor
, and formally confirmed their approvalAuthor
,Status
(Draft
),Type
andCreated
headers filled out correctlyPEP-Delegate
,Topic
,Requires
andReplaces
headers completed if appropriate.github/CODEOWNERS
for the PEPStandards Track requirements
Python-Version
set to valid (pre-beta) future Python version, if relevantDiscussions-To
andPost-History
📚 Documentation preview 📚: https://pep-previews--4556.org.readthedocs.build/