Perceus: garbage free reference counting with reuse
Alex Reinking, Ningning Xie, Leonardo de Moura, Daan Leijen
Abstract
We introduce Perceus, an algorithm for precise reference counting with reuse and specialization. Starting from a functional core language with explicit control-flow, Perceus emits precise reference counting instructions such that (cycle-free) programs are garbage free, where only live references are retained. This enables further optimizations, like reuse analysis that allows for guaranteed in-place updates at runtime. This in turn enables a novel programming paradigm that we call functional but in-place (FBIP). Much like tail-call optimization enables writing loops with regular function calls, reuse analysis enables writing in-place mutating algorithms in a purely functional way. We give a novel formalization of reference counting in a linear resource calculus, and prove that Perceus is sound and garbage free. We show evidence that Perceus, as implemented in Koka, has good performance and is competitive with other state-of-the-art memory collectors.
• Software and its engineering → Runtime environments; Garbage collection; • Theory of computation → Linear logic.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext be50f2c8-9a4a-4a81-a6f1-3fdc3bcf1b90Cited by top-tier papers12
- Relational compilation for performance-critical applications: extensible proof-producing translation of functional models into low-level codeClément Pit-Claudel, Jade Philipoom, Dustin Jamner, Andres Erbsen et al.PLDI 2022 · 26 citations
- First-class names for effect handlersNingning Xie, Youyou Cong, Kazuki Ikemori, Daan LeijenOOPSLA 2022 · 11 citations
- Coop: Memory is not a CommodityJianhao Zhang, Shihan Ma, Peihong Liu, Jinhui YuanNeurIPS 2023 · 11 citations
- Tail Recursion Modulo Context: An Equational ApproachDaan Leijen, Anton LorenzenPOPL 2023 · 9 citations
- The Functional Essence of Imperative Binary Search TreesAnton Lorenzen, Daan Leijen, Wouter Swierstra, Sam LindleyPLDI 2024 · 6 citations
Related papers
- Fully-Automatic Type Inference for Borrows with LifetimesWilliam Brandon, Benjamin Driscoll, Frank Dai, Jonathan Ragan-Kelley et al.OOPSLA 2026
- Concurrent Immediate Reference CountingJaehwang Jung, Jeonghyeon Kim, Matthew J. Parkinson, Jeehoon KangPLDI 2024 · 6 citations
- CRGC: Fault-Recovering Actor Garbage Collection in PekkoDan Plyukhin, Gul Agha, Fabrizio MontesiPLDI 2025 · 1 citation
- Taking Out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static AnalysesFabian Stemmler, Michael Schwarz, Julian Erhard, Sarah Tilscher et al.PLDI 2025 · 3 citations
- Reducing the Memory Footprint of IFDS-Based Data-Flow Analyses using Fine-Grained Garbage CollectionDongjie He, Yujiang Gui, Yaoqing Gao, Jingling XueISSTA 2023 · 6 citations
