You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I searched quite a lot, but I could not find any issue mentioning the fact that one cannot build this library with free-threaded Python, which can arise automatically with recent PyO3 versions and the use of --find-interpreter to build the library, which finds Python3.13t on Linux platforms.
So with the recent releases of PyO3 (started with 0.23.2, I think), my CI builds started failing. I noticed the following issue:
error[E0432]: unresolved import `pyo3::sync::GILProtected`
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/numpy-0.23.0/src/datetime.rs:63:12
|
63 | use pyo3::{sync::GILProtected, Bound, Py, Python};
| ^^^^^^^^^^^^^^^^^^ no `GILProtected` in `sync`
|
note: found an item that was configured out
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.23.3/src/sync.rs:47:12
|
47 | pub struct GILProtected<T> {
| ^^^^^^^^^^^^
note: the item is gated here
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.23.3/src/sync.rs:46:1
|
46 | #[cfg(not(Py_GIL_DISABLED))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0432]: unresolved import `pyo3::sync::GILProtected`
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/numpy-0.23.0/src/strings.rs:15:5
|
15 | sync::GILProtected,
| ^^^^^^^^^^^^^^^^^^ no `GILProtected` in `sync`
|
= note: unresolved item `crate::datetime::units::GILProtected` exists but is inaccessible
note: found an item that was configured out
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.23.3/src/sync.rs:47:12
|
47 | pub struct GILProtected<T> {
| ^^^^^^^^^^^^
note: the item is gated here
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.23.3/src/sync.rs:46:1
|
46 | #[cfg(not(Py_GIL_DISABLED))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For more information about this error, try `rustc --explain E0432`.
The use of GILProtected seems quite restricted in your project, and I was wondering if this issue could be solved by using a Mutex instead, as done by @davidhewitt in the jiter module, see crates/jiter/src/py_string_cache.rs.
If free-threaded Python is incompatible with this project, maybe it could be better to emit a compile_error!(...) instead?
The text was updated successfully, but these errors were encountered:
We are working on supporting the free-threaded build over in #471. We still need to make sure that we get rust-numpys dynamic borrow checking correct in the new environment, which is a bit more involved than just replacing the GILProtected.
Hi!
I searched quite a lot, but I could not find any issue mentioning the fact that one cannot build this library with free-threaded Python, which can arise automatically with recent PyO3 versions and the use of
--find-interpreter
to build the library, which findsPython3.13t
on Linux platforms.So with the recent releases of PyO3 (started with
0.23.2
, I think), my CI builds started failing. I noticed the following issue:The use of
GILProtected
seems quite restricted in your project, and I was wondering if this issue could be solved by using aMutex
instead, as done by @davidhewitt in thejiter
module, see crates/jiter/src/py_string_cache.rs.If free-threaded Python is incompatible with this project, maybe it could be better to emit a
compile_error!(...)
instead?The text was updated successfully, but these errors were encountered: