Skip to content
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

bpo-43795: Generate python3dll.c and doc data from manifest (PEP 652) #25315

Merged
merged 15 commits into from
Apr 29, 2021

Conversation

encukou
Copy link
Member

@encukou encukou commented Apr 9, 2021

Here's an initial stab at PEP 652 – Maintaining the Stable ABI

There are two reviews I'm looking for:

  1. The tool
    • I'm commandeering and assimilating Tools/scripts/stable_abi.py@pablogsal, hope you're OK with that. I prefixed all the tool/platform-specific functions with gcc or binutils
    • The parser is recursive, which isn't necessary for this data set. But it will allow e.g. structs to have members that have their own data.
  2. The contents of the limited API/stable ABI – this is definitely not final, but the diff in Doc/data/stable_abi.dat (the limited API) and PC/python3dll.c (Windows stable ABI) and the check-limited-api failure should show some juicy controversial items.

(Docs, tests and more file generators/checks to come later.)

https://bugs.python.org/issue43795

encukou and others added 7 commits April 9, 2021 17:45
Each section is sorted to reduce diffs (review effort) when the file
becomes generated.
Sort is done with key=str.lower to preserve most of the original order
(underscored items first).
@encukou
Copy link
Member Author

encukou commented Apr 9, 2021

I anticipate discussions taking a while, so I also opened #25312 to reduce diffs for reviewers.

@pablogsal
Copy link
Member

  • The tool – I'm commandeering and assimilating Tools/scripts/stable_abi.py@pablogsal, hope you're OK with that. I prefixed all the tool/platform-specific functions with gcc or binutils

👍 No problem, go ahead :)

PyMarshal_*, PyMember_{Get,Set}One, PyThreadState_DeleteCurrent,
Py_GetArgcArgv are not declared with Py_LIMITED_API,
so they're not part of the limited API. They stay in the stable ABI, though.

PyInterpreterState_GetID part of limited API and stable ABI.

PyOS_ReadlineFunctionPointer is removed from the stable ABI records,
as functions expecting FILE* are not part of the ABI. Ssee bpo-43868.
@encukou encukou added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Apr 23, 2021
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @encukou for commit 89e86c9 🤖

If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again.

@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Apr 23, 2021
@encukou encukou marked this pull request as ready for review April 24, 2021 07:00
@encukou encukou requested a review from a team as a code owner April 24, 2021 07:00
@encukou
Copy link
Member Author

encukou commented Apr 24, 2021

Despite some buildbots timing out os failing socket, I call this ready for review.

@encukou encukou merged commit f6ee4da into python:master Apr 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants