Go offline with the Player FM app!
Episode 21: A Garbage Episode
Manage episode 477536955 series 3522009
We talked about this episode for months now, and it's finally here. Garbage collection in its full glory. Classic and free-threaded. Generational and single-pass. With eager and delayed untracking. We cover it all! Explicitly.
## Timestamps
(00:00:00) THE FUCKING INTRO
(00:02:03) PART 0: SPORTS NEWS
(00:03:19) PART 1: GARBAGE COLLECTION
(00:03:57) The big problem with refcounting
(00:08:35) Solving reference cycles through PyGC_Head
(00:11:45) 64 bits ought to be enough for anybody
(00:17:30) Why a doubly-linked list?
(00:21:15) How reference counting makes finding cycles easier
(00:26:25) Roots bloody roots
(00:30:17) How are objects in the cycle destroyed?
(00:31:58) Object resurrection
(00:43:21) Why do you need "generations"?
(00:52:26) Delayed untracking
(00:54:46) Weak references, strong problems
(00:59:19) GC in free threading
(01:03:27) Reference counting in free-threading builds
(01:10:08) Incremental GC talk is DEFERRED
(01:11:00) PART 2: PR OF THE WEEK
(01:17:15) Type checking the standard library itself?
(01:29:51) PART 3: WHAT'S GOING ON IN CPYTHON?
(01:30:15) Free-threading changes
(01:32:54) Performance updates
(01:36:11) http.server supports HTTPS!
(01:37:01) PEP 768 and 758 landed
(01:37:34) HACL*
(01:38:24) fnmatch.filterfalse()
(01:38:54) Bugfixes
(01:42:46) Curiosities
(01:54:49) OUTRO
21 episodes
Manage episode 477536955 series 3522009
We talked about this episode for months now, and it's finally here. Garbage collection in its full glory. Classic and free-threaded. Generational and single-pass. With eager and delayed untracking. We cover it all! Explicitly.
## Timestamps
(00:00:00) THE FUCKING INTRO
(00:02:03) PART 0: SPORTS NEWS
(00:03:19) PART 1: GARBAGE COLLECTION
(00:03:57) The big problem with refcounting
(00:08:35) Solving reference cycles through PyGC_Head
(00:11:45) 64 bits ought to be enough for anybody
(00:17:30) Why a doubly-linked list?
(00:21:15) How reference counting makes finding cycles easier
(00:26:25) Roots bloody roots
(00:30:17) How are objects in the cycle destroyed?
(00:31:58) Object resurrection
(00:43:21) Why do you need "generations"?
(00:52:26) Delayed untracking
(00:54:46) Weak references, strong problems
(00:59:19) GC in free threading
(01:03:27) Reference counting in free-threading builds
(01:10:08) Incremental GC talk is DEFERRED
(01:11:00) PART 2: PR OF THE WEEK
(01:17:15) Type checking the standard library itself?
(01:29:51) PART 3: WHAT'S GOING ON IN CPYTHON?
(01:30:15) Free-threading changes
(01:32:54) Performance updates
(01:36:11) http.server supports HTTPS!
(01:37:01) PEP 768 and 758 landed
(01:37:34) HACL*
(01:38:24) fnmatch.filterfalse()
(01:38:54) Bugfixes
(01:42:46) Curiosities
(01:54:49) OUTRO
21 episodes
All episodes
×Welcome to Player FM!
Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.