5 ms·
This is great and was a huge effort by Eric Snow and collaborators to make it happen. To be clear, this is not "PEP 703 – Making the Global Interpreter Lock Op
by nas 3y ago
This is great and was a huge effort by Eric Snow and collaborators to make it happen.
To be clear, this is not "PEP 703 – Making the Global Interpreter Lock Optional in CPython", by Sam Gross. PEP 703 is more ambitious and add quite a bit of complexity to the CPython implementation. PEP 684 mostly cleans things up and encapsulates global state better. The most distruptive change is to allow immortal objects. I hope PEP 703 can go in too, even with the downsides (complexity, bit slower single threaded performance).
- westurner 3y ago"PEP 703 – Making the Global Interpreter Lock Optional in CPython" (2023) https://github.com/python/peps/blob/main/pep-0703.rst https://github.com/python/peps/blob/main/pep-0703.rst https://peps.python.org/pep-0703/ https://peps.python.org/pep-0703/ colesbury/nogil https://github.com/colesbury/nogil https://github.com/colesbury/nogil : docker run -it nogil/python docker run -it nogil/python-cuda
- viraptor 3y agoAre the immortal objects different than what happens with gc.freeze() ?
- SethTro 3y agoModerately different; Particularly with respect to how to performance. If I read this correctly immortal objects stop changing refcount which prevents cache line invalidation while `gc.freeze()` just stops cleaning up objects with zero refcount.
- viraptor 3y agoOh, that would be amazing for quite a few things in web apps if exposed properly. Love it.