3 ms·
Support for tail calls are in Phase 4 of the standardisation process: the last phase before becoming part of the Webassembly standard. There is already a WASM
by Findecanor 3y ago
Support for tail calls are in Phase 4 of the standardisation process: the last phase before becoming part of the Webassembly standard.
There is already a WASM back-end for Golang, which implements coroutines without tail calls or sparse stacks.
BTW. ISAs with opaque call stacks and verified branch targets, respectively do exist, but I dunno if there is hardware that does both. You could use Intel CET for the latter, and enable "Safe Stack" or a flavour of "Control Flow Integrity" instrumentation in LLVM to emulate the former. There are also projects that recompile existing binaries.
Google Fuchsia has Safe Stack enabled for all binaries, except for Golang unfortunately.
- 3cats-in-a-coat 3y agoYou can implement coroutines on anything but it’s slow.