RT: Regular Types for the Streaming Shell
Talkat 20th USENIX Symposium on Operating Systems Design and Implementation (OSDI '26) · 2026-07-13..07-15·
summary
RT is an overlay type system that statically checks shell pipelines by modeling command input/output as regular types and reducing composition to regular-language inclusion. The prototype type checker analyzes 954 real programs from StackOverflow, GitHub, and benchmarks, runs in 0.02s average, finds composition bugs like numeric-sort and xargs word-splitting, achieves 91% accuracy for serious bugs (72% auto, 94% with a few annotations) and 98% precision on correct scripts.
AI-written summary · about
chapters (12)
- 0:00Introduction to RT
- 1:23Unix shell pipeline bugs
- 3:29ShellCheck limitations
- 4:10RT's type system
- 5:16Types as regular languages
- 6:19Command compatibility limits
- 8:27RT built-in types
- 11:21Polymorphic types for commands
- 12:44Catching word-splitting bugs
- 13:47Non-regular data handling
- 15:12RT evaluation
- 16:56RT vs ShellCheck summary
related talks
55mREPLs All The Way Up: A Rubric For Virtuous Feedback Loops
35mGoals of the Luau Type System, Two Years On
50mREPLs All The Way Up: A Rubric For Better Feedback Loops
36mTypeCheck Effortless Runtime Type Checking
26mJavaScript Tools at Scale Using Type Information
11mTyping with pixie dust
30mThe Fun of Runtime Type Systems (or "Funtime Type Systems")
14mUnix shell - We can do better now
