Episode 2 - PEP 703: Removing the GIL
Listen now
Description
We've read the PEP on making the Global Interpreter Lock optional so you don't have to. Timestamps (00:00:00) Intro (00:00:50) CURRENT STATE OF THINGS (00:00:58) Reference counting (00:01:35) Garbage collection (00:02:33) What is the Global Interpreter Lock? (00:03:57) The GIL and threading (00:07:24) Current ways around the GIL (00:09:26) HISTORICAL ATTEMPTS TO REMOVE THE GIL (00:09:46) 1999: Greg Stein's attempt at Python 1.6 (00:10:46) Jython doesn't have the GIL (00:11:19) 2015: Larry Hastings' Gilectomy at Python 3.5 (00:12:34) Pablo says removing the GIL is actually very easy (00:13:24) Łukasz is skeptical (00:14:20) 2021: Sam Gross' nogil at Python 3.9 (00:18:22) 2023: PEP 703 for Python 3.13 (00:20:05) PEP 703 IN DETAIL (00:20:20) Biased Reference Counting (00:25:19) Other needed speedups: deferred refcounts, immortalization, GC (00:28:41) mimalloc (00:34:46) More GC changes (00:38:20) eval breaker (00:42:08) Thread-safe standard collections (00:45:26) Fast paths vs. slow paths (00:49:47) Reading freed memory with mimalloc is kinda okay? (00:58:06) Specializations become harder to implement without the GIL (01:01:27) PEP 703 terms of acceptance (01:04:08) No free lunch (01:09:25) It's now or never (01:11:59) Outro
More Episodes
Oof, no episode in April, huh? Yeah, we're getting close to Python 3.13 beta 1. PyCon US is also coming up real soon. Let's use this opportunity then to talk about a feature we're teaming up on: a better interactive interpreter! ## Outline (00:00:00)  INTRO (00:01:53)  PART 1: History of...
Published 05/03/24
Published 05/03/24