Skip to content

se-tuebingen/oopsla-2025-artifact-finalizers

Repository files navigation

Artifact of the paper 'Dynamic Wind for Effect Handlers'

Availability: Our artifact is available via Zenodo

DOI

This GitHub repository contains the artifact of our paper

Dynamic Wind for Effect Handlers
David Voigt, Philipp Schuster, Jonathan Immanuel Brachthäuser
Accepted at OOPSLA 2025.

Overview

The artifact consists of the benchmarks conducted for evaluating the potential overhead of supporting finalization clauses for effect handlers in Effekt. Furthermore, we also include a comprehensive case study leveraging finalization clauses in the context of parsing as well as the example given in section 2.

The benchmark programs are taken from a community benchmark suite, specifically designed for benchmarking effect handlers. Note that the folder benchmarks/results already contains the results of conducting the benchmarks on a Macbook equipped with a M1 Pro ARM processor and 16GB of RAM.

Additionally, this repository contains a flake.nix for setting up a reproducible shell environment with all required dependencies for building and using the Effekt compiler installed. Besides setting up a shell environment, the flake.nix file can also be used for running the benchmarks.

Paper Claims

  • In the evaluation (section 4), we claim that supporting the newly introduced finalization clauses for effect handlers in the Effekt language is possible with little to no overhead.
    • Supported: We supported our claim by presenting benchmark results comparing the execution time (using Effekt's JavaScript backend) between using our implementation and a baseline of benchmark programs (though not finalization clauses). These results can be reproduced using this artifact.
  • We claim that the usage of effects in the on resume and on suspend clauses is safe, such that the stack unwinding and rewinding is well-behaved and no stack frames are lost.
    • Supported: Besides the formal proof of progress and preservation in the paper (appendix section 3 and 4, respectively), we further showcase that our implementation retains the same safety by including a comprehensive case study in the context of backtracking parsers in this artifact, giving further confidence the correctness of the implementation.

Hardware Dependencies

The artifact has been tested to run on x86_64 (Linux - Ubuntu 24.04) and arm64 (MacOS) architectures. For using this artifact, you approximately need 1.1 GB of disk space (excluding disk space for installing Nix) and an installation of the nix package manager.

Additional Instructions

Please find additional instructions in the following two files:

  • GETTING-STARTED.md for instructions on how to set up the environment and how to run the benchmarks as well as the case study.
  • STEP-BY-STEP.md for suggestions on how to proceed with the evaluation of the artifact.
  • REUSABILITY.md for instructions on how to add new benchmarks and executing user-defined Effekt programs.

About

Artifact of the paper 'Dynamic Wind for Effect Handlers'

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors