core.py

Pablo Galindo and Łukasz Langa
undefined
49 snips
Nov 29, 2023 • 1h 13min

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 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)  lltrace and pystats (00:44:02)  Eval breaker (00:47:54)  Signal handling (00:50:47)  Recursion limits (00:54:27)  String concatenation special case (00:58:24)  WHAT'S GOING ON IN CPYTHON? (00:58:42)  3.12.0a2 (00:59:12)  Critical section API adoption (00:59:34)  PyOnceFlag (01:00:28)  PyDict_GetItemRef() (01:03:36)  PyList_Extend() and PyDict_Pop() (01:04:18)  Parser: better error messages for non-matching elif/else (01:05:39)  glob.translate() (01:07:22)  TLS-PSK in the ssl module (01:08:35)  IDLE debugger improvements (01:10:50)  First micro-op in the Tier 2 interpreter (01:11:18)  OUTRO
undefined
39 snips
Nov 13, 2023 • 1h 12min

Episode 3 - Imports, frozen modules, Python news

This episode of the podcast covers topics like importing modules and how it works in Python, the concept of frozen modules and its impact on startup time, changes to the evaluation loop in Python, exciting changes in Python 3.12, efficient storage of Unicode code point names, and improvements in thread.join function in Python 3.12 along with the PR of the week related to trace back object creation.
undefined
29 snips
Oct 30, 2023 • 1h 15min

Episode 2 - PEP 703: Removing the GIL

The podcast discusses the concept of removing the Global Interpreter Lock (GIL) in Python. It explores the current state of things including reference counting and garbage collection. Various historical attempts to remove the GIL are mentioned. The podcast then dives into the details of PEP 703 for Python 3.13, discussing biased reference counting, speedups, memory management, and the challenges of removing the GIL. It emphasizes the importance of synchronization, avoiding locks, heap segmentation, and memory usage in Python. Lastly, the podcast explores the implementation challenges and considerations of PEP 703, highlighting the need for communication, testing, and coordination.
undefined
48 snips
Oct 30, 2023 • 1h 12min

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 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 CPython's REPL (00:20:38) Copy and patch JIT compiler prototype (00:28:16) Tier1 and Tier2 interpreter (00:41:25) Python 3.13.0 alpha 1 and doing CPython releases (00:52:08) C-API improvements (00:58:28) Sprint experience and tourism (01:01:49) Steering council Q&A (01:08:19) Closing thoughts

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app