Episode 27: Calling Things, Part 1

Episode 27: Calling Things, Part 1

From core.py by Pablo Galindo and Łukasz Langa

December 7, 2025 · 2h 6m · Season 1 · Episode 27

About this episode

The episode discusses how synchronous Python function calls work, focusing on various types of call stacks and the interpreter's evaluation stack.

Inside of you there are two stacks. Actually, there’s three. The system-level call stack, the CPython call stack, and the interpreter’s evaluation stack. What is all that about? Today we’ll talk about how synchronous Python function calls work. Async stuff comes next time! ## Timestamps Here you go — all square brackets changed to parentheses: (00:00:00) INTRO (00:02:28) PART 1: CALLING THINGS (00:04:19) The Lawful Good Language (00:13:18) Why is there a call stack? (00:19:45) Python functions are not tied to the system call stack (00:23:22) What's in a Python frame? (00:23:35) Execution book-keeping data (00:24:21) Locals (00:27:35) The interpreter evaluation stack (00:28:34) What are register-based interpreters? (00:36:33) Interpretation using the evaluation stack (00:42:46) Executing a function (00:45:37) How do exceptions fit into the execution model? (01:05:51) PART 2: PR OF THE WEEK (01:15:48) PART 3: DONATE.PYTHON.ORG (01:17:21) PART 4: WHAT'S GOING ON IN CPYTHON (01:27:59) Free threading changes (01:38:16) Performance (01:51:08) Bugfixes (02:04:03) OUTRO

People in this episode

Hosts: Pablo Galindo, Łukasz Langa

Topics covered

  • Python function calls
  • call stack
  • interpreter evaluation stack
  • synchronous programming
  • CPython internals

Keywords

  • Python
  • call stack
  • CPython
  • function calls
  • evaluation stack
  • synchronous
  • interpreter

Mentioned in this episode

Organizations: CPython

More episodes of core.py

Explore listener stats, chart rankings, contacts and more on the core.py podcast page.