Replies: 3 comments 12 replies
|
@wjakob maybe I could get a quote from you to add to PEP 803, if you're interested? python/peps#4831 |
8 replies
|
@wjakob it looks like nanobind doesn't yet support the PyModExport or PyABIInfo APIs. Would it be helpful for someone else to add support? I did this pass already for PyO3 and I think I should be able to do a similar refactor here inside the |
3 replies
|
@kumaraditya303 has a proposed workaround: #1324 for the issues with the 3.15 stable API that might allow a way to get nanobind working without waiting for 3.16. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Python 3.15 will (hopefully) include a new ABI that allows building limited API extensions for both the GIL-enabled and free-threaded build. The new ABI will abstract over differences between the GIL-enabled and free-threaded ABI by making PyObject opaque.
See PEP 803 and PEP 809 for more details. There is currently experimental support in CPython for building PEP 803 stable ABI extensions via the private
_Py_OPAQUE_PYOBJECTmacro. I want to enable real-world end-to-end testing for the new stable ABI to allow the Python steering council to make informed and confident decisions.It's likely the
PyModuleDefusage innd_defs.hwill need updates to use the PyModExport API on Python 3.15 and newer. I also see a few structs that statically extendPyObject_HEADin nanobind internals that may need to be converted to heap types.It'll also require adding support for the Python 3.15 limited API. I see here there was some resistance to supporting targeting newer versions of the stable API.
See numpy/numpy#30704, python-cffi/cffi#226, and cython/cython#7399 for more information about this in other projects with widely used C APIs that are attempting to add support.
All reactions