Skip to main navigation Skip to search Skip to main content

Fully-Automatic Type Inference for Borrows with Lifetimes

  • William Brandon
  • , Benjamin Driscoll
  • , Frank Dai
  • , Jonathan Ragan-Kelley
  • , Mae Milano
  • , Alex Aiken

Research output: Contribution to journalArticlepeer-review

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 languageEnglish (US)
Pages (from-to)597-623
Number of pages27
JournalProceedings of the ACM on Programming Languages
Volume10
Issue numberOOPSLA1
DOIs
StatePublished - 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