Earlier quoted context omitted.
> They are akin to making everything async, which proves my point: you have to make everything of one kind in order to solve the problem. You can use ordinary direct style compilation, but all references to stack values simply have to be relative offsets, then a simple implementation of shift/reset is just capturing context and copying stack fragments, which you can do using setjmp/longjmp in C (although there are be…
> but all references to stack values simply have to be relative offsets Then such references are no longer pointers, and in order to have a generic reference (that can point to both stack memory and heap memory) you have to store additional data (which one of them it points to) and conditionally use the correct one any time you access it. This is a very invasive change to the memory model. > then a simple implementat…
Dropped the r somehow:
https://github.com/koka-lang/libhandler
> Sure, if everything has to be able to "wait" for the result of a continuation then you're forcing async support on everything.
If "forcing async support" doesn't mean that code has to change, or any other code in the call chain, then it's just meaningless pedantry.