-
Notifications
You must be signed in to change notification settings - Fork 2
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
BLD: target ABI3 #137
Comments
relevant query to watch Cython's progress on supported |
and here's cibuildwheel's doc on the matter: https://cibuildwheel.readthedocs.io/en/stable/faq/#abi3 |
Given that the stability of the C API in CPython is currently heavily discussed in the wake of PEP 703, ABI3 might not be future-proof for much longer, and it seems unlikely that Cython can catch up in the near future, so I'll close this as "not planned" (but it's still something I'd like to implement in the future when and if it becomes feasible) |
Re-opening so I don't accidentally open a dupe evenutally |
I also note that the patch I need to test this has gotten simpler: diff --git a/pyproject.toml b/pyproject.toml
index 2c8f222..fc65cde 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,7 @@
[build-system]
requires = [
"setuptools>=61.2",
- "Cython>=3.0",
+ "Cython>=3.1.0a1",
"numpy>=2.0.0",
]
build-backend = "setuptools.build_meta"
diff --git a/setup.py b/setup.py
index 457b5a9..5ee1188 100644
--- a/setup.py
+++ b/setup.py
@@ -30,6 +30,7 @@ else:
# keep in sync with runtime requirements (pyproject.toml)
("NPY_TARGET_VERSION", "NPY_1_25_API_VERSION"),
("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION"),
+ ("Py_LIMITED_API", "0x30b0000"),
],
+ py_limited_api=True,
)
], |
I would like to eventually target ABI3 (aka
LIMITED_API
) to improve future-compatibility of wheels and minimise maintenance cost.radio-astro-tools/casa-formats-io#50 is an example of successful migration, but it doesn't use Cython.
The following is at least part of the patch necessary in this project, though, at the time of writing, Cython 3.0 (just released) only has "limited" support for
Py_LIMITED_API
, so it doesn't work yet.The text was updated successfully, but these errors were encountered: