
Sign up to save your podcasts
Or


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
By Pablo Galindo and Łukasz Langa5
1818 ratings
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

43,969 Listeners

4,375 Listeners

1,999 Listeners

623 Listeners

583 Listeners

213 Listeners

987 Listeners

8,059 Listeners

10,281 Listeners

8,007 Listeners

6,065 Listeners

139 Listeners

5,554 Listeners

16,340 Listeners

360 Listeners