I’ve been looking into stackful coroutines lately for my “formally proven async runtime” stuff, and I found out about this little library called minicoro GitHub - edubart/minicoro: Single header stackful cross-platform coroutine library in pure C. · GitHub that does exactly that in C, albeit with a bunch of handwritten assembly.
Since GNAT is directly built on top of GCC, couldn’t a minicoro like library be written in pure Ada, and emit GCC intrinsics or IR? The only issue I see is if an fiber/coroutine somehow exhausted the stack, which means we would need some way to raise an compiler error if/when that happens.