Dynamic space limits for Haskell

Abstract

We describe the semantics and implementation of a space limits system for Haskell, which allows programmers to create resource containers that enforce bounded resident memory usage at runtime. Our system is distinguished by a clear allocator-pays semantics drawn from previous experience with profiling in Haskell and an implementation strategy which uses a block-structured heap to organize containers, allowing us to enforce limits with high accuracy. To deal with the problem of deallocating data in a garbage collected heap, we propose a novel taint-based mechanism that unifies the existing practices of revocable pointers and killing threads in order to reclaim memory. Our system is implemented in GHC, a production-strength compiler for Haskell.

Document Details

Document Type
Pub Defense Publication
Publication Date
Jun 05, 2014
Source ID
10.1145/2666356.2594341

Entities

People

  • David Mazières
  • Edward Z. Yang

Organizations

  • Defense Advanced Research Projects Agency
  • Stanford University
  • United States Department of Defense

Tags

Fields of Study

  • Computer science

Readers

  • Artificial Intelligence
  • Computational Linguistics
  • Environmental Engineering.

Technology Areas

  • Space