Soundly Handling Linearity
summary
This work introduces control-flow linearity, formalizes it in a System F-style core calculus Feff∘ with linear types and effect handlers, and gives a linearity-aware semantics proving no linear value is discarded or duplicated. The Links implementation is patched (issue open since 2019) and the fix is merged, preventing a concrete session-channel bug triggered by multi-shot handlers. An ML-style Qeff∘ with qualified-type inference removes programmer annotations; artifacts and proofs are available.
AI-written summary · about
chapters (8)
- 0:00Handling linearity in Links
- 1:29Linearity and effect handlers
- 3:36Multi-shot handlers break linearity
- 7:36Control-flow linearity
- 10:24Control-flow vs value linearity
- 11:11Bug in Links
- 12:16QF pop calculus and qualified types
- 13:19Q&A
related talks
15mHandling Bidirectional Control Flow
19mMechanizing Session-Types using a Structural View: Enforcing Linearity without ...
31mIs there a use for linear types?
16mTowards formally secure compilation of verified F* programs against unverified ML(…)
01h 05mControl Flow Obfuscation for Featherweight Java + Efficient Fair Conjunction
01h 04mLinear Haskell, Today and Tomorrow
01h 05mAll the Languages Together
29mLogical Relations for Effect Capabilities
