~/talk

The first steps towards practical capture checking

Talkat Scala Days 2025 Lausanne · 2025-08-19..08-21· [scala]
slides:none on file

Nightly Scala 3 builds already implement capture checking and a full capture-checked Scala API and a Gears capture-checked port exist as proofs of concept; separate compilation mostly works but uncaptured Java boundaries and lazy views reveal real leaks. The collection port touches ~700 functions out of ~6,200 (~10%) and about 1,500 of 32,000 lines, and compile overhead is ~15% of the typer. Boundary labels and futures are tracked and cause compile errors when they would otherwise leak at runtime.

AI-written summary · about

  1. 0:00Introduction
  2. 1:48Capture checking in Scala
  3. 4:15Scala collections challenges
  4. 9:21Quiz: Capture sets
  5. 12:43Strict vs lazy collections
  6. 14:48Capture-checked zip/unzip
  7. 17:18Java interoperability
  8. 19:10Backwards compatibility
  9. 23:51Practical exercise
  10. 27:35Summary of changes
  11. 29:49Boundary break in Scala 3
  12. 33:27Label capture safety
  13. 36:43Results library errors
  14. 39:12Gears concurrency
  15. 41:42Key takeaways
  16. 42:47Q&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.