SPLASH 2025
Sun 12 - Sat 18 October 2025 Singapore
co-located with ICFP/SPLASH 2025
Sat 18 Oct 2025 16:45 - 17:00 at Orchid Plenary Ballroom - Rust Chair(s): Alexander J. Summers

Linear type systems are powerful because they can statically ensure the correct management of resources like memory, but they can also be cumbersome to work with, since even benign uses of a resource require that it be explicitly threaded through during computation. Borrowing, as popularized by Rust, reduces this burden by allowing one to temporarily disable certain resource permissions (e.g., deallocation or mutation) in exchange for enabling certain structural permissions (e.g., weakening or contraction). In particular, this mechanism spares the borrower of a resource from having to explicitly return it to the lender but nevertheless ensures that the lender eventually reclaims ownership of the resource.

In this paper, we elucidate the semantics of borrowing by starting with a standard linear type system for ensuring safe manual memory management in an untyped lambda calculus and gradually augmenting it with immutable borrows, lexical lifetimes, reborrowing, and finally mutable borrows. We prove semantic type soundness for our Borrow Calculus (BoCa) using Borrow Logic (BoLo), a novel domain-specific separation logic for borrowing. We establish the soundness of this logic using a semantic model that additionally guarantees that our calculus is terminating and free of memory leaks. We also show that our Borrow Logic is robust enough to establish the semantic safety of some syntactically ill-typed programs that temporarily break but reestablish invariants.

Sat 18 Oct

Displayed time zone: Perth change

16:00 - 17:30
RustOOPSLA at Orchid Plenary Ballroom
Chair(s): Alexander J. Summers University of British Columbia
16:00
15m
Talk
A Refinement Methodology for Distributed Programs in Rust
OOPSLA
Aurea Bílá ETH Zurich, João Pereira ETH Zurich, Peter Müller ETH Zurich
DOI
16:15
15m
Talk
AutoVerus: Automated Proof Generation for Rust Code
OOPSLA
Chenyuan Yang University of Illinois Urbana-Champaign, Xuheng Li Columbia University, Md Rakib Hossain Misu University of California Irvine, Jianan Yao University of Toronto, Weidong Cui Microsoft Research, Yeyun Gong Microsoft Research, Chris Hawblitzel Microsoft Research, Shuvendu K. Lahiri Microsoft Research, Jacob R. Lorch Microsoft Research, n.n., Shuai Lu Microsoft Research, Fan Yang Microsoft Research Asia, Ziqiao Zhou Microsoft Research, Shan Lu Microsoft; University of Chicago
16:30
15m
Talk
Carapace: Static–Dynamic Information Flow Control in Rust
OOPSLA
Vincent James Beardsley , Chris Xiong Ohio State University, Ada Lamba Ohio State University, Michael D. Bond Ohio State University
16:45
15m
Talk
From Linearity to BorrowingDistinguished Paper
OOPSLA
Andrew Wagner Northeastern University, Olek Gierczak Northeastern University, Brianna Marshall Northeastern University, John Li Northeastern University, Amal Ahmed Northeastern University, USA
DOI Pre-print
17:00
15m
Talk
Garbage Collection for Rust: The Finalizer Frontier
OOPSLA
Jacob Hughes King's College London, Laurence Tratt King's College London
DOI Pre-print
17:15
15m
Talk
Place Capability Graphs: A General-Purpose Model of Rust’s Ownership and Borrowing Guarantees
OOPSLA
Zachary Grannan University of British Columbia, Aurea Bílá ETH Zurich, Jonas Fiala ETH Zürich, Jasper Geer University of British Columbia, Markus de Medeiros New York University, Peter Müller ETH Zurich, Alexander J. Summers University of British Columbia