Daniel Hillerstrom
Effect Handlers All the Way Down
Effect handlers appear in various shapes all the way down through the software stack. At the top of the stack, in applications they appear directly or indirectly to encode contemporary non-local control idioms such as async/await, green threads, probabilistic sampling, backtracking search, etc. For runtime systems they offer a convenient mechanism for building reusable runtime components by providing a means for separating the details of the runtime system from the client code. In operating systems, effect handlers provide a way to virtualise and reinterpret system calls, thus providing a form of fine-grain containerisation. Near the bottom of the stack, at the instruction set architecture level, effect handlers serve as a structured way of doing stack switching. In this talk will give examples of effect handlers at various levels of the software stack as well as discuss the insights that we have learned from using them across the software stack.
back to overview