GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — bpo-43795: Generate python3dll.c and doc data from manifest (PEP 652) by encukou · Pull Request #25315 · python/cpython

Conversation

@encukou

@encukou encukou commented Apr 9, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
encukou and others added 7 commits April 9, 2021 17:45
@encukou
Sort PC/python3dll.c
30c2bb2
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
Add a stable ABI manifest file
3c65a9a
@encukou
Turn scripts/stable_abi.py into a generic checker/generator
f509834
@encukou
Add generator for Doc/data/stable_abi.dat
1312304
@encukou
Update the Makefile
037a9af
@encukou
Add stable_abi.py to Tools/README
28beb66
@encukou
Regenerate autogenerated files
40aa85e
@encukou
encukou requested review from pablogsal and vstinner April 9, 2021 16:11
@the-knights-who-say-ni the-knights-who-say-ni added the CLA signed label Apr 9, 2021
@bedevere-bot bedevere-bot added the awaiting core review label Apr 9, 2021
@encukou encukou mentioned this pull request Apr 9, 2021
bpo-43795: Sort PC/python3dll.c #25312
Merged
@encukou

encukou commented Apr 9, 2021

Copy link
Copy Markdown
Member Author

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

encukou added 2 commits April 9, 2021 18:17
@encukou
Fix up Makefile
836ed76
@encukou
Add a blurb
33fca61
@pablogsal

pablogsal commented Apr 9, 2021

Copy link
Copy Markdown
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 :)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

encukou added 6 commits April 23, 2021 14:24
@encukou
Merge in the main branch
2bee562
@encukou
Include new additions to the Stable ABI
5d8ef95
@encukou
Fix up comments
9dac21c
@encukou
Classify a few ambiguous functions
6889905
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
Parse function pointers more correctly in the PyAPI_DATA headers check
de489c0
@encukou
Don't use abi_only items in the headers check
89e86c9
@encukou encukou added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Apr 23, 2021
@bedevere-bot

bedevere-bot commented Apr 23, 2021

Copy link
Copy Markdown

🤖 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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@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

encukou commented Apr 24, 2021

Copy link
Copy Markdown
Member Author

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@encukou encukou mentioned this pull request Apr 27, 2021
bpo-43795: PEP 652 user documentation #25668
Merged
@encukou
encukou merged commit f6ee4da into python:master Apr 29, 2021
@bedevere-bot bedevere-bot removed the awaiting core review label Apr 29, 2021
@encukou
encukou deleted the pep652-generate branch April 29, 2021 09:33
This was referenced Apr 29, 2021
bpo-43795 - Update Stable ABI dat. #25716
Closed
bpo-43882 - urllib.parse should sanitize urls containing ASCII newline and tabs. #25595
Merged
This was referenced Apr 29, 2021
bpo-43933: Show frame.f_lineno as None, rather than -1, if there is no line number. #25717
Merged
bpo-43976: add vendor config #25718
Closed
bpo-43933: Set frame.f_lineno during call to __exit__ #25719
Merged
@encukou encukou mentioned this pull request Jun 7, 2022
Implement PEP 652 -- Maintaining the Stable ABI #87961
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@vstinner vstinner Awaiting requested review from vstinner
@pablogsal pablogsal Awaiting requested review from pablogsal

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

4 participants

@encukou @pablogsal @bedevere-bot @the-knights-who-say-ni
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.