
core.py
We talk about Python internals, because we work on Python internals. We joke about stuff, because we’re jokers. Episodes between 60 and 90 minutes in length. We’ve done more than a few so far and it doesn’t seem like we’ll be stopping any time soon!
Episodes
Episode 29: Is CPython developed with AI now?
Let's talk about what it really means in practice that AI tools are used in the cpython GitHub repository now. First-hand opinions based on first-party experience. And some personal news!## Timestamps(00:00:00) INTRO(00:00:58) PART 0: Developer Leaves Residence(00:09:15) Python's got more batteries included than Łukasz ever knew(00:14:18) Camera does not respect Łukasz(00:14:43) PART 1: Fu
Episode 28: 2025 In Review
Let's take a breather from heavy content and take a look back at last year in this light but spicy episode! The good, the less good, and the disgusting. All that in barely an hour!## Timestamps(00:00:00) INTRO(00:01:32) Pablo Galindo SPACE(00:06:20) PART 1: 2025 - the good, the uncertain, and the disgusting(00:07:06) Good: free threading(00:15:34) Good: remote debugging(00:17:31) Good: Python
Episode 27: Calling Things, Part 1
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!## TimestampsHere you go — all square brackets changed to parentheses:(00:00:00) INTRO(00:02:28) PART 1: CALLING THINGS(00:04:1
Episode 26.2: CPython Sprint Week in Cambridge UK, Part 2
More interviews from the core sprint! This time we have: Greg P. Smith, Thomas Wouters, Paul Ganssle, Pradyun Gedam, Carol Willing, Guido van Rossum, Brett Cannon, Erlend Aasland, Tal Einat, Lysandros Nikolaou, Yury Selivanov, and Diego Russo -- the organizer himself.## Timestamps(00:00:00) INTRO(00:01:51) Greg P. Smith(00:07:57) Thomas Wouters(00:16:33) Paul Ganssle(00:28:28) Pradyun Gedam(00:34:
Episode 26.1: CPython Sprint Week in Cambridge UK, Part 1
What? What do you mean this two-and-a-half hour episode is PART 1? Well, there were fifty people at the sprint in September. We interviewed thirty of them. In Part 1 you can hear from 18 of them: Ken Jin, Alex Waygood, Russell Keith-Magee, Sam Gross, Steve Dower, Dino Viehland, Petr Viktorin, Peter Bierma, Eric V. Smith, Hugo van Kemenade, Savannah Bailey, Eric Snow, Brandt Bucher, Antonio Cuni, L
Episode 25: A Python That Never Was
What if some rejected PEPs were actually accepted? How would Python look today? Let's go through 10 PEPs from the past and imagine an alternative future for the language!## Timestamps(00:00:00) INTRO(00:01:00) PART 1: What if rejected PEPs were accepted?(00:02:15) PEP 638: Syntactic Macros(00:13:53) PEP 505: None-aware operators(00:37:12) PEP 671: Late-bound function argument defaults(00:44:40
The Megahertz
Python 3.14? That's old news. Let's talk about the first big feature of Python 3.15 -- a built-in sampling profiler for Linux, macOS, and Windows. We also cover improvements in perf support, discuss memory.python.org, and as usual, recent changes in the codebase.## Timestamps(00:00:00) INTRO(00:02:43) PART 1: THE SAMPLING PROFILER(00:05:07) Built-in profile is bad, long live cProfile(00:10
PyCon US 2025 Recap
We’ve been gone a while. Here’s our excuse for being silent for a month: PyCon, PyCon, something something security. Come listen to how the conference looked like from our perspective! And whatever you do, DO NOT upgrade to Python 3.13.4.## Timestamps(00:00:00) INTRO(00:01:06) PART 1: LANGUAGE SUMMIT(00:04:47) A bit about the Summit talks(00:06:19) Is free-threading happening?(00:09:20) Łukasz and
Beta Frenzy
Python 3.14 Beta 1 is coming! And that means we reach feature freeze. BUT QUICK, there’s still time to squeeze in one last thing!## Timestamps(00:00:00) INTRO(00:01:58) PART 1: Template strings(00:07:10) PART 2: Asyncio Introspection(00:29:07) PART 3: Syntax highlighting(00:43:00) PART 4: Color themes(00:50:56) PART 5: Debugging a remote process with pdb(01:01:35) PART 6: Python Installation Manag
Episode 21: A Garbage Episode
We talked about this episode for months now, and it's finally here. Garbage collection in its full glory. Classic and free-threaded. Generational and single-pass. With eager and delayed untracking. We cover it all! Explicitly.## Timestamps(00:00:00) THE FUCKING INTRO(00:02:03) PART 0: SPORTS NEWS(00:03:19) PART 1: GARBAGE COLLECTION(00:03:57) The big problem with refcounting(00:08:35) Solving
Episode 20: Remote Code Execution By Design
In this episode, Pablo's avoiding the topic of garbage collection by talking about his latest PEP, which allows unprecedented interaction with a running Python process. We also resolve the bet about reference counting semantics, mention some notable changes in Python since the last episode, and discuss syntax highlighting in PyREPL and why it's bad, actually.## Timestamps(00:00:00) INTRO(0
Episode 19: Async hacks, unicorns and velociraptors
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:
Episode 18: Reference Counting
After we talked about memory allocation in Python back in Episode 16, we're ready to complain, uh, explain reference counting. Or at least throw a bunch of reference counting facts at you. Plus a big assortment of recent Python changes. You ready?
## Timestamps
(00:00:00) INTRO
(00:04:17) PART 0: SPORTS NEWS
(00:06:53) PART 1: REFERENCE COUNTING
(00:08:28) New segment of 2025
(00:13:54) C++
Episode 17: Argparse, JIT, and balloons with Savannah Ostrowski
Meet our newest member of the core developer team, Savannah! Currently at Snowflake, she also worked with development tools at Docker and Microsoft, but also flew drones over forests. In terms of CPython, Savannah works on argparse and the JIT, but that's not her last word.
# Timestamps
(00:00:00) INTRO
(00:01:26) PART 1: INTERVIEW WITH SAVANNAH OSTROWSKI
(00:02:12) Beginnings as a Python user
(
Episode 16: Memory Allocation
How does Python handle memory? Why does it need to perform custom forms of memory allocation? We talk about all that in this episode. We don't talk about Easter eggs, and we never mention Brandt by name, as promised last time!
## Timestamps
(00:00:00) INTRO
(00:00:22) PART 0: SPORTS NEWS
(00:01:57) PART 1: MEMORY ALLOCATION
(00:03:46) If you write C correctly, it manages memory for you
(00:05:38
Episode 15: Core sprint at Meta
Over 40 core developers spent a week in Bellevue WA putting finishing touches on Python 3.13, planning, prototyping, and implementing features for Python 3.14. We talked to half of them. We laughed, we cried. We were happy watching graphs go up, and sad watching them go down. It was intense. There was even cake, no joke!## Timestamps(00:00:00) INTRO(00:02:05) PART 1: THE CAKE IS NOT A LIE(00:04:09
Episode 14: Integration Events
We’ve been gone all Summer, visiting two European conferences in the mean time. In this episode we’re talking about them both, talks we liked, as well as our own talks at those events. In a rare turn of events, this one was recorded in person at Łukasz’s home studio in Poznań!
## Outline
(00:00:00) INTRO
(00:01:30) PART 1: EuroPython highlights
(00:02:03) Maintaining pyrepl forward with pypy
(00
Episode 13: A Legit Episode
In this lucky episode we're interviewing fellow core developer Brandt Bucher to talk about Justin, Swedish warships, and the n-body benchmark. We're also breaking the duration record with this one. We promise we'll get faster in future releases!
## Outline
(00:00:00) INTRO
(00:01:43) PART 1: BRANDT BUCHER INTERVIEW
(00:03:04) Beginnings of contribution
(00:06:29) Sticking around
(00:
Episode 12: WTF Python
You think you know Python? We thought so, too. Join us for an episode of surprises. You might know some of those, but you sure don't know all of them.
## Outline
(00:00:00) INTRO
(00:02:22) Integer interning with a twist
(00:10:58) Return in finally
(00:15:32) all([[]])
(00:20:06) Lists, iterators and hashing shenanigans
(00:27:08) hash(-1)
(00:31:30) String interning
(00:34:23) PR OF THE WEEK
(
Episode 11: Live from PyCon 2024
Who says we can't do short episodes? Well, it was a challenge! But with the help of some gentle conference schedule pressure, here's our first sub-hour episode. We're discussing the language summit, answering audience questions, and behaving like serious professionals, as usual.
## Outline
(00:00:00) INTRO
(00:02:01) PEP 602 tweaks: 2 years of bug fix releases
(00:02:45) CalVer for P
Episode 10: The Interactive REPL
Oof, no episode in April, huh? Yeah, we're getting close to Python 3.13 beta 1. PyCon US is also coming up real soon. Let's use this opportunity then to talk about a feature we're teaming up on: a better interactive interpreter!
## Outline
(00:00:00) INTRO
(00:01:53) PART 1: History of Terminals
(00:03:20) /dev/tty
(00:04:51) The first cool word
(00:05:45) Chrząszcz
(00:06:20)
Episode 9: Py Day with Emily Morehouse-Valcarcel
Let's talk about the Steering Council, running a small consultancy business, the Walrus, and pet peeves with our special guest today!
## Outline
(00:00:00) INTRO
(00:00:56) PART 1: Emily Morehouse
(00:02:15) Running a small consultancy business
(00:04:39) What features of JS do you miss in Python?
(00:05:50) Łukasz outnumbered in a world of Steering Council members
(00:06:12) Upgrading
Episode 8: The New Parser
The suspense was killing us! OK, the old parser was then... but what about NOW? We're finally answering this question... in more detail than you dared to ask for. PEG, memoization, funky secrets, and how a certain auto-formatter self-inflicted an existential crisis on itself. It's all there, told in barely 100 minutes! Can you believe it?
# Timestamps
(00:00:00) INTRO
(00:00:54) PART 1
Episode 7: The Old Parser
Context-free grammars, non-deterministic finite automatons, left-to-right leftmost derivations... what even is all that?! Today we're talking about how Python parses your source code. We start gently with how this worked in the past. Come listen to Łukasz's high-level explanations and Pedantic Pablo's "well actuallys".
# Timestamps
(00:00:00) INTRO
(00:01:35) You can still
Episode 6 - An Exceptional Episode
Happy New Year! In this episode we're talking about exceptions, how they work, and how they evolved. Expect the unexpected.
# Timestamps
(00:00:00) INTRO
(00:01:43) How does a 'try' block work?
(00:04:00) How many 'try' blocks can you fit on a bus?
(00:05:56) How does Python store the current exception?
(00:09:30) Pre-history: exceptions as strings
(00:12:59) Try out st
Episode 5 - Cinder with Carl Meyer
This time we're hosting a special guest: Carl Meyer from Meta. What is Cinder, how does it work, and how does it intersect with the future of Python 3? Find out in today's episode. 100% serious stuff!
# Timestamps
(00:00:00) INTRO
(00:00:53) Carl Meyer's war story
(00:02:27) CINDER
(00:03:22) Static Python makes things significantly faster
(00:08:15) Cinder JIT and how it's
Episode 4 - Frame Evaluation
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
Episode 3 - Imports, frozen modules, Python news
What happens when you type “import abc”? Why does it say the module is frozen? What significant changes landed in Python in the past two weeks? And why does the “PR of the Week” jingle go so hard? Find out in this week’s episode!
# Timestamps
(00:00:00) INTRO
(00:01:12) IMPORTS
(00:02:21) Here be dragons
(00:02:42) High level summary
(00:05:12) Finders and Loaders
(00:06:29) Loading encryp
Episode 2 - PEP 703: Removing the GIL
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)
Episode 1 - Core Sprint in Brno & Python 3.13.0 alpha 1
In this first episode Pablo and Łukasz talk about what happened in at the 2023 Cpython Core Developer sprint. Join us and learn from our ramblings about a possible new CPython new JIT compiler, how we are making the REPL easier, what in the world is a memory hive, and how we are trying to make a new C API without making everyone mad.
Timestamps
(00:00:00) Intro
(00:01:02) Cpython core developer
Recommended

10 to Life

1128 MINISTRY

11 O'Clock Comics Podcast

123 GO! Food

1-2-3 Learn Spanish with Me!

128 Civics Questions for U.S. Citizenship Test

12 Hour Sound Machines for Sleep (no loops or fades)

#12minconvos

12 Minute Meditation

12 Rules for Life: An Antidote to Chaos by Jordan B. Peterson, Book Summary, Podcast, English

1440 Explores

1490 Doom - Lore Series Podcast