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