Evaluate the Stack Management in Effect Handlers using the libseff C Library
ZeHao Yu

TL;DR
This paper introduces a novel user-level overcommitting approach for stack management in effect handlers using libseff, aiming to improve memory efficiency and flexibility, with comprehensive benchmarking against traditional methods.
Contribution
It presents a new user-level overcommitting technique leveraging virtual memory and lazy allocation, offering an alternative to fixed and segmented stacks in effect handlers.
Findings
Kernel-based overcommitting balances performance and flexibility.
User-level overcommitting improves memory utilization but has overheads.
Benchmarking shows trade-offs between different stack management strategies.
Abstract
Effect handlers are increasingly prominent in modern programming for managing complex computational effects, including concurrency, asynchronous operations, and exception handling, in a modular and flexible manner. Efficient stack management remains a significant challenge for effect handlers due to the dynamic control flow changes they introduce. This paper explores a novel stack management approach using user-level overcommitting within the libseff C library, which leverages virtual memory mechanisms and protection-based lazy allocation combined with signal-driven memory commitment. Our user-level overcommitting implementation dynamically resizes stacks on-demand, improving memory utilization and reducing waste compared to traditional methods. We rigorously benchmark and evaluate this novel strategy against conventional fixed-size stacks, segmented stacks, and kernel-based…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Security and Verification in Computing · Logic, programming, and type systems
