tinygo/compiler/testdata
Nia Waldvogel 641dcd7c16 internal/task: use asyncify on webassembly
This change implements a new "scheduler" for WebAssembly using binaryen's asyncify transform.
This is more reliable than the current "coroutines" transform, and works with non-Go code in the call stack.

runtime (js/wasm): handle scheduler nesting

If WASM calls into JS which calls back into WASM, it is possible for the scheduler to nest.
The event from the callback must be handled immediately, so the task cannot simply be deferred to the outer scheduler.
This creates a minimal scheduler loop which is used to handle such nesting.
2021-11-14 10:49:28 +01:00
..
basic.go compiler: properly implement div and rem operations 2021-10-28 15:55:02 +02:00
basic.ll compiler, runtime: add layout parameter to runtime.alloc 2021-11-02 22:16:15 +01:00
channel.go compiler: avoid zero-sized alloca in channel operations 2021-09-09 11:24:52 +02:00
channel.ll internal/task: use asyncify on webassembly 2021-11-14 10:49:28 +01:00
float.go
float.ll compiler, runtime: add layout parameter to runtime.alloc 2021-11-02 22:16:15 +01:00
func-coroutines.ll internal/task: use asyncify on webassembly 2021-11-14 10:49:28 +01:00
func.go compiler: add func tests 2021-04-12 12:07:42 +02:00
gc.go compiler: add object layout information to heap allocations 2021-11-02 22:16:15 +01:00
gc.ll internal/task: use asyncify on webassembly 2021-11-14 10:49:28 +01:00
go1.17.go compiler: add support for new language features of Go 1.17 2021-08-30 09:18:58 +02:00
go1.17.ll compiler: add object layout information to heap allocations 2021-11-02 22:16:15 +01:00
goroutine-cortex-m-qemu-tasks.ll internal/task: use asyncify on webassembly 2021-11-14 10:49:28 +01:00
goroutine-wasm-asyncify.ll internal/task: use asyncify on webassembly 2021-11-14 10:49:28 +01:00
goroutine-wasm-coroutines.ll internal/task: use asyncify on webassembly 2021-11-14 10:49:28 +01:00
goroutine.go compiler: add support for the go keyword on interface methods 2021-10-31 14:17:25 +01:00
interface.go compiler: simplify interface lowering 2021-10-31 14:17:25 +01:00
interface.ll compiler, runtime: add layout parameter to runtime.alloc 2021-11-02 22:16:15 +01:00
intrinsics-cortex-m-qemu.ll targets: match LLVM triple to the one Clang uses 2021-11-05 09:42:00 +01:00
intrinsics-wasm.ll compiler, runtime: add layout parameter to runtime.alloc 2021-11-02 22:16:15 +01:00
intrinsics.go compiler: move LLVM math builtin support into the compiler 2021-08-10 20:08:27 +02:00
pointer.go
pointer.ll compiler, runtime: add layout parameter to runtime.alloc 2021-11-02 22:16:15 +01:00
pragma.go compiler: add function and global section pragmas 2021-06-24 15:00:30 +02:00
pragma.ll compiler, runtime: add layout parameter to runtime.alloc 2021-11-02 22:16:15 +01:00
slice.go compiler: add *ssa.MakeSlice bounds tests 2021-08-17 08:16:27 +02:00
slice.ll compiler: add object layout information to heap allocations 2021-11-02 22:16:15 +01:00
string.go compiler: fix indices into strings and arrays 2021-11-13 11:04:24 +01:00
string.ll compiler: fix indices into strings and arrays 2021-11-13 11:04:24 +01:00