Discovercore.pyEpisode 2 - PEP 703: Removing the GIL
Episode 2 - PEP 703: Removing the GIL

Episode 2 - PEP 703: Removing the GIL

Update: 2023-10-30
Share

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



Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Episode 2 - PEP 703: Removing the GIL

Episode 2 - PEP 703: Removing the GIL

Pablo Galindo and Łukasz Langa