Abstract
We present a new pure functional language and type system with borrows with lifetimes, and a corresponding fully-automatic type inference procedure. Inference provides users the performance benefits of borrows with lifetimes without requiring user annotation. If the user's program cannot be typed, inference inserts a handful of reference count operations so that it can be typed. We provide a heap semantics for our borrowing language and prove a soundness theorem, guaranteeing that well-typed programs do not violate memory safety. We implement our memory management strategy as part of the Morphic language stack and compare it to Perceus, a state-of-the-art reference-counting technique based on linear type inference. We find that our system is able to eliminate almost all reference count operations across a range of programs, reducing reference count increments by 75-100% on all benchmarks with reference count increments under the baseline. As a result, we achieve a 1.48x geomean speedup overall on all benchmarks.
| Original language | English (US) |
|---|---|
| Pages (from-to) | 597-623 |
| Number of pages | 27 |
| Journal | Proceedings of the ACM on Programming Languages |
| Volume | 10 |
| Issue number | OOPSLA1 |
| DOIs | |
| State | Published - Apr 10 2026 |
All Science Journal Classification (ASJC) codes
- Software
- Safety, Risk, Reliability and Quality
Keywords
- borrowing
- ownership
- reference counting
- type inference
Fingerprint
Dive into the research topics of 'Fully-Automatic Type Inference for Borrows with Lifetimes'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver