Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation 2021
DOI: 10.1145/3453483.3454039
|View full text |Cite
|
Sign up to set email alerts
|

Retrofitting effect handlers onto OCaml

Abstract: Effect handlers have been gathering momentum as a mechanism for modular programming with user-defined effects. Effect handlers allow for non-local control flow mechanisms such as generators, async/await, lightweight threads and coroutines to be composably expressed. We present a design and evaluate a full-fledged efficient implementation of effect handlers for OCaml, an industrial-strength multi-paradigm programming language. Our implementation strives to maintain the backwards compatibility and performance pr… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
7
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
2
2
2

Relationship

0
6

Authors

Journals

citations
Cited by 26 publications
(9 citation statements)
references
References 37 publications
0
7
0
Order By: Relevance
“…Effect handlers were originally studied as a theoretical means to provide a semantics for exception handling in the setting of algebraic effects (Plotkin & Power, 2001;Plotkin & Pretnar, 2013). Subsequently, they have emerged as a practical programming abstraction for modular effectful programming (Convent et al, 2020;Kammar et al, 2013;Kiselyov et al, 2013;Bauer & Pretnar, 2015;Leijen, 2017;Sivaramakrishnan et al, 2021). In this section, we give a short introduction to effect handlers.…”
Section: Effect Handlers Primermentioning
confidence: 99%
“…Effect handlers were originally studied as a theoretical means to provide a semantics for exception handling in the setting of algebraic effects (Plotkin & Power, 2001;Plotkin & Pretnar, 2013). Subsequently, they have emerged as a practical programming abstraction for modular effectful programming (Convent et al, 2020;Kammar et al, 2013;Kiselyov et al, 2013;Bauer & Pretnar, 2015;Leijen, 2017;Sivaramakrishnan et al, 2021). In this section, we give a short introduction to effect handlers.…”
Section: Effect Handlers Primermentioning
confidence: 99%
“…Recently, effect handlers are found in several research programming languages, such as Eff [1], Frank [2], Links [3], Multicore OCaml [4], and Scala [5], etc. There is a growing need for programmers and researchers to reason about the combination of primitive effects and user-defined handlers.…”
Section: Introductionmentioning
confidence: 99%
“…The coexistence of zero-shot, one-shot and multi-shot continuations. The design decisions of various implementations [4,6] and verification solutions [7,8] diverge upon the question that, should it be permitted or forbidden to invoke a captured continuation more than once? In this paper, our forward inference rules shows the generality to incorporate both one-shot and multi-shot continuations.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Since introduced, they have been studied extensively in the community, supported in languages including Koka [4], Eff [11], Frank [6] and Links [5]. Recent work has implemented effect handlers in Multicore OCaml [12] to support asynchronous I/O for concurrent programming.…”
Section: Introductionmentioning
confidence: 99%