Publications
This page contains the papers related to Project Verona. They are grouped by topic.
Ownership
- Dynamic Region Ownership for Concurrency Safety Fridtjof Stoldt, Brandt Bucher, Sylvan Clebsch, Matthew Johnson, Matthew J. Parkinson, Guido Van Rossum, Eric Snow and Tobias Wrigstad, PLDI 2025.
- Reference Capabilities for Flexible Memory Management Ellen Arvidsson, Elias Castegren, Sylvan Clebsch, Sophia Drossopoulou, Matthew J. Parkinson, James Noble and Tobias Wrigstad, OOPSLA 2024.
Concurrency
The concurrency model develop by Project Verona is called Behaviour-Oriented Concurrency. It is described in the following paper:
- When Concurrency Matters: Behaviour-Oriented Concurrency Luke Cheeseman, Matthew J. Parkinson, Sylvan Clebsch, Marios Kogias, Sophia Drossopoulou, David Chisnall, Tobias Wrigstad and Paul LiƩtar, OOPSLA 2024.
It has been applied to build deterministic parallel execution in the following paper:
- DORADD: Deterministic Parallel Execution in the Era of Microsecond-Scale Computing Zhengqing Liu, Musa Unal, Matthew J. Parkinson and Marios Kogias, PPoPP 2025
Reference counting
- Reference Counting Deeply Immutable Data Structures with Cycles: an Intellectual Abstract Matthew J. Parkinson, Sylvan Clebsch and Tobias Wrigstad, ISMM 2024.
- Wait-Free Weak Reference Counting Matthew J. Parkinson, Sylvan Clebsch and Ben Simner, ISMM 2023.
snmalloc
snmalloc is a memory allocator that is used in Project Verona. You can read more about it in the following papers:
- BatchIt: Optimizing Message-Passing Allocators for Producer-Consumer Workloads: An Intellectual Abstract Nathaniel Filardo, Matthew J. Parkinson, ISMM 2024.
- snmalloc: A message passing Allocator David Chisnall, Sylvan Clebsch, Sophia Drossopoulou, Juliana Vicente Franco, Paul Lietar, Matthew J. Parkinson, Alex Shamis and Christoph M. Wintersteiger, ISMM 2019.
It is available on Github and is used in many other projects, and has an active usage in the Rust community snmalloc-rs.
Precursor works
Project Verona pulls together many strands of research from the past. The following papers are some of the most relevant to the work we are doing in Verona.
Experiements in Manual Memory Management for .NET
- Project Snowflake: Non-blocking safe manual memory management in .NET Matthew J. Parkinson, Kapil Vaswani, Dimitrios Vytiniotis, Manuel Costa, Pantazis Deligiannis, Aaron Blankstein, Dylan McDermott and Jonathan Balkind, OOPSLA 2017.
- Simple, Fast and Safe Manual Memory Management Piyus Kedia, Manuel Costa, Dimitrios Vytiniotis, Matthew J. Parkinson, Kapil Vaswani and Aaron Blankstein, PLDI 2017.
The Pony Programming Language
- Pony: Co-designing a Type System and a Runtime Sylvan Clebsch, Ph.D. Thesis, Imperial College London, 2017.
- Deny capabilities for safe, fast actors Sylvan Clebsch, Sophia Drossopoulou, Sebastian Blessing and Andy McNeil, AGERE 2015.
There are many more papers on the Pony website.
Earlier papers
-
Uniqueness and Reference Immutability for Safe Parallelism Colin S. Gordon, Matthew J. Parkinson, Jared Parsons, Aleks Bromfield and Joe Duffy, OOPSLA 2012.
-
External Uniqueness Is Unique Enough Tobias Wrigstad and Dave Clarke, ECOOP 2003.