Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 968
Add a page on changing the C API (PEP-652)#682
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
Uh oh!
There was an error while loading. Please reload this page.
Conversation
This repeats points currently said in `Include/README.rst`. I intend to replace most of that README with a link to this document. The main change from that document are: - The three "rings" are not defined by where things are declared. It would be good to have them in the right place, but it's not yet the case, and for technical reasons we might never reach the ideal. (In `Include/README.rst` it makes more sense to make the locations more prominent.) - The order is switched. For changing the Limited API you generally need to read (and follow guidelines in) the preceding sections as well. I added points from PEP 652 (Maintaining the Stable ABI).
encukou commented Apr 29, 2021 • 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.
The page, rendered on RTD: https://cpython-devguide--682.org.readthedocs.build/c-api/ @erlend-aasland, you wrote Note that I also want to improve |
erlend-aasland 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, with some nitpicks :)
Uh oh!
There was an error while loading. Please reload this page.
c-api.rst Outdated
| - Please start a public discussion before expanding the Limited API | ||
| - The limited API and its intended use must follow standard C, not just |
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 limited API and its intended use must follow standard C, not just | |
| - The Limited API and its intended use must follow standard C, not just |
(Nit: I find the "its intended use" part a tiny bit weird. Can it be reformulated?)
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.
Also, the "follow standard C" part is covered in line 130.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| 1. The internal, private API, available with ``Py_BUILD_CORE`` defined. | ||
| Ideally declared in ``Include/internal/``. Any API named with a leading | ||
| underscore is also considered private. | ||
| 2. The public C API, available when ``Python.h`` is included normally. |
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.
Maybe drop "normally"?
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.
By normally I mean without defining macros to select the other variants. I'll expand that in the section below.
encukou commented May 4, 2021
Thanks for the comments! |
erlend-aasland 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 :)
encukou commented May 4, 2021
Thanks! |
vstinner commented May 26, 2021
https://devguide.python.org/c-api/ is great, thanks @encukou! Next step: document C API removal ;-) |
This repeats points currently said in `Include/README.rst`. I intend to replace most of that README with a link to this document. The main change from that document are: - The three "rings" are not defined by where things are declared. It would be good to have them in the right place, but it's not yet the case, and for technical reasons we might never reach the ideal. (In `Include/README.rst` it makes more sense to make the locations more prominent.) - The order is switched. For changing the Limited API you generally need to read (and follow guidelines in) the preceding sections as well. On top of that, I addes points from PEP 652 (Maintaining the Stable ABI). Co-Authored-By: Erlend Egeberg Aasland <[email protected]>
This repeats points currently said in
Include/README.rst.I intend to replace most of that README with a link to this document.
The main change from that document are:
It would be good to have them in the right place, but it's
not yet the case, and for technical reasons we might never reach
the ideal. (In
Include/README.rstit makes more sense to makethe locations more prominent.)
need to read (and follow guidelines in) the preceding sections
as well.
I added points from PEP-652 (Maintaining the Stable ABI).