Opaque PyObject ABI support#5807
Conversation
4f82f37 to
bcf9a32
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
I got to everything except for this today. See latest push. |
|
Argh, I think the Windows 3.15 builds might be hitting python/cpython#149786. I will try to reproduce. |
|
I filed python/cpython#149887 for the Windows issue we're running into. I had run into it elsewhere but not fully understood the cause until now. @davidhewitt how would you like to handle Windows GIL-enabled abi3t builds being broken for 3.15.0b1? Just turn off the build because it's an upstream bug? We could also work around it by installing Python from uv instead of setup-python, I think. |
|
I added docs. I also disabled Windows abi3t build tests with a GIL-enabled interpreter in the noxfile along with a note to re-enabled when the upstream bug is fixed. |
5c1c897 to
ebc99b9
Compare
| 2. Ensure that the built shared objects are correctly marked as `abi3` and `abi3t`. | ||
| This is accomplished by telling your build system that you're using the limited API. | ||
| [`maturin`] >= 0.9.0 and [`setuptools-rust`] >= 0.11.4 support `abi3` wheels. | ||
| [`maturin`] >= 0.9.0 and [`setuptools-rust`] >= 0.11.4 support `abi3` wheels and [`maturin`] >= 1.14 supports `abi3t` wheels. |
There was a problem hiding this comment.
Ping @messense, it probably makes sense to coordinate the release of PyO3 0.29 and a maturin release that supports abi3t.
ngoldbaum
left a comment
There was a problem hiding this comment.
did a full pass in the github PR review UI and spotted some typos in comments
|
I'm working on tests for maturin and spotted a bug in the |
|
I added maturin tests over in PyO3/maturin#3113, which also serve as end-to-end tests of the packaging side of this PR. |
Fixes #5786.
abi3tandabi3t-py315features to enable abi3t builds. These features work analogously to theabi3features.target_abifield to theInterpreterConfigstruct. This allows keeping track of a separate host and target Python version and fixing some longstanding issues with separation of concerns there.PythonAbiandPythonAbiBuilderstruct which wraps an implementation, version, and a newPythonAbiKindenum. ThePythonAbiKindenum can itself be one of two enums:StableAbiorVersionSpecific. The former can beAbi3orAbi3tand the latter can beFreeThreadedorGilEnabled. It's a lot of new types but it also allows us to track details about the target ABI in a much more fine-grained manner.