Let's say CPython can gain a JIT or get rid of the GIL, but not both. Which would you want to have more?
JIT
51%
No GIL
49%
Poll ended at .
@brettcannon Doesn't pypy already have JIT and it only gives like 10% performance boost? Where as no GIL would make my code 3200% faster and mean I never have to deal with the nightmare of cross platform IPC ever again.
@ali1234 @brettcannon That can be improved alot, the newer one looks to be around 30% faster ( https://shopify.engineering/ruby-yjit-is-production-ready ). But I'm also team no gil since most the hot loops in my code are already running in some other more efficient system.
Ruby 3.2’s YJIT is Production-Ready

YJIT, a just-in-time (JIT) implementation on top of CRuby built at Shopify, is now production-ready and delivering major improvements to performance and speed. Maxime shares the updates that have been made in this newest version of YJIT, and future plans for further optimization.

Shopify
@bluegreenzeros @ali1234 Actually you don't need to have no GIL to get parallelism w/o IPC as there's the potential for https://peps.python.org/pep-0554/
PEP 554 – Multiple Interpreters in the Stdlib | peps.python.org

Python Enhancement Proposals (PEPs)

@brettcannon @bluegreenzeros

I assume you meant 684. But if you have multiple interpreters, how do they share objects without a (shared) GIL?

@ali1234 @bluegreenzeros Nope, I meant PEP 554. PEP 684 is the technical underpinnings for per-interpreter GILs, but PEP 554 proposes a public API at the Python level to leverage subinterpreters (and thus answers your question 😉).

@brettcannon

Please refer to my test case here: https://bpa.st/47SDC

Multiple interpreters doesn't solve my problem unless there is also a no-GIL communication channel between them.

View paste 47SDC

@ali1234 @brettcannon

Usage is explained in pep554, TLDR still has GIL limitations, but wants to do the following:
* increase exposure of the existing feature, which helps improve
the code health of the entire CPython runtime
* expose the (mostly) isolated execution of interpreters
* preparation for per-interpreter GIL
* encourage experimentation

Overall, this could be interesting and I can imagine some libraries written on top of it, but doesnt solve the problem significantly enough for me