
Gehen Sie mit der App Player FM offline!
PyObject preservation
Manage episode 294513501 series 2921809
Given two separately refcounted objects, how can you arrange for each of them to stay live so long as the other is live? Why doesn't just having a strong-strong or strong-weak reference between the two objects work? What is object resurrection in CPython? What's a finalizer and why does it make things more complicated? How does Python GC work?
Further reading.
- PyObject preservation PR https://github.com/pytorch/pytorch/pull/56017
- Sam Gross's original PoC, which works fine if the two objects in question are both PyObjects https://github.com/colesbury/refcount/
- PEP 442 Safe object finalization https://www.python.org/dev/peps/pep-0442/
- Essential reading about Python GC https://devguide.python.org/garbage_collector/
83 Episoden
Manage episode 294513501 series 2921809
Given two separately refcounted objects, how can you arrange for each of them to stay live so long as the other is live? Why doesn't just having a strong-strong or strong-weak reference between the two objects work? What is object resurrection in CPython? What's a finalizer and why does it make things more complicated? How does Python GC work?
Further reading.
- PyObject preservation PR https://github.com/pytorch/pytorch/pull/56017
- Sam Gross's original PoC, which works fine if the two objects in question are both PyObjects https://github.com/colesbury/refcount/
- PEP 442 Safe object finalization https://www.python.org/dev/peps/pep-0442/
- Essential reading about Python GC https://devguide.python.org/garbage_collector/
83 Episoden
Alla avsnitt
×Willkommen auf Player FM!
Player FM scannt gerade das Web nach Podcasts mit hoher Qualität, die du genießen kannst. Es ist die beste Podcast-App und funktioniert auf Android, iPhone und im Web. Melde dich an, um Abos geräteübergreifend zu synchronisieren.