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

gh-114626: add PyCFunctionFast and PyCFunctionFastWithKeywords #114627

Merged
merged 6 commits into from
Feb 15, 2024

Conversation

davidhewitt
Copy link
Contributor

@davidhewitt davidhewitt commented Jan 26, 2024

Closes #114626

I basically did a find-and-replace, plus added typedefs to keep _PyCFunctionFast and _PyCFunctionFastWithKeywords around for backwards compatibility.


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

Copy link

cpython-cla-bot bot commented Jan 26, 2024

All commit authors signed the Contributor License Agreement.
CLA signed

Copy link
Member

@encukou encukou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me.
The type names aren't really needed in C code -- you typically just define a function with the given signature -- so they were left out.

The names should be added to Misc/stable_abi.toml (see [typedef.PyCFunction] there.)

This is a limited API; let's play by the book (well, the book we want to write) and let the C-API WG know. (edit: opened issue at capi-workgroup/decisions#11 )

Include/methodobject.h Show resolved Hide resolved
@davidhewitt
Copy link
Contributor Author

@encukou thanks for tidying this up, sorry it was just off the top of my to-do list and I hadn't quite got around to it yet 😞

@encukou
Copy link
Member

encukou commented Feb 15, 2024

No problem! Thanks for bringing it up and starting.
I started with GitHub suggestions, but then they piled up and I wanted to test them, so I ended up with commits to push :)

@encukou encukou merged commit 9e3729b into python:main Feb 15, 2024
51 checks passed
vstinner added a commit to vstinner/cython that referenced this pull request Feb 16, 2024
Python 3.13a4 adds a public PyCFunctionFastWithKeywords type.

* python/cpython@9e3729b
* python/cpython#114627
* capi-workgroup/decisions#11

Python 3.13a1 removed the private _PyCFunctionFastWithKeywords type.
vstinner added a commit to vstinner/cython that referenced this pull request Feb 16, 2024
Python 3.13a4 adds a public PyCFunctionFastWithKeywords type and
removes the private _PyCFunctionFastWithKeywords type:

* python/cpython@9e3729b
* python/cpython#114627
* capi-workgroup/decisions#11
@vstinner
Copy link
Member

FYI PR to update Cython: cython/cython#6003

vstinner added a commit to vstinner/cython that referenced this pull request Feb 16, 2024
Python 3.13a4 adds a public PyCFunctionFastWithKeywords and
PyCFunctionFast types and removes the private
_PyCFunctionFastWithKeywords and _PyCFunctionFast types:

* python/cpython@9e3729b
* python/cpython#114627
* capi-workgroup/decisions#11
scoder pushed a commit to cython/cython that referenced this pull request Feb 16, 2024
…3a4 (GH-6003)

Python 3.13a4 adds a public PyCFunctionFastWithKeywords and
PyCFunctionFast types and removes the private
_PyCFunctionFastWithKeywords and _PyCFunctionFast types:

* python/cpython@9e3729b
* python/cpython#114627
* capi-workgroup/decisions#11
@vstinner
Copy link
Member

typedef PyCFunctionWithKeywords _PyCFunctionWithKeywords;

Wait, the old name is _PyCFunctionFastWithKeywords, not _PyCFunctionWithKeywords: Fast is missing...

@vstinner
Copy link
Member

I wrote cython/cython@e9b08d3 to make Cython compatibility with Python 3.13 alpha4.

@vstinner
Copy link
Member

Wait, the old name is _PyCFunctionFastWithKeywords, not _PyCFunctionWithKeywords: Fast is missing...

I wrote PR #115561 to fix this typo.

scoder pushed a commit to cython/cython that referenced this pull request Feb 18, 2024
…3a4 (GH-6003)

Python 3.13a4 adds a public PyCFunctionFastWithKeywords and
PyCFunctionFast types and removes the private
_PyCFunctionFastWithKeywords and _PyCFunctionFast types:

* python/cpython@9e3729b
* python/cpython#114627
* capi-workgroup/decisions#11
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.

Expose unprefixed variants of _PyCFunctionFast and _PyCFunctionFastWithKeywords
4 participants