-
Notifications
You must be signed in to change notification settings - Fork 579
add free-threading support #693
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
Conversation
0060018
to
2a6cd13
Compare
26da437
to
155374c
Compare
155374c
to
9168e62
Compare
Don’t mind by me asking but do you have the time to look into winloop as well? Or will I have to mirror everything and guess with blind faith? |
👀 Also looking forward to MagicStack/asyncpg having free-threading support... |
Same |
There isn't anything to guess with blind faith here, you can follow the guide at https://py-free-threading.github.io/ci/ to add free-threading CI to projects you wish. I have never looked at winloop before so I'll not have time for that atm. |
Would be nice to add a test (should be possible with |
The existing tests pass on free-threading 3.14t CI which I added as part of this PR (the failing one test is a flaky test), do you want a test where uvloops are run in parallel threads? |
I added a race-condition test, which is confirmed to fail without Many thanks to @kumaraditya303 for putting this altogether! |
@kumaraditya303 I'm going to start mirroring these changes going on. No promises of when I'll finish unless It gets done in a rational amount of time. If needed I will open a uv virtual environment with the free-threading settings and version 3.14 set and testing locally. |
Good News: I have successfully mirrored the changes from here, winloop 0.3.0 will release soon since I now obey how version numbers actually work and since the Bad News: uvloop also seems there's some rounding bugs with macos from the tests that I've seen I am also question why my library has the same problem. But maybe if we find a way to fix it I'll try doing the same with winloop's end. Rounding has always been a bit of a problem for a while (not sure why exactly). |
Yeah, it's definitely getting more flaky to run tests, and there're a few warnings to take care of. Let's release for Python 3.14 first, and get back to those as follow-ups. |
Good idea. |
Changes ======= * Fixes for Python 3.14 (#638) (by @graingert @hroncok @paulocheque @fantix in 46456b6 for #637) * Add free-threading support (#693) (by @kumaraditya303 in 286b370 for #642) Fixes ===== * Use Cython `enum` for `__PREALLOCED_BUFS` (#634) (by @jakirkham in 7bb12a1 for #634) * test: fix getaddrinfo test (#663) (by @fantix in 5680792 for #663) * test: fix task name for Python 3.13.3/3.14 (#662) (by @cjwatson in 96b7ed3 for #662)
Changes ======= * Fixes for Python 3.14 (#638) (by @graingert @hroncok @paulocheque @fantix in 46456b6 for #637) * Add free-threading support (#693) (by @kumaraditya303 in 286b370 for #642) Fixes ===== * Use Cython `enum` for `__PREALLOCED_BUFS` (#634) (by @jakirkham in 7bb12a1 for #634) * test: fix getaddrinfo test (#663) (by @fantix in 5680792 for #663) * test: fix task name for Python 3.13.3/3.14 (#662) (by @cjwatson in 96b7ed3 for #662)
This adds free-threading support by adding
freethreading_compatible=True
inloop.pyx
and also enables CI and wheels for 3.14t.cc @fantix