Explain the difference between C API and ABI - #2145
harshitethic wants to merge 1 commit into
Conversation
ncoghlan
left a comment
There was a problem hiding this comment.
Thanks for this! The updated content is good, but it highlights the fact that the current paragraph is really in the wrong place (as it applies to all extension modules, not just those written to wrap external libraries). We should move it up to a better location rather than leaving it where it is.
| CPython C API (Application Programming Interface) is allowing Python users | ||
| to tap into that functionality. However, wrapping modules by hand is quite | ||
| tedious, so a number of other alternative approaches should be considered. | ||
| The C API (Application Programming Interface) is the source-level |
There was a problem hiding this comment.
This background info isn't specific to wrapper modules, so it should be moved up under the "An overview of binary extensions" section.
I would suggest a new 'How binary extension modules work' subheading after the current "Disadvantages" heading, and tweaking the wording to refer to "maintaining binary extension modules" in general rather than "wrapping modules" specifically.
| details such as exported symbols, calling conventions, and data layout. | ||
|
|
||
| CPython exposes a rich C API, but extensions built against the full API are | ||
| normally tied to the CPython minor version and platform they were compiled |
There was a problem hiding this comment.
minor is confusing, so Python talks about feature releases and bugfix releases, or uses examples like 3.X.
Addresses #47.
Summary
abi3wheelsValidation
📚 Documentation preview 📚: https://python-packaging-user-guide--2145.org.readthedocs.build/en/2145/