
Hosted by Pablo Galindo and Łukasz Langa · EN

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: Fucking AI Shit(00:17:36) December 2025 crossed the usability threshold(00:18:24) Pablo wants Claude Max(00:19:24) Python on the Mastodon AI hit lists(00:25:46) Pablo needs human connection(00:28:23) GitHub now lets projects disable pull requests(00:30:35)AI disruption of the security vulnerability processes(00:34:00) Python is getting swamped with PRs, GitHub too(00:36:57) Every PR could be adversarial, AI-assisted or not(00:41:45) Pablo's prediction about reputation and time as currency(00:45:34) PART 2: PR OF THE WEEK(00:46:21) Łukasz: a Pure-Python unicodedata module?(00:57:16) Pablo: diff-based terminal rendering in PyREPL(01:12:26) Copilot reviews on GitHub(01:19:11) Debugging with AI(01:26:39) PART 3: WHAT'S GOING ON IN CPYTHON(01:26:57) Subscribe to Savannah's coredispatch.xyz(01:29:22) Python releases since last episode(01:30:45) New team members(01:31:12) PyCon US: come and book the official hotel(01:32:54) blog.python.org now looks like it was made in 2026(01:35:27) Features(01:56:08) Free-threading changes(01:58:48) Curiosities(01:59:49) Bugfixes(02:03:55) OUTRO

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 Installation Manager on Windows(00:19:44) The juicy bits(00:20:12) Uncertain: the JIT(00:21:04) Uncertain: Steering Council elections(00:25:01) Uncertain: another type checker(00:28:57) The TIOBE index(00:34:03) Mojo(00:38:12) Underinvestment(00:44:53) The Future(00:56:41) PART 2: PR OF THE WEEK(01:05:32) PART 3: WHAT'S GOING ON IN CPYTHON(01:08:00) Performance(01:11:47) Free threading(01:14:04) OUTRO

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: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

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:02) Carol Willing(00:43:32) Guido van Rossum(00:55:39) Brett Cannon(01:10:01) Erlend Aasland(01:14:05) Tal Einat(01:22:21) Lysandros Nikolaou(01:30:40) Yury Selivanov(01:45:08) Diego Russo(01:58:27) What did the hosts do?(02:17:18) OUTRO

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, Larry Hastings, Hood Chatham, Victor Stinner, and Mark Shannon.## Timestamps(00:00:00) INTRO(00:02:43) Ken Jin(00:05:28) Alex Waygood(00:08:21) Russell Keith-Magee(00:17:32) Sam Gross(00:23:25) Steve Dower(00:26:17) Dino Viehland(00:36:02) Petr Viktorin(00:40:59) Peter Bierma(00:44:24) Eric V. Smith(00:55:25) Hugo van Kemenade(00:59:39) Savannah Bailey(01:08:53) Eric Snow(01:22:02) Brandt Bucher(01:38:53) Antonio Cuni(01:48:23) Larry Hastings(02:07:54) Hood Chatham(02:12:11) Victor Stinner(02:16:23) Mark Shannon(02:22:44) OUTRO

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) PEP 335: Overloadable Boolean Operators(00:50:53) PEP 3136: Labeled break and continue(00:52:49) PEP 463: Exception-catching expressions(01:00:58) PEP 511: API for code transformers(01:06:30) PEP 340: Anonymous block statements(01:10:30) PEP 276 and PEP 284: Alternative integer iteration(01:17:12) The do: while: loop(01:19:50) The final boss of Python syntax feature requests(01:25:33) PART 2: PR OF THE WEEK(01:36:17) Raw f-string format fixes(01:38:44) PART 3: WHAT'S GOING ON IN CPYTHON(01:40:55) Python 3.14 RC2 and Python 3.13.7(01:43:20) Welcome to the core team, Emma(01:43:50) Welcome to the release team, Savannah(01:45:56) Free threading changes(01:47:49) Perf improvements(01:52:00) New features(01:57:20) Bugfixes(01:59:15) OUTRO

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:54) Out-of-process profiling(00:12:18) Shortcuts Compromise Accuracy, Leading Eventually to Numerous Errors(00:16:07) Selfish Łukasz vs benevolent Pablo(00:23:11) How does a sampling profiler even work?(00:30:42) One meeellion huuurtzzz(00:32:40) Free threading makes it extra spicy(00:41:26) AsyncIO makes it even spicier(00:49:49) You made this? I made this(00:54:06) What if the profiled process changes during sampling?(00:57:33) Coming in October 2026(01:04:30) PART 2: PR OF THE WEEEEEEK(01:14:14) memory.python.org launched(01:23:15) PART 3: WHAT'S GOING ON IN CPYTHON(01:26:45) Performance updates(01:30:24) Features & Curiosities(01:41:45) OUTRO

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 his favorite discussion item at the Summit(00:13:38) Find actual competent coverage of the Summit on the PSF blog(00:14:17) PART 2: PYCON TALK HIGHLIGHTS(00:14:33) Cory Doctorow's opening keynote(00:18:17) Brandt Bucher's talk on JIT challenges(00:28:28) Lysandros and Nathan talk about community adoption of free-threading(00:36:23) Lynn Root's keynote(00:37:46) PyXL: Python-oriented chip(00:39:47) Łukasz and his tutorial on WebGL with PyScript(00:47:58) A new bet appears!(00:48:14) Zoom, Enhance the Banana(00:54:11) Watch out, Łukasz is talking about audio again(01:02:42) Ivona and Pablo talk about remote code execution as a service(01:05:44) Core Python sprints after the conference(01:12:48) PART 3: PR OF THE WEEK(01:13:00) tarfile security fixes(01:19:13) Pablo's PR: strncmp considered harmful(01:25:36) PART 4: WHAT'S GOING ON IN CPYTHON(01:26:06) compression.zstd lands(01:28:01) concurrent.futures → asyncio.Future transfer 4X faster(01:29:14) Bugfix: PyCFuncPtr_call no longer uses locks(01:30:13) Some curiosities(01:34:14) OUTRO

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 Manager for Windows(01:05:29) PART 7: Worship(01:08:53) PART 8: What else is happening?(01:16:03) OUTRO

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 reference cycles through PyGC_Head(00:11:45) 64 bits ought to be enough for anybody(00:17:30) Why a doubly-linked list?(00:21:15) How reference counting makes finding cycles easier(00:26:25) Roots bloody roots(00:30:17) How are objects in the cycle destroyed?(00:31:58) Object resurrection(00:43:21) Why do you need "generations"?(00:52:26) Delayed untracking(00:54:46) Weak references, strong problems(00:59:19) GC in free threading(01:03:27) Reference counting in free-threading builds(01:10:08) Incremental GC talk is DEFERRED(01:11:00) PART 2: PR OF THE WEEK(01:17:15) Type checking the standard library itself?(01:29:51) PART 3: WHAT'S GOING ON IN CPYTHON?(01:30:15) Free-threading changes(01:32:54) Performance updates(01:36:11) http.server supports HTTPS!(01:37:01) PEP 768 and 758 landed(01:37:34) HACL*(01:38:24) fnmatch.filterfalse()(01:38:54) Bugfixes(01:42:46) Curiosities(01:54:49) OUTRO