>>30
You stuff the coroutine's state inside the stack frame of the function that calls it (within something(), in my example).
Isn't this quite a limitation that normal coroutine support doesn't have? Why does each call to a coroutine have to happen from the same function? Why can't several different functions call a coroutine? Why can't the coroutine be thread-safe?
No, to implement coroutines properly you need to do what Knuth said; get rid of the stack.