Capture Tracking in Scala
summary
Claim: compile-time capture tracking makes effect- and resource-typing work without exploding higher‑order APIs by treating effects as capabilities as implicit values that tunnel through closures. Implementation: a capture‑checker phase in the Scala 3 compiler, boxed/unboxed capture types, small stdlib annotations (iterator captures) and a prototype arena allocation; porting of stdlib ongoing. Results: closure-based effect polymorphism composes, boundary/break and suspensions (Scala Native + Loom plan) work, arena tests give only a few percent speedup.
AI-written summary · about
chapters (7)
- 0:00Introduction
- 3:52Scala’s evolution and capture tracking
- 17:30Capabilities for effect tracking
- 28:15Capabilities and effects deep dive
- 43:46Capturing types and compiler
- 1:02:00Direct style and continuations
- 1:21:29Q&A
related talks
38mCapture Checking - A New Approach to Effect Safety in Scala
01h 03mInside the Scala Capture Checker
49mThe first steps towards practical capture checking
41mWhere Are We With Scala's Capabilities?
01h 03mWhere Are We With Scala's Capabilities?
41mOn track with tracked
41mHands On Capture Checking with Martin Odersky
31mReal-Life Scala Capture Checking
