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
How does Python handle memory? Why does it need to perform custom forms of memory allocation? We talk about all that in this episode. We don't talk about Easter eggs, and we never mention Brandt by name, as promised last time! ## Timestamps (00:00:00) INTRO (00:00:22) PART 0: SPORTS...
Published 10/29/24
Published 10/29/24
Over 40 core developers spent a week in Bellevue WA putting finishing touches on Python 3.13, planning, prototyping, and implementing features for Python 3.14. We talked to half of them. We laughed, we cried. We were happy watching graphs go up, and sad watching them go down. It was intense....
Published 10/03/24