~/talk

Typestate via Revocable Capabilities

Talkat PLDI 2026 · 2026-06-15..06-19· [typescript]
links:none on file
name:Craig Liu
links:none on file
name:Siyuan He
links:none on file
links:none on file
slides:none on file

Presents a Scala 3 compiler extension (prototype in Stella) that implements flow-sensitive revocation, ties capabilities to objects via path-dependent capabilities, and returns capabilities implicitly to avoid boilerplate. Implements files, hand‑over‑hand locking, well‑formed DOM trees and binary session types; control‑flow combinators handle branches and loops. Benchmarks show capture‑checking and effect tracking add modest compiler overhead (depths 17–33) comparable to other phases. Artifacts are available and examples compile and statically prevent stale or misrouted capability use.

AI-written summary · about

  1. 0:00Typestate via revocable capabilities
  2. 1:27Motivating typestate tracking
  3. 2:33Existing solutions and limits
  4. 3:35Lightweight Scala approach
  5. 4:39Naive typestate problems
  6. 5:43Three pillars of solution
  7. 6:49Pass-dependent capabilities
  8. 7:51Flow-sensitive implicits
  9. 8:52Complex control flow
  10. 10:36Performance overhead
  11. 11:19Summary and validation
  12. 12:03Q&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.