by ngoldbaum on 7/12/24, 7:52 PM with 378 comments
by eigenvalue on 7/12/24, 9:16 PM
by simonw on 7/13/24, 12:15 AM
by nine_k on 7/12/24, 8:57 PM
[x] Async.
[x] Optional static typing.
[x] Threading.
[ ] JIT.
[ ] Efficient dependency management.
by vegabook on 7/13/24, 7:27 AM
This is a big fundamental and (in many cases breaking) change, even if it's "optional".
by Sparkyte on 7/12/24, 9:28 PM
by mihaic on 7/12/24, 9:21 PM
by discreteevent on 7/12/24, 9:57 PM
Meanwhile what takes the crown? - Single threaded python.
(Well, ok Rust looks like it's taking first place where you really need the speed and it does help parallelism without requiring absolute purity)
by farhanhubble on 7/12/24, 11:48 PM
by jmward01 on 7/12/24, 11:42 PM
by westurner on 7/14/24, 10:09 PM
Is there a cibuildwheel / CI check for free-threaded Python support?
Is there already a reason not to have Platform compatibility tags for free-threaded cpython support? https://packaging.python.org/en/latest/specifications/platfo...
Is there a hame - a hashtaggable name - for this feature to help devs find resources to help add support?
Can an LLM almost port in support for free-threading in Python, and how should we expect the tests to be insufficient?
"Porting Extension Modules to Support Free-Threading" https://py-free-threading.github.io/porting/
[1] "Python 3 "Wall of Shame" Becomes "Wall of Superpowers" Today" https://news.ycombinator.com/item?id=4907755
(Edit)
Compatibility status tracking: https://py-free-threading.github.io/tracking/
by elijahbenizzy on 7/12/24, 10:08 PM
I'd love to see a more fluid model between the two -- E.G. if I'm doing a "gather" on CPU-bound coroutines, I'm curious if there's something that can be smart enough to JIT between async and multithreaded implementations.
"Oh, the first few tasks were entirely CPU-bound? Cool, let's launch another thread. Oh, the first few threads were I/O-bound? Cool, let's use in-thread coroutines".
Probably not feasible for a myriad of reasons, but even a more fluid programming model could be really cool (similar interfaces with a quick swap between?).
by grandimam on 7/13/24, 7:52 AM
by VagabundoP on 7/13/24, 7:09 PM
-Episode 2: Removing the GIL[1]
-Episode 12: A Legit Episode[2]
[1]https://www.youtube.com/watch?v=jHOtyx3PSJQ&list=PLShJCpYUN3...
[2]https://www.youtube.com/watch?v=IGYxMsHw9iw&list=PLShJCpYUN3...
by vldmrs on 7/12/24, 9:41 PM
by pansa2 on 7/13/24, 12:53 AM
What about simple operations like incrementing an integer? IIRC this is currently thread-safe because the GIL guarantees each bytecode instruction is executed atomically.
by gnatolf on 7/12/24, 10:40 PM
by codethief on 7/13/24, 8:23 PM
by earthnail on 7/13/24, 3:14 PM
Really excited about this.
by throwaway5752 on 7/12/24, 10:20 PM
by nas on 7/12/24, 8:34 PM
by OutOfHere on 7/12/24, 8:38 PM
With it, the single-threaded case is slower.
by anacrolix on 7/12/24, 10:12 PM