Player FM - Internet Radio Done Right
19 subscribers
Checked 3d ago
Vor zwei Jahren hinzugefügt
Inhalt bereitgestellt von Pablo Galindo and Łukasz Langa, Pablo Galindo, and Łukasz Langa. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Pablo Galindo and Łukasz Langa, Pablo Galindo, and Łukasz Langa oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.
Player FM - Podcast-App
Gehen Sie mit der App Player FM offline!
Gehen Sie mit der App Player FM offline!
core.py
Alle als (un)gespielt markieren ...
Manage series 3522009
Inhalt bereitgestellt von Pablo Galindo and Łukasz Langa, Pablo Galindo, and Łukasz Langa. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Pablo Galindo and Łukasz Langa, Pablo Galindo, and Łukasz Langa oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.
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! Hi Loren!
…
continue reading
22 Episoden
Alle als (un)gespielt markieren ...
Manage series 3522009
Inhalt bereitgestellt von Pablo Galindo and Łukasz Langa, Pablo Galindo, and Łukasz Langa. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Pablo Galindo and Łukasz Langa, Pablo Galindo, and Łukasz Langa oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.
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! Hi Loren!
…
continue reading
22 Episoden
Alle Folgen
×c
core.py

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…
c
core.py

1 Episode 21: A Garbage Episode 1:57:34
1:57:34
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:57:34
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…
c
core.py

1 Episode 20: Remote Code Execution By Design 1:44:20
1:44:20
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:44:20
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 (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 work? (00:25:38) Why a file? (00:31:15) What if you don't trust Pablo? (00:32:57) sys.remote_exec() (00:36:09) Less obvious use cases (00:46:56) PART 2: BETS (00:55:44) PART 3: PR OF THE WEEK (00:55:50) Łukasz: syntax highlighting in PyREPL (01:10:14) Pablo's PR: allow the parser to activate future imports on the fly (01:20:11) PART 4: WHAT'S GOING ON IN CPYTHON (01:20:22) Free threading (01:23:30) Performance (01:34:41) PEP 765 implemented (01:36:08) concurrent.futures.Executor.map(buffersize=) (01:36:57) io.Reader and io.Writer (01:38:40) Pabluco's linecache fetching interactive source code (01:41:25) ast.unparse() roundtrip with semicolons (01:41:59) OUTRO…
c
core.py

1 Episode 19: Async hacks, unicorns and velociraptors 2:07:21
2:07:21
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked2:07:21
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: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 await to Python (00:34:11) Adding new keywords to the language (00:41:17) Jumping into a new codebase (00:49:22) Any design regrets? (00:58:46) Contextvars (01:10:40) Is the frozenmap PEP happening? (01:19:21) uvloop (01:23:25) What makes Gel lovable? (01:39:57) PART 2: PR OF THE WEEK (01:47:08) Saturday talks at PyCon should be fun (01:50:35) PART 3: WHAT'S GOING ON IN CPYTHON (01:50:47) Ken Jin's tail-call interpreter (01:55:05) Barney Gale's glob.glob() optimization (01:55:43) Brandt's boolean guards to narrow types to values in the JIT (01:56:33) Mark Shannon's stack limits implemented with addresses, not counters (01:58:34) Brandt's removal of _DYNAMIC_EXIT (01:58:53) Mark Shannon's async for branches instrumented (01:59:36) Free-threading changes (01:59:58) Sam Gross' regression tests can now run in --parallel-threads (02:00:34) Tomasz Pytel's thread safety crusade (02:01:01) Xuanteng Huang's __annotations__ race fix (02:01:11) Kumar's per-thread linked lists for tasks (02:02:54) Serhiy's crashes related to PySys_GetObject() fixed (02:03:22) Sam's usage of stack pointers in thread stack traversal (02:03:38) Dino Viehland's lock avoidance during object cleanup (02:04:23) OUTRO…
c
core.py

1 Episode 18: Reference Counting 1:39:07
1:39:07
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:39:07
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++ 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.gettotalrefcount() (00:31:24) TraceRefs (00:33:28) Advantages of refcounting (00:36:16) Disadvantages of refcounting (00:38:40) Reference cycles (00:40:39) Multithreading (00:41:25) When refcounting goes wrong (00:44:05) Freeing memory in Python doesn't return it to the OS (00:45:42) Leaks and cycles redux (00:50:29) Double free (00:53:05) Avoiding reference counting (00:54:59) Immortal objects (01:00:40) PART 2: WHAT'S GOING ON IN CPYTHON (01:02:43) New features (01:04:11) Assorted interesting changes (01:15:23) Performance (01:18:09) Free-threading changes galore (01:27:02) AsyncIO (01:34:25) Windows changes (01:36:45) Security (01:37:20) OUTRO…
c
core.py

1 Episode 17: Argparse, JIT, and balloons with Savannah Ostrowski 1:45:06
1:45:06
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:45:06
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 (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 (00:16:14) The most funky CPython discoveries (00:19:06) What if you could break backwards compatibility in argparse? (00:23:51) How do the JIT internals look to new eyes? (00:27:33) Is Savannah team typing? (00:33:55) Somebody's jealous (00:37:29) Favorite PEP and least favorite PEP (00:42:10) Big Fish (00:52:58) Hard conversations (01:02:31) Polska (01:06:37) Do it scared (01:08:14) PART 2: PR OF THE WEEK (01:08:22) Łukasz (01:12:01) Pabluco (01:14:46) Savannah (01:18:27) PART 3: WHAT'S GOING ON IN CPYTHON (01:21:21) Features (01:29:59) Bug fixes (01:33:42) Performance (01:40:12) Security (01:43:23) OUTRO…
c
core.py

1 Episode 16: Memory Allocation 1:45:52
1:45:52
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:45:52
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) 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 pymalloc (00:15:09) Why is pymalloc faster than just using malloc? (00:20:16) To free or not to free (00:26:35) User-facing features of pymalloc (00:30:40) Łukasz replaced by an LLM Sim... almost (00:32:58) Debugging help with marked memory (00:39:24) 8-byte alignment (00:42:27) cymem (00:45:08) tracemalloc (00:49:12) memray (00:50:47) Coding like an ultravillain (00:55:22) Complaining about Apple (01:01:45) PART 2: PR OF THE WEEK (01:13:46) Pablo's buildbot release status page (01:18:26) PART 3: WHAT'S GOING ON IN CPYTHON (01:18:52) PEP 762 (01:22:30) PEP 758 (01:26:10) Performance updates (01:29:14) Argparse suggests correct spelling (01:30:13) Fraction.from_number() and Decimal.from_number() (01:30:39) switched in contextvars (01:31:42) Better type annotations in pydoc signatures (01:33:33) Fixes in TaskGroup and _PyFuture ref cycles (01:34:03) Data race in ZoneInfo (01:35:53) Testing certificates set to expire far in the future (01:36:32) InternalDocs (01:40:22) There are no Easter eggs (01:40:42) OUTRO…
c
core.py

1 Episode 15: Core sprint at Meta 1:56:03
1:56:03
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:56:03
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) 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 Bucher (00:10:49) Tian Gao (00:12:31) Hugo van Kemenade (00:16:35) Thomas Wow-ters (00:24:08) Yury Selivanov (00:29:33) Mark Shannon (00:30:56) Raymond Hettinger (00:32:06) Russell Keith-Magee (00:33:18) Mariatta (00:41:41) Larry Hastings (00:46:07) Barry Warsaw (00:53:10) Jelle Zijlstra (00:56:20) Alex Waygood (00:57:39) Gregory P. Smith (01:04:08) Petr Viktorin (01:04:49) Emily Morehouse-Valcarcel (01:08:27) Interlude: Łukasz was right for once (01:09:28) Lysandros Nikolaou (01:17:38) Dino Viehland (01:23:22) Carl Meyer (01:24:29) Eric Smith (01:32:00) Eric Snow (01:41:46) Janitor 1 (01:50:01) Janitor 2 (01:53:03) OUTRO…
c
core.py

1 Episode 14: Integration Events 1:30:50
1:30:50
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:30:50
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:05:51) Mai Giménez and her keynote (00:09:30) Yuliia Barabash and Laysa Uchoa talk memory management (00:11:03) Core developer panel and sprints (00:11:56) The abyss stares back at Pablo (00:18:21) Disappointing (00:25:50) Łukasz and the all-singing all-dancing pyrepl (00:33:52) Hackable REPL = new contributors (00:40:24) PART 2: PyCon PL (00:42:24) An integration event (00:44:45) Say No To Notebooks (00:48:32) Pablo's grandfather's axe (00:56:00) LL1 made Python easy to read for humans, too (00:59:29) Python and triangles in the browser (01:06:16) PART 3: PR OF THE WEEK (01:13:08) PART 4: WHAT'S GOING ON IN CPYTHON (01:13:32) HACL* blake2 (01:15:29) New methods on pathlib.Path objects (01:16:28) PyIter_GetNext (01:17:20) PyLong_FromInt64 (01:18:07) CALL_ALLOC_AND_ENTER_INIT suitable for Tier 2 (01:19:09) Tier 2 support for BINARY_SUBSCR_GETITEM (01:19:26) Removal of the CHECK_EVAL_BREAKER macro (01:20:11) Don't be a jerk on GitHub (01:21:30) Per-thread heap type refcounts (01:22:29) Pickling by name for object without __module__ is now faster (01:23:12) CVE-2024-7592 fixed (01:24:11) Free threading memory leaks at interpreter shutdown (01:25:34) The "What's New in 3.13" document getting some love (01:26:32) Recursion-guarding code improved in the compiler (01:27:13) A new Android test script for running with emulators (01:27:28) Core sprint week at Meta coming up! (01:29:53) OUTRO…
c
core.py

1 Episode 13: A Legit Episode 1:51:55
1:51:55
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:51:55
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: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 things (00:28:55) Pepe Silvia and generators (00:30:12) The paper that inspired the JIT (00:32:01) The n-body benchmark is a joke (00:35:33) What even is a JIT? (00:38:11) Advantages of copy & patch (00:40:27) The Vasa Question (00:45:30) When are we getting faster? (00:49:09) Using pure Python versions of libraries... for speed? (00:52:18) The weirdest bug so far (00:55:12) How did removal of the GIL complicate your life? (00:57:53) Naming things is hard (00:59:55) Collaborating and mentoring others (01:06:19) The Linker Connoisseur Question (01:08:53) PART 2: PR OF THE WEEK (01:14:04) PART 3: WHAT'S GOING ON IN CPYTHON (01:14:40) Jelle is implementing PEP 649 and PEP 749 (01:15:08) Petr's battle with string interning (01:16:24) Ruben Vorderman makes str.count 2X faster (01:16:54) Ken Jin folds constants in entire attribute loads (01:18:07) neonene and Eric Snow make datetime work better with subinterpreters (01:20:18) pickle protocol 5 will be the default in 3.14 (01:21:58) Tian Gao improves pdb (01:23:42) Free-threading changes galore (01:27:34) Victor exposes PyUnicodeWriter in the C API (01:28:18) PyREPL changes & going off the rails…
c
core.py

1 Episode 12: WTF Python 1:24:55
1:24:55
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:24:55
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 (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 static types (01:09:55) PEP 749 enters the chat, paving the way to a PEP 649 future (01:11:35) os.fwalk, os.walk, shutil.rmtree now support arbitrary depth directory trees (01:14:13) Free-threading changes (01:22:15) OUTRO…
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 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&A (00:18:43) Fashion + favorite bug (00:22:12) What happens in 2100 with CalVer? (00:23:02) Subinterpreters or free-threading? (00:23:41) Where else to find information on current development? (00:25:40) Will distros provide free-threading builds? (00:26:23) Will the podcast run out of content? (00:28:37) OUTRO…
c
core.py

1 Episode 10: The Interactive REPL 1:22:51
1:22:51
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:22:51
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) 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:25:38) Source in the REPL (00:31:13) Implementing a REPL from scratch? Prepare to support arg: 5 (00:36:09) PART 3: PR OF THE WEEK (00:37:09) Introducing: Complaining Pablo (00:38:23) Tests are always green if you skip them (00:39:57) Getting dirty with escape sequences (00:41:28) Typing finds bugs (00:42:29) Shiny new features of the new REPL (00:45:55) Contributing back to PyPy (00:48:10) We still have two weeks, right? (00:49:59) Is Python synthwave enough? (00:51:57) Do we have a bug? (00:55:31) What's lurking in pydoc? (00:59:38) PART 4: WHAT'S HAPPENING IN CPYTHON? (01:02:39) PEP 744: The JIT (01:06:05) Incremental GC is now actually in (01:08:21) Tier 2 interpreter updates (01:10:29) Python supported on iOS with PEP 730 (01:13:11) Better error messages for name shadowing (01:15:17) Queue.shutdown() (01:17:14) ctypes adopts heap types (01:18:26) Free-threading updates (01:20:14) Dataclass creation is faster (01:20:44) OUTRO…
c
core.py

1 Episode 9: Py Day with Emily Morehouse-Valcarcel 1:09:44
1:09:44
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:09:44
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 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) Let's hear a recent war story (00:15:17) Is this progress bar even working? (00:17:40) The Villain Origin Story (00:21:37) Emily, The Bringer of Doom (00:22:37) Consensus within the Steering Council (00:25:52) Syntax changes in Python are rare, right? Right? (00:28:22) On implementing PEP 572 (00:32:52) How would PyCon 2020 in Pittsburgh feel? (00:34:18) How can you be mad about the Walrus? (00:36:10) Favorite parts of the standard library (00:38:10) Is hacking on Python a good experience to newcomers? (00:40:26) Emily's pet peeve about Python, take 1 (00:42:17) Emily's favorite change in Python in recent years (00:44:34) Emily's pet peeve about Python, take 2 (00:46:34) Łukasz's pet peeve (00:48:25) Surprise extra question (00:49:42) At core.py we are professionals (00:51:00) PART 2: PR of the Week (00:54:00) CALL TO ACTION: Upgrade Python.org to Django 4! (00:56:22) PART 3: What's Going On in CPython? (00:56:38) Faster Python updates (01:00:10) Free threading: GIL can be disabled but we're not done yet! (01:04:17) New defaults for SSL context flags (01:05:39) python -m asyncio and sys.__interactivehook__ (01:06:24) Surprise question: what is sys.__interactivehook__ even doing? (01:08:11) OUTRO…
c
core.py

1 Episode 8: The New Parser 1:42:36
1:42:36
Später Spielen
Später Spielen
Listen
Gefällt mir
Geliked1:42:36
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: 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 LL1: A Horror Story (00:13:16) PART 2: How PEG was adopted by Python (00:17:10) Why not LALR? (00:22:11) The PEG paper wasn't enough either, if we're honest (00:26:26) Less obvious advantages of the new parser (00:31:28) Black is stuck with LL1, can it cope? (00:36:24) Hedging against Łukasz, the bringer of doom (00:41:14) PART 3: How does the PEG parser of CPython work? (00:44:30) Pedantic Pablo on "exponential" (00:45:14) Fresh news from literally yesterday last week (00:46:39) Pedantic Pablo on "infinite" (00:47:32) Memoization in the PEG parser (00:50:41) Parse once, and if it fails, try again! (00:52:14) How to model a grammar of programming mistakes? (00:56:36) Why is there C code in my grammar file? (00:59:57) Bro, do you even lift? (01:01:45) How soft keywords work today: it's not free lunch (01:04:29) Funky grammar secrets (01:09:07) PART 4: PR OF THE WEEK (01:09:15) audioop.c license shenanigans (01:14:56) The secret profiler inside CPython (tests) (01:22:45) PART 5: WHAT'S GOING ON IN CPYTHON? (01:23:30) Free-threading changes (01:28:15) Faster Python changes (01:35:39) End of an era: docs get rid of Python 2 migration info (01:36:45) Python --help output is now nicer (01:38:43) SQLite as a dbm backend (01:41:08) OUTRO…
Willkommen auf Player FM!
Player FM scannt gerade das Web nach Podcasts mit hoher Qualität, die du genießen kannst. Es ist die beste Podcast-App und funktioniert auf Android, iPhone und im Web. Melde dich an, um Abos geräteübergreifend zu synchronisieren.