EPISODE · Nov 29, 2023 · 1H 13M
Episode 4 - Frame Evaluation
from core.py · host Pablo Galindo and Łukasz Langa
What makes Python an interpreter? Today we're talking about ceval.c, the wonders of frame evaluation, and how it changed over the years. # Timestamps (00:00:00) INTRO (00:00:59) BACK TO PYTHON 2.6 (00:02:53) Stack virtual machine (00:04:41) First encounter with opcodes (00:08:06) What even is frame evaluation? (00:12:51) Stack! Which stack? (00:15:46) PRESENT DAY (00:16:41) Computed gotos (00:21:22) PEP 523: JIT me, maybe (00:26:53) Let's generate the interpreter (00:29:08) The JIT is coming (00:33:13) Python function call inlining (00:37:23) Instrumentation: DTrace, PEP 669 (00:41:50) lltrace and pystats (00:44:02) Eval breaker (00:47:54) Signal handling (00:50:47) Recursion limits (00:54:27) String concatenation special case (00:58:24) WHAT'S GOING ON IN CPYTHON? (00:58:42) 3.12.0a2 (00:59:12) Critical section API adoption (00:59:34) PyOnceFlag (01:00:28) PyDict_GetItemRef() (01:03:36) PyList_Extend() and PyDict_Pop() (01:04:18) Parser: better error messages for non-matching elif/else (01:05:39) glob.translate() (01:07:22) TLS-PSK in the ssl module (01:08:35) IDLE debugger improvements (01:10:50) First micro-op in the Tier 2 interpreter (01:11:18) OUTRO
What this episode covers
What makes Python an interpreter? Today we're talking about ceval.c, the wonders of frame evaluation, and how it changed over the years. # Timestamps (00:00:00) INTRO (00:00:59) BACK TO PYTHON 2.6 (00:02:53) Stack virtual machine (00:04:41) First encounter with opcodes (00:08:06) What even is frame evaluation? (00:12:51) Stack! Which stack? (00:15:46) PRESENT DAY (00:16:41) Computed gotos (00:21:22) PEP 523: JIT me, maybe (00:26:53) Let's generate the interpreter (00:29:08) The JIT is coming (00:33:13) Python function call inlining (00:37:23) Instrumentation: DTrace, PEP 669 (00:41:50) lltrace and pystats (00:44:02) Eval breaker (00:47:54) Signal handling (00:50:47) Recursion limits (00:54:27) String concatenation special case (00:58:24) WHAT'S GOING ON IN CPYTHON? (00:58:42) 3.12.0a2 (00:59:12) Critical section API adoption (00:59:34) PyOnceFlag (01:00:28) PyDict_GetItemRef() (01:03:36) PyList_Extend() and PyDict_Pop() (01:04:18) Parser: better error messages for non-matching elif/else (01:05:39) glob.translate() (01:07:22) TLS-PSK in the ssl module (01:08:35) IDLE debugger improvements (01:10:50) First micro-op in the Tier 2 interpreter (01:11:18) OUTRO
NOW PLAYING
Episode 4 - Frame Evaluation
No transcript for this episode yet
Similar Episodes
Jun 5, 2026 ·12m
May 29, 2026 ·14m
May 27, 2026 ·14m
May 25, 2026 ·15m