Confinement in the JVM
summary
Defines confinement as a runtime-enforced boundary that blocks unexpected causes, and proposes concrete changes: frozen arrays that throw on writes, an assert confined runtime check and race‑resistant field primitives, thread‑confined objects that error when touched off‑thread, and lambda cracking so libraries can reject non‑stateless lambdas. Links these to Valhalla, Panama, Amber and Metropolis, argues for cheap online race checks (because any read in a race can observe almost any write), and shows experiments and API sketches rather than only theory.
AI-written summary · about
chapters (24)
- 0:00Intro
- 0:44Observation: Java abstractions are so worth it
- 2:40Thesis: confinement enables abstraction
- 5:21On abstraction and logic
- 7:30digression on Raymond Smullyan
- 8:19Abstraction in computing - An abstraction is a part of a program which is worth looking at by itselt
- 9:21Causes vs. confinement
- 27:18A moral of this story: Uncertainty is expensive
- 29:11What about benign races?
- 31:31Sequential Consistency isn't even the main issue
- 35:43Inscrutability vs. Lines of Code
- 37:32Java safety checking is never finished
- 40:05Reasons to watch for racers
- 40:57Design pattern: Immutable objects
- 42:27JVM support: Frozen arrays
- 42:56Design pattern: Stable variables
- 43:33Design pattern sketch: Monotonic variables
- 44:32Design pattern sketch: Race-resistant class
- 44:49Design pattern sketch: Thread-confined class
- 45:42Making the best of the Object header
- 46:57Project Valhalla interactions with confinement
- 48:13Project Panama uses of confinement
- 48:54Project Metropolis uses of confinement
- 49:53Confinement! Confinement!
related talks
27mThe Mutability Matrix of Pain
46mLoom - Where Are We?
57mJava Next - From Amber to Valhalla, from Loom to Leyden, from Babylon to Panama
01h 13mBack from the 70s — the Concurnas concurrency model!
42mBuilding Bulletproof Concurrent Applications on the JVM
51mYour next JVM: Panama, Valhalla, Metropolis
43mDon't hack the JVM? ☠️💣💥
20mIsolation without Containers
