Skip to content

Papers

If reading academic papers is your thing, you’re in luck. There are a number of papers that have been written about Pony. We host a number of them on this website. If you’re interested in learning more about “deep Pony”, these papers are a great place to start.

Pony: Co-designing a Type System and a Runtime

The best overview paper. Explains how Pony’s type system and runtime were designed together so that reference capabilities enable a concurrent garbage collector without stop-the-world pauses.

Deny Capabilities for Safe, Fast Actors

Introduces deny capabilities, the formal foundation for Pony’s reference capability system. Shows how denying certain operations on a reference (rather than granting them) lets the type system guarantee data-race freedom.

A Principled Design of Capabilities in Pony

Extends the deny capabilities work with a more complete formalization. Covers viewpoint adaptation, safe-to-write, and how capabilities compose under aliasing and subtyping.

ORCA: GC and Type System Co-Design for Actor Languages

Describes Pony’s production garbage collector. ORCA uses the type system’s knowledge of reference capabilities to do per-actor garbage collection with no stop-the-world pauses and no read or write barriers.

Ownership and Reference Counting based Garbage Collection in the Actor World

An earlier take on actor garbage collection that influenced ORCA. Combines ownership tracking with reference counting to collect both objects within an actor and actors themselves.

Fully Concurrent Garbage Collection of Actors on Many-Core Machines

Focuses on collecting actors themselves (not just the objects they own) without stopping the world. Covers the protocol for detecting when an actor is unreachable and can be reclaimed.

A String of Ponies: Transparent Distributed Programming with Actors

Explores distributing Pony actors across multiple machines. Actors communicate the same way whether local or remote, so distribution is transparent to the programmer.

Formalizing Generics for Pony

Covers how generic types interact with reference capabilities. Works through the formalism for constraining type parameters with capabilities and how that affects subtyping.