~/talk

Dynamically Checked Deep Immutability in Python

Talkat PLDI 2026 · 2026-06-15..06-19· [python]
links:none on file
links:none on file
links:none on file
links:none on file
links:none on file
slides:none on file

Adds deep immutability to CPython 3.15 via 7,000 lines of runtime code, an atomic refcount for immutable objects, and write barriers inserted at 148 hot sites; passes the full CPython test suite (~600,000 lines) plus 3.6k new tests and measures a 3.6% geomean single-thread slowdown. Implements freezability (per-object opt‑out) and five forms of detachment to avoid global propagation, enables zero-copy sharing across sub-interpreters, and shows freezing is faster than copying for benchmarked workloads.

AI-written summary · about

  1. 0:00Deep immutability in Python
  2. 1:45Motivation for deep immutability
  3. 3:08Sub-interpreters and immutability
  4. 4:52Design goals and restrictions
  5. 6:17Freeze propagation in Python
  6. 7:43Challenges with Python objects
  7. 8:48Freezability and detachment
  8. 10:12Implementation details in CPython
  9. 11:59Backwards compatibility evaluation
  10. 12:42Performance impact results
  11. 13:45Sub-interpreter sharing performance
  12. 14:48Next steps and engagement
  13. 15:11Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.