The First Six Years in the Development of Polonius, an Improved Borrow Checker
summary
Polonius is an overhaul of Rust’s borrow checker that replaces lifetime points-in-CFG with lifetimes as sets of loans, adds per-program-point dynamic outlives graphs for flow sensitivity, and aims to accept patterns NL lifetimes rejects (notably lending iterators). Early prototypes are written in Datalog (then a homegrown, Datalog-like engine) and run on nightly but are slow and incomplete—authors report up to a 5,000% regression in some cases—so the roadmap is incremental integration, equivalence tests against current NLL, and staged, on-demand analysis.
AI-written summary · about
chapters (11)
- 0:00Polonius and Rust borrow checker
- 2:09Borrow checker reference validity
- 5:20Borrow checker precision evolution
- 8:13Polonius improves reference mechanics
- 12:29Six years of Polonius history
- 15:42Polonius in Datalog and Rust
- 18:08Integrating Polonius progress
- 22:30Gradual adoption strategy
- 24:15Future of reference tracking
- 27:04Lifetime semantics compatibility
- 30:58Q&A
related talks
26mThe first six years in the development of Polonius
35mPolonius: Either Borrower or Lender Be, but Responsibly
53mThe Rust Borrow Checker - A Deep Dive
50mRust's Borrow Checker Proven Correct!
36mThe Rust Borrow Checker: A Deep Dive
38mThe Rust Borrow Checker: a Deep Dive
22mThe Rust Borrow Checker - A Deep Dive
19mPure Borrow: Linear Haskell Meets Rust-Style Borrowing
