-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Now that the C API Workgroup is officially established (PEP-731), we will draft another process PEP, containing guidelines for C API evolution. This PEP is intended as a live document, whose contents continue to be moderated by the workgroup members.
I volunteer to write the first draft.
I intend to keep the terms “evolution” and “revolution” inside this org. The “evolution” PEP will simply be current guidelines for new additions/changes to the C API .
[June 2024] I realized we won't be able to agree on the whole thing at once, so strategy is to add individual sections.
Checklist with the old plan: (click to expand)
- Collect guidelines from this repo into a coherent document
- Remove guidelines that lack consensus (they can be re-added after more discussion)
- Share a draft publicly, remove more guidelines that lack consensus
- Publish and announce the PEP
- Add links to the new PEP to PEP-7
Some outstanding issues in the text:
- In the general public API, these guidelines apply in full force. -- we need a better name for “unlimited” API.
- We should link to a list of the stakeholders somewhere in this document; perhaps we should embed that list in the PEP.
- Figure out what to do with rules for unstable API -- link to PEP-689, or the devguide?
- Can we use this PEP as the new reference for C API guidelines, to expand/change the C API? In short, copy/move this section here: https://devguide.python.org/developer-workflow/c-api/index.html#guidelines-for-expanding-changing-the-public-api
- Document how to expose a function as a symbol in stable ABI, and as a
static inlinefunction (or macro) of the same name in non-limited API: https://github.com/capi-workgroup/api-evolution/pull/53/files#r1838797749
Metadata
Metadata
Assignees
Labels
No labels