Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation 2014
DOI: 10.1145/2594291.2594341
|View full text |Cite
|
Sign up to set email alerts
|

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 co… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1

Citation Types

0
3
0

Year Published

2015
2015
2020
2020

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 8 publications
(3 citation statements)
references
References 28 publications
0
3
0
Order By: Relevance
“…This discussion suggests that, if size vulnerabilities are a real concern, they need to be treated with special care. One approach would be to limit the amount of memory an untrusted component can allocate [47], so that exhausting the memory allotted to that component doesn't reveal information about the state of the rest of the system (and so that also global denial-of-service attacks are prevented). A more speculative idea is to develop quantitative versions [6,39] of the noninterference results discussed here that apply only if the total memory used by the program is below a certain limit.…”
Section: Infinite Memorymentioning
confidence: 99%
“…This discussion suggests that, if size vulnerabilities are a real concern, they need to be treated with special care. One approach would be to limit the amount of memory an untrusted component can allocate [47], so that exhausting the memory allotted to that component doesn't reveal information about the state of the rest of the system (and so that also global denial-of-service attacks are prevented). A more speculative idea is to develop quantitative versions [6,39] of the noninterference results discussed here that apply only if the total memory used by the program is below a certain limit.…”
Section: Infinite Memorymentioning
confidence: 99%
“…A Haskell server receives untrusted code over the wire, specifies its expected type, and compiles it in Safe mode[40] together with runtime resource limits[42]. In this way it supports type-system-enforced safety rather than modified runtimes for sandboxing, such as found in Javascript[41].…”
mentioning
confidence: 99%
“…Here, we abuse notation by describing types for configuration parts using the same metavariables as the "instance" of the type, e.g., t for the type of task 4. We believe that we can extend LIFC(α, λ) to such models using the resource limits techniques of[48]. We leave this extension to future work.…”
mentioning
confidence: 99%