Skip to content

Perceus: Garbage Free Reference Counting with Reuse [MS TR 2020] #63

Open
@brianhempel

Description

@brianhempel

Perceus: Garbage Free Reference Counting with Reuse
Alex Reinking Ningning Xie Leonardo de Moura Daan Leijen
https://www.microsoft.com/en-us/research/uploads/prod/2020/11/perceus-tr-v1.pdf

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 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions