In this asynchronous episode we're interviewing a fellow core developer Yury Selivanov to talk about asyncio's past and future, composable design, immutability, and databases you'd actually like using. We also broke the 2-hour episode barrier!
## Timestamps
(00:00:00) INTRO
(00:01:33) PART 1: INTERVIEW
(00:02:27) What drives you?
(00:04:47) How do you choose what to work on?
(00:08:10) Hyperfocus
(00:09:28) Things from Rust that Python could use
(00:14:50) Nothing is sacred when you depend on glibc
(00:18:47) TypeScript typing is god-tier
(00:22:04) Adding async and await to Python
(00:34:11) Adding new keywords to the language
(00:41:17) Jumping into a new codebase
(00:49:22) Any design regrets?
(00:58:46) Contextvars
(01:10:40) Is the frozenmap PEP happening?
(01:19:21) uvloop
(01:23:25) What makes Gel lovable?
(01:39:57) PART 2: PR OF THE WEEK
(01:47:08) Saturday talks at PyCon should be fun
(01:50:35) PART 3: WHAT'S GOING ON IN CPYTHON
(01:50:47) Ken Jin's tail-call interpreter
(01:55:05) Barney Gale's glob.glob() optimization
(01:55:43) Brandt's boolean guards to narrow types to values in the JIT
(01:56:33) Mark Shannon's stack limits implemented with addresses, not counters
(01:58:34) Brandt's removal of _DYNAMIC_EXIT
(01:58:53) Mark Shannon's async for branches instrumented
(01:59:36) Free-threading changes
(01:59:58) Sam Gross' regression tests can now run in --parallel-threads
(02:00:34) Tomasz Pytel's thread safety crusade
(02:01:01) Xuanteng Huang's __annotations__ race fix
(02:01:11) Kumar's per-thread linked lists for tasks
(02:02:54) Serhiy's crashes related to PySys_GetObject() fixed
(02:03:22) Sam's usage of stack pointers in thread stack traversal
(02:03:38) Dino Viehland's lock avoidance during object cleanup
(02:04:23) OUTRO