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 — gh-146636: PEP 803: Reference documentation by encukou · Pull Request #148013 · python/cpython

Conversation

@encukou

@encukou encukou commented Apr 2, 2026 •
edited by github-actions Bot
Loading

Uh oh!

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

Copy link
Copy Markdown
Member
  • Issue: Implement PEP 803 -- abi3t #146636

📚 Documentation preview 📚: https://cpython-previews--148013.org.readthedocs.build/

Sorry, something went wrong.

Uh oh!

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

All reactions
encukou added 3 commits April 2, 2026 15:03
@encukou
abi3t docs
8e203eb
@encukou
Manifest, annotations
c1d7fef
@encukou
Fixup
f83f6b4
@encukou
encukou requested review from AA-Turner, ZeroIntensity, ericsnowcurrently and hugovk as code owners April 2, 2026 14:17
@bedevere-app bedevere-app Bot added the awaiting core review label Apr 2, 2026
@bedevere-app bedevere-app Bot mentioned this pull request Apr 2, 2026
Implement PEP 803 -- abi3t #146636
Closed
8 of 9 tasks
AIdjis
AIdjis reviewed Apr 2, 2026
View reviewed changes
Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

AIdjis
AIdjis reviewed Apr 2, 2026
View reviewed changes
Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

@encukou
I'm not good with numbers
b3e31c6
ZeroIntensity
ZeroIntensity reviewed Apr 2, 2026
View reviewed changes

@ZeroIntensity ZeroIntensity left a comment

Copy link
Copy Markdown
Member

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.

Congrats on the PEP acceptance :)

Mostly editorial comments from me. The content generally looks good.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread Doc/c-api/module.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst
Comment on lines +221 to +223
Note that compiling for Stable ABI is *not* a complete guarantee that code will
be compatible with the expected Python versions.
Stable ABI prevents *ABI* issues, like linker errors due to missing

@ZeroIntensity ZeroIntensity Apr 2, 2026

Copy link
Copy Markdown
Member

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.

I think we need to precede "Stable ABI" with "the"?

Suggested change
Note that compiling for Stable ABI is *not* a complete guarantee that code will
be compatible with the expected Python versions.
Stable ABI prevents *ABI* issues, like linker errors due to missing
Note that compiling for the Stable ABI is *not* a complete guarantee that code will
be compatible with the expected Python versions.
The Stable ABI prevents *ABI* issues, like linker errors due to missing

Sorry, something went wrong.

Uh oh!

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

All reactions

@encukou encukou Apr 3, 2026

Copy link
Copy Markdown
Member Author

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.

Even if there's two of them?

Sorry, something went wrong.

Uh oh!

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

All reactions

@ZeroIntensity ZeroIntensity Apr 3, 2026

Copy link
Copy Markdown
Member

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.

Yeah, not too sure about the rules here. What about "the Stable ABIs"?

Sorry, something went wrong.

Uh oh!

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

All reactions

@encukou encukou Apr 6, 2026

Copy link
Copy Markdown
Member Author

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 way I wrote it still sounds best to me...

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

@StanFromIreland

StanFromIreland commented Apr 2, 2026

Copy link
Copy Markdown
Member

The new check caught removals: https://github.com/python/cpython/actions/runs/23907059205/job/69719041532?pr=148013 (and on your PR out of everyone's ;-)

encukou reacted with hooray emoji
All reactions
  • 🎉 1 reaction

Sorry, something went wrong.

Uh oh!

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

encukou added 3 commits April 3, 2026 10:53
@encukou
Merge in the main branch
2372da9
@encukou
Address review
b3799de
@encukou
Add a blurb for the PEP
3bc47ee
hugovk
hugovk reviewed Apr 3, 2026
View reviewed changes
Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

ngoldbaum
ngoldbaum reviewed Apr 3, 2026
View reviewed changes

@ngoldbaum ngoldbaum left a comment

Copy link
Copy Markdown
Contributor

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.

Thanks for putting this together! I left a few comments inline, please take them or leave them as you see fit.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread Doc/c-api/module.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Outdated
When using a build tool (for example, ``setuptools``), the tool is
generally responsible for setting macros and synchronizing them with
extension filenames and other metadata.
Prefer using the tool's options over defining the macros manually.

@ngoldbaum ngoldbaum Apr 3, 2026

Copy link
Copy Markdown
Contributor

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 setuptools is a poor example to use above then? Because setuptools expects users to set the build flags manually...

You could delete the "(For example, SetupTools)" above, or maybe refer to meson-python or scikit-build-core instead? These days that's what I recommend to people depending on if they already use CMake or not.

Sorry, something went wrong.

Uh oh!

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

All reactions

@encukou encukou Apr 6, 2026

Copy link
Copy Markdown
Member Author

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.

AFAIK Setuptools is the most widely known build tool; the example is there to clarify what kind of “build tool” I'm talking about.

Setuptools has a --py_limited_api argument. All tools will ideally need an update for abi3t.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

Comment thread Doc/c-api/stable.rst Outdated

The goal for the Limited API is to allow everything that is possible with the
- define both :c:macro:`!Py_LIMITED_API` and :c:macro:`!Py_TARGET_ABI3T`, or
- define only :c:macro:`!Py_LIMITED_API` and build for free-threaded Python.

@ngoldbaum ngoldbaum Apr 3, 2026

Copy link
Copy Markdown
Contributor

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.

Suggested change
- define only :c:macro:`!Py_LIMITED_API` and build for free-threaded Python.
- Define only :c:macro:`!Py_LIMITED_API` and define :c:macro:`!Py_GIL_DISABLED`.
This happens automatically with a free-threaded interpreter, except on Windows.

Sorry, something went wrong.

Uh oh!

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

All reactions

@encukou encukou Apr 6, 2026

Copy link
Copy Markdown
Member Author

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.

I think defining Py_GIL_DISABLED "manually" is still only supported on Windows.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

encukou and others added 2 commits April 6, 2026 12:06
@encukou @hugovk
Apply suggestions from code review
30d97b1
Co-authored-by: Hugo van Kemenade <[email protected]>
@encukou
Respond to reviews
e7e102a
@encukou encukou mentioned this pull request Apr 7, 2026
Document the entire C API #141004
Closed
@encukou
Merge in the main branch
fec46db
@encukou
encukou requested a review from StanFromIreland as a code owner April 8, 2026 07:32
da-woods
da-woods reviewed Apr 9, 2026
View reviewed changes
Comment thread Doc/c-api/stable.rst Resolved

Uh oh!

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

encukou added 2 commits April 10, 2026 14:36
@encukou
Correct macro name
47ff800
@encukou
Merge in the main branch
f279be8
@clin1234 clin1234 mentioned this pull request Apr 12, 2026
gh-146636: Add Free-threaded Stable ABI migration guide #148453
Closed
@encukou

encukou commented Apr 14, 2026

Copy link
Copy Markdown
Member Author

I've addressed the comments; does anyone want to re-review?
If not I'll merge around Thursday.

All reactions

Sorry, something went wrong.

Uh oh!

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

@encukou
encukou merged commit 0fcf2b7 into python:main Apr 16, 2026
39 checks passed

Uh oh!

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

@bedevere-app bedevere-app Bot removed the awaiting core review label Apr 16, 2026
@encukou
encukou deleted the 803-docs branch April 16, 2026 12:17
ljfp pushed a commit to ljfp/cpython that referenced this pull request Apr 25, 2026
@encukou @hugovk @ljfp
pythongh-146636: PEP 803: Reference documentation (pythonGH-148013)
cedb210
Co-authored-by: Hugo van Kemenade <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@hugovk hugovk hugovk left review comments
@ngoldbaum ngoldbaum ngoldbaum left review comments
@ZeroIntensity ZeroIntensity ZeroIntensity left review comments
@ericsnowcurrently ericsnowcurrently Awaiting requested review from ericsnowcurrently ericsnowcurrently is a code owner
@AA-Turner AA-Turner Awaiting requested review from AA-Turner AA-Turner is a code owner
@StanFromIreland StanFromIreland Awaiting requested review from StanFromIreland StanFromIreland is a code owner
+2 more reviewers
@da-woods da-woods da-woods left review comments
@AIdjis AIdjis AIdjis left review comments
Reviewers whose approvals may not affect merge requirements

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.

7 participants

@encukou @StanFromIreland @hugovk @ngoldbaum @da-woods @ZeroIntensity @AIdjis
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.