top | item 35497075

(no title)

nas | 2 years 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).

discuss

order

viraptor|2 years ago

Are the immortal objects different than what happens with gc.freeze() ?

SethTro|2 years ago

Moderately 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.