Look for any podcast host, guest or anyone
Showing episodes and shows of

Pablo Galindo And Łukasz Langa

Shows

core.pycore.pyPyCon US 2025 RecapWe’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...2025-06-141h 36core.pycore.pyBeta FrenzyPython 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) OUTRO2025-05-061h 19core.pycore.pyEpisode 21: A Garbage EpisodeWe 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...2025-04-171h 57core.pycore.pyEpisode 20: Remote Code Execution By DesignIn 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(00:02:16) PART 1: PABLO'S LATEST PEP(00:04:34) gdb is IMPOSSIBLE(00:12:49) Make the process run code for you(00:14:14) This already works on PyPy(00:15:13) How does it...2025-03-241h 44core.pycore.pyEpisode 19: Async hacks, unicorns and velociraptorsIn 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:28) Things from Rust that Python could use(00:14:50) Nothing is sacred when you depend on glibc(00:18:47) TypeScript typing is god-tier(00:22:04) Adding async and...2025-03-082h 07core.pycore.pyEpisode 18: Reference CountingAfter 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++ is asymptotic Python (00:15:37) Is Rust game yet? (00:18:01) Names (00:20:25) Breaking the law (00:23:08) sys.getrefcount() (00:25:21) Pedantic Pablo (00:26:06) sys...2025-01-241h 39core.pycore.pyEpisode 17: Argparse, JIT, and balloons with Savannah OstrowskiMeet 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 (00:04:14) Carol Willing's nudge (00:06:55) First PR (00:08:56) Psychological damage from asyncio (00:11:51) Savannah at ***** Maps (00:14:04) Chipotle Claim to Fame 2024-11-191h 45core.pycore.pyEpisode 16: Memory AllocationHow 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) malloc and the heap (00:09:31) High-level allocators (00:10:48) pymalloc (00:11:15) 512 is a good number (00:12:43) Memory domains in...2024-10-301h 45core.pycore.pyEpisode 15: Core sprint at MetaOver 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) Interview with sprint organizer Itamar Oren(00:07:48) Surprise waffle machine(00:08:36) PART 2: DEVELOPERS IN THEIR OWN WORDS(00:08:47) Brandt Bucher2024-10-031h 56Changelog Master FeedChangelog Master FeedFree-threaded Python (Changelog Interviews #611)Jerod is joined by the co-hosts of core.py , Pablo Galindo & Łukasz Langa, a podcast about Python internals by people who work on Python internals. Python 3.13 is right around the corner, which means the Global Interpeter Lock (GIL) is now experimentally optional! This is a huge deal as Python is finally free-threaded. There’s more to discuss, of course, so we get into all the gory details. Leave us a commentChangelog++ members save 12 minutes on this episode because they made the ads disappear. Join today!Sponsors:Sentry – Code breaks, fix it fa...2024-10-021h 26The Changelog: Software Development, Open SourceThe Changelog: Software Development, Open SourceFree-threaded Python (Interview)Jerod is joined by the co-hosts of core.py , Pablo Galindo & Łukasz Langa, a podcast about Python internals by people who work on Python internals. Python 3.13 is right around the corner, which means the Global Interpeter Lock (GIL) is now experimentally optional! This is a huge deal as Python is finally free-threaded. There’s more to discuss, of course, so we get into all the gory details. Join the discussionChangelog++ members save 12 minutes on this episode because they made the ads disappear. Join today!Sponsors:Sentry – Code breaks, fix it faste...2024-10-021h 26Changelog InterviewsChangelog InterviewsFree-threaded PythonJerod is joined by the co-hosts of core.py , Pablo Galindo & Łukasz Langa, a podcast about Python internals by people who work on Python internals. Python 3.13 is right around the corner, which means the Global Interpeter Lock (GIL) is now experimentally optional! This is a huge deal as Python is finally free-threaded. There’s more to discuss, of course, so we get into all the gory details. Join the discussionChangelog++ members save 12 minutes on this episode because they made the ads disappear. Join today!Sponsors:Sentry – Code breaks, fix it faste...2024-10-021h 26core.pycore.pyEpisode 14: Integration EventsWe’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:05:51) Mai Giménez and her keynote (00:09:30) Yuliia Barabash and Laysa Uchoa talk memory management (00:11:03) Core developer...2024-09-031h 30core.pycore.pyEpisode 13: A Legit EpisodeIn 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:09:38) PEP work: pattern matching, dict unions, weird decorators (00:13:07) Implementing pattern matching, we like parsers (00:19:41) First tasks with the Faster Python team (00:20:59) It's always pytest with these...2024-06-291h 51core.pycore.pyEpisode 12: WTF PythonYou 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 (00:34:56) asyncio REPL now uses pyrepl, too (00:44:06) PyOS_InputHook (00:51:56) WHAT'S GOING ON IN CPYTHON (00:52:05) New core developers! (00:55:10) 3.13 beta 2 & 3.12.4 released (00:56:04) Pablo's top 3 favorite pyrepl improvements in Beta 2 (00:59:50) PEP 667 implemented! (01:02:42) Tian Gao's improvements to pdb (01:06:31) Uncle Tim's crusade to make int(some_string) asymptotically faster (01:08:50) datetime now uses interpreter-local...2024-06-101h 24core.pycore.pyEpisode 11: Live from PyCon 2024Who 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 Python versions? (00:04:51) In Python there's this thing called the C API (00:08:51) More about PyREPL (00:12:17) Evolving pdb (00:14:49) Memhive (00:16:18) The boring 3.13 (00:18:16) Q...2024-05-2830 mincore.pycore.pyEpisode 10: The Interactive REPLOof, 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)  Control code characters in ASCII (00:11:54)  PART 2: Python REPL Today (00:12:34)  There is no REPL (00:15:28)  So what is there instead? (00:19:13)  readline (00:2...2024-05-031h 22core.pycore.pyEpisode 9: Py Day with Emily Morehouse-ValcarcelLet'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 to new Python versions (00:07:00)  It depends on who deployed the project (00:09:44)  Second term as a Steering Council member (00:11:33)  Barry, play some bass for us (00:13:04...2024-03-141h 09core.pycore.pyEpisode 8: The New ParserThe 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: What even is PEG? (00:04:02)  You can't prove anything! (00:05:03)  What's a "parsing expression"? (00:08:23)  Our old LL1 parser wasn't doing its job (00:09:37)  "Soft keywords" in...2024-03-011h 42core.pycore.pyEpisode 7: The Old ParserContext-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 download Python 1.0! (00:02:19) The original tokenizer (00:03:10) What even is a tokenizer? (00:04:08) FUN FACTS ABOUT THE TOKENIZER (00:04:34) Circumflex (00:05:16) Python's invisible braces (00:08:29) Backticks in the syntax (00:11:00) Where are the comments st...2024-01-311h 23core.pycore.pyEpisode 6 - An Exceptional EpisodeHappy 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 string exceptions with CentOS 5 (00:14:28)  PEP 341: Combining 'finally' and 'except' in one 'try' block (00:16:15)  Core Hacker in Residence (00:16:51)  PEP 3109: Raising exceptions in Python 3K (00:19:17...2024-01-081h 31Pybites PodcastPybites Podcast#143 - Mastering Python with Łukasz Langa: The Story Behind Core Development and BlackJoin us in this intriguing podcast episode where we delve into the world of Python with Łukasz Langa, a key figure in the Python community. This episode, packed with technical insights and personal anecdotes, covers a range of topics from Łukasz's groundbreaking work with Python to his musical journey. Enjoy!Chapters:00:00 Intro00:53 Guest intro + win of the week05:27 Łukasz' new podcast core.py06:22 Black - what inspired you + how does it work12:30 Is its success thanks to a lack of config?17:00 About code line length18:07 Challenge of getting def...2023-12-1155 mincore.pycore.pyEpisode 5 - Cinder with Carl MeyerThis 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 tuned for Instagram (00:11:57)  Strict Python and the joy of import side effects (00:16:35)  The static typing controversy (00:18:52)  Upstreaming changes from Cinder? (00:22:53)  PEP 709: Comprehen...2023-12-111h 21core.pycore.pyEpisode 4 - Frame EvaluationWhat 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...2023-11-291h 13core.pycore.pyEpisode 3 - Imports, frozen modules, Python newsWhat 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 encrypted modules (00:08:13)  Debugging by altering someone else's code (00:10:08)  Support for site-packages (00:14:22)  Nefarious uses of imports (00:17:28)  Tagged str...2023-11-131h 11core.pycore.pyEpisode 2 - PEP 703: Removing the GILWe'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) 1999: Greg Stein's attempt at Python 1.6 (00:10:46) Jython doesn't have the GIL (00:11:19) 2015: Larry Hastings' Gilectomy at Python 3.5 (00:12:34) Pablo says removing the GIL is actually very easy2023-10-301h 14core.pycore.pyEpisode 1 - Core Sprint in Brno & Python 3.13.0 alpha 1In 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 sprint (00:04:54) Pablo's highlights (00:06:09) Łukasz's highlights (00:08:08) Coverage in the standard library (00:12:20) Improving CP...2023-10-301h 11The Real Python PodcastThe Real Python PodcastGuiding Scientific Python Library DevelopmentHow do you prepare a scientific Python project for sharing with others? Could you use some best practices and guidance for packaging, documentation, and testing? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects. We talk about the creation of the Scientific Python Library Development Guide. The guide was finalized during the 2023 Scientific Python Developer Summit and is a resource for modern packaging. It includes sections of tutorials, principles, templates, and common patterns. Christopher shares a recent Real Python tutorial about sorting Unicode strings in Py...2023-10-2757 min