Effect handlers provide a structured means for implementing user-defined, composable, and customisable computational effects, ranging from exceptions to generators to lightweight threads. We introduce libseff, a novel effect handlers library for C, based on coroutines. Whereas prior effect handler libraries for C are intended primarily as compilation targets, libseff is intended to be used directly from C programs. As such, the design of libseff parts ways from traditional effect handler implementations, both by using mutable coroutines as the main representation of pending computations, and by avoiding closures as handlers by way of reified effects. We show that the performance of libseff is competitive across a range of platforms and benchmarks.
Fri 25 OctDisplayed time zone: Pacific Time (US & Canada) change
16:00 - 17:40 | |||
16:00 20mTalk | Effect handlers for C via coroutines OOPSLA 2024 Mario Alvarez-Picallo Huawei Research Centre, Teodoro Freund Huawei Research Centre, Dan Ghica Huawei, Sam Lindley The University of Edinburgh DOI | ||
16:20 20mTalk | Effects and Coeffects in Call-By-Push-Value OOPSLA 2024 Cassia Torczon University of Pennsylvania, Emmanuel Suarez Acevedo Cornell University, Shubh Agrawal University of Michigan, Joey Velez-Ginorio , Stephanie Weirich University of Pennsylvania DOI | ||
16:40 20mTalk | Lexical Effect Handlers, Directly OOPSLA 2024 Cong Ma University of Waterloo, Zhaoyi Ge University of Waterloo, Edward Lee University of Waterloo, Yizhou Zhang University of Waterloo DOI | ||
17:00 20mTalk | Higher-Order Model Checking of Effect-Handling Programs with Answer-Type ModificationRemote OOPSLA 2024 DOI |