Reference Capabilities for Flexible Memory Management: Extended Version

09/06/2023
by   Ellen Arvidsson, et al.
0

Verona is a concurrent object-oriented programming language that organises all the objects in a program into a forest of isolated regions. Memory is managed locally for each region, so programmers can control a program's memory use by adjusting objects' partition into regions, and by setting each region's memory management strategy. A thread can only mutate (allocate, deallocate) objects within one active region – its "window of mutability". Memory management costs are localised to the active region, ensuring overheads can be predicted and controlled. Moving the mutability window between regions is explicit, so code can be executed wherever it is required, yet programs remain in control of memory use. An ownership type system based on reference capabilities enforces region isolation, controlling aliasing within and between regions, yet supporting objects moving between regions and threads. Data accesses never need expensive atomic operations, and are always thread-safe.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/26/2023

Asynchronous Persistence with ASAP

Supporting atomic durability of updates for persistent memories is typic...
research
05/02/2022

Rusty Links in Local Chains

Rust successfully applies ownership types to control memory allocation. ...
research
06/13/2023

Friend or Foe Inside? Exploring In-Process Isolation to Maintain Memory Safety for Unsafe Rust

Rust is a popular memory-safe systems programming language. In order to ...
research
02/03/2023

CheckedCBox: Type Directed Program Partitioning with Checked C for Incremental Spatial Memory Safety

Spatial memory safety violation is still a major issue for C programs. C...
research
01/12/2018

Safe Privatization in Transactional Memory

Transactional memory (TM) facilitates the development of concurrent appl...
research
08/08/2019

Privatization-Safe Transactional Memories (Extended Version)

Transactional memory (TM) facilitates the development of concurrent appl...
research
01/09/2020

Lazy object copy as a platform for population-based probabilistic programming

This work considers dynamic memory management for population-based proba...

Please sign up or login with your details

Forgot password? Click here to reset