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 |
Beta Was this translation helpful? Give feedback.
-
|
@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 |
Beta Was this translation helpful? Give feedback.
-
|
@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. |
Beta Was this translation helpful? Give feedback.
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.
Beta Was this translation helpful? Give feedback.
All reactions