Ah, I forgot libmill uses setjmp&#x2F;longjmp. I&#x27;m not sure how that really works for coroutines though since you still need to deal with stack allocations. So replace &quot;non-portable assembly&quot; with &quot;possibly non-portable C hacks&quot;. I haven&#x27;t gotten around to digging deep in the code yet though. If libmill&#x27;s approach is future-proof then that&#x27;d be pretty awesome.