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 added 7 commits Jan 12, 2021
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 encukou commented Apr 9, 2021

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

encukou added 2 commits Apr 9, 2021
@pablogsal
Copy link
Member

@pablogsal pablogsal commented Apr 9, 2021

  • 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 :)

encukou added 6 commits Apr 23, 2021
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.
@bedevere-bot
Copy link

@bedevere-bot bedevere-bot commented Apr 23, 2021

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

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

@encukou encukou marked this pull request as ready for review Apr 24, 2021
@encukou encukou requested a review from python/windows-team as a code owner Apr 24, 2021
@encukou
Copy link
Member Author

@encukou 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
65 of 75 checks passed
65 of 75 checks passed
@github-actions
Docs
Details
@github-actions
Check for source changes
Details
@github-actions
Check if generated files are up to date
Details
@github-actions
Windows (x86)
Details
@github-actions
Windows (x64)
Details
@github-actions
macOS
Details
@github-actions
Ubuntu
Details
@github-actions
Ubuntu SSL tests with OpenSSL ${{ matrix.openssl_ver }}
Details
@bedevere-bot
buildbot/AMD64 Fedora Stable Refleaks PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL7 Refleaks PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL8 Refleaks PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Windows8.1 Refleaks PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE Fedora Stable Refleaks PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL7 Refleaks PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL8 Refleaks PR Build done.
Details
@bedevere-bot
buildbot/s390x Fedora Refleaks PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL7 Refleaks PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL8 Refleaks PR Build done.
Details
Azure Pipelines PR #20210423.29 succeeded
Details
@travis-ci
Travis CI - Pull Request Build Passed
Details
@bedevere-bot
bedevere/issue-number Issue number 43795 found
Details
@bedevere-bot
bedevere/news News entry found in Misc/NEWS.d
@bedevere-bot
buildbot/AMD64 Arch Linux Asan Debug PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Arch Linux Asan PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Arch Linux TraceRefs PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Debian PGO PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Debian root PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Fedora Stable Clang Installed PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Fedora Stable Clang PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Fedora Stable LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Fedora Stable LTO PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Fedora Stable PR Build done.
Details
@bedevere-bot
buildbot/AMD64 FreeBSD Non-Debug PR Build done.
Details
@bedevere-bot
buildbot/AMD64 FreeBSD Shared PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL7 LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL7 LTO PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL7 PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL8 LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL8 LTO PR Build done.
Details
@bedevere-bot
buildbot/AMD64 RHEL8 PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Ubuntu Shared PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Windows10 PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Windows10 Pro PR Build done.
Details
@bedevere-bot
buildbot/AMD64 Windows8.1 Non-Debug PR Build done.
Details
@bedevere-bot
buildbot/PPC64 Fedora PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE Fedora Stable Clang Installed PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE Fedora Stable Clang PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE Fedora Stable LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE Fedora Stable LTO PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE Fedora Stable PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL7 LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL7 LTO PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL7 PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL8 LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL8 LTO PR Build done.
Details
@bedevere-bot
buildbot/PPC64LE RHEL8 PR Build done.
Details
@bedevere-bot
buildbot/aarch64 Fedora Stable PR Build done.
Details
@bedevere-bot
buildbot/aarch64 RHEL7 PR Build done.
Details
@bedevere-bot
buildbot/aarch64 RHEL8 PR Build done.
Details
@bedevere-bot
buildbot/s390x Debian PR Build done.
Details
@bedevere-bot
buildbot/s390x Fedora Clang Installed PR Build done.
Details
@bedevere-bot
buildbot/s390x Fedora Clang PR Build done.
Details
@bedevere-bot
buildbot/s390x Fedora LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/s390x Fedora LTO PR Build done.
Details
@bedevere-bot
buildbot/s390x Fedora PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL7 LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL7 LTO PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL7 PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL8 LTO + PGO PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL8 LTO PR Build done.
Details
@bedevere-bot
buildbot/s390x RHEL8 PR Build done.
Details
@bedevere-bot
buildbot/s390x SLES PR Build done.
Details
@bedevere-bot
buildbot/x86 Gentoo Installed with X PR Build done.
Details
@bedevere-bot
buildbot/x86 Gentoo Non-Debug with X PR Build done.
Details
@bedevere-bot
buildbot/x86-64 macOS PR Build done.
Details
@encukou encukou deleted the encukou:pep652-generate branch Apr 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants