Features/Continuation-Passing C

Jump to navigation Jump to search


The project idea is to implement the coroutines API used in QEMU with Continuation Passing C. This implementation should provide a more portable coroutines implementation so that when QEMU is ported to new architectures, it shouldn't be necessary to rewrite the coroutines implementation.



There are certain impracticalities of compiling with CPC may lead to this project being more of a proof of concept than being material for QEMU mainline. (eg, For example, CPC requires Ocaml, which would need to be ported to the target architecture) The main value of the project is contributing patches for QEMU and CPC (and potentially CIL). These will relate to making the coroutines implementation in QEMU more robust and also to have the experience of compiling a larger code base with CPC.


The main target is to develop a CPC adapter for the existing coroutines.h interface. This should be a near drop-in replacement, as a clear priority is minimal changes to QEMU.


This feature is under active development at: