/ Papers / Concurrent System Programming with Effect Handlers
In trends in Functional Programming, Apr 2018
PDF   URL   BibTeX   DOI  

Abstract. Algebraic effects and their handlers have been steadily gaining attention as a programming language feature for composably expressing user-defined computational effects. While several prototype implementations of languages incorporating algebraic effects exist, Multicore OCaml incorporates effect handlers as the primary means of expressing concurrency in the language. In this paper, we make the observation that effect handlers can elegantly express particularly difficult programs that combine system programming and concurrency without compromising performance. Our experimental results on a highly concurrent and scalable web server demonstrate that effect handlers perform on par with highly optimised monadic concurrency libraries, while retaining the simplicity of direct-style code.

Authors. Stephen Dolan, Spiros Eliopoulos, Daniel Hillerström, Anil Madhavapeddy, KC Sivaramakrishnan and Leo White

See Also. This publication was part of the OCaml Labs project.

News Updates

Jan 2023. «» Recap of the OCaml community in 2022 posted along with plans to join the 'fediverse'.
Apr 2022. «» Update posted to the OCaml community on progress towards OCaml 5.0.
Feb 2022. «» Update posted to the OCaml community on post-multicore-merge activities in OCaml trunk.
Dec 2021. «» Update posted to the OCaml community on major multicore code review with Inria.
Oct 2021. «» Update posted to the OCaml community on confirmation that the effect system will appear in OCaml 5.0.
Aug 2021. «» Published a roadmap for OCaml.org's revamp.
Aug 2020. «» Update on multicore OCaml being ready for testing / «» Talk on the state of the OCaml Platform in 2020.
Apr 2020. «» Update the OCaml community on multicore progress and linked preprint of ICFP submission on the runtime.
Jan 2020. «» Began updating the OCaml community regularly with multicore monthly reports.
Nov 2018. «» Rearranged the OCaml opam repository layout.
Apr 2018. «» Paper on concurrent systems programming with effect handlers at TFP 2017.
Sep 2017. «» Talk on the state of the OCaml Platform.
May 2016. «» Announced HyperKit, VPNKit and DataKit for the Docker ecosystem.
Sep 2015. «» Update on the state of the OCaml Platform.
Apr 2015. «» Updated the OCaml community on annual OCaml Labs activities for 2014.
Feb 2015. «» Announced a call for sponsorships for ICFP 2015 in my role as industrial relations chair.
Sep 2014. «» Talk on the OCaml Platform reaching v1.0.
Aug 2014. «» Note on talks from OCaml Labs at ICFP 2014.
Mar 2014. «» Call for sponsorships for ICFP 2014 in my role as industrial relations chair / «» Note on an experiment to improve the coupling of opam with GitHub / «» Note on the Codio support for the opam package manager.
Dec 2013. «» Updated the OCaml community on the activities of OCaml Labs in 2013.
Nov 2013. «» Note on integrating Docker and opam more effectively.
Sep 2013. «» Note on the release of the OPAM 1.1 beta / «» Liveblog from the CUFP 2013 workshop at ICFP / «» Liveblog from the OCaml 2013 workshop.
Apr 2013. «» Note on how to grep the source code for all packages on opam.
Oct 2012. «» Announced the opening of OCaml Labs at Cambridge, along with Jane Street support.
Sep 2012. «» Recording of the OCaml Labs announcement.
Feb 2012. «» Note on using ARM Dreamplugs with OCaml published.
Apr 2011. «» Trip report about the new OCaml Users Group in Paris / «» Blogged about the growth of functional programming in the Systems Research Group.