WASI reactor mode
Hi all,
I've been experimenting with tinygo having some fun prototyping a go wasm application hosted by wasmtime-java. Unfortunately, I hit a bug/missing feature when trying to access the memory: https://github.com/kawamuray/wasmtime-java/issues/21. As described in that issue, tinygo cannot compile in reactor mode, hence preventing wasmtime-java to access its memory. Although this might be recognized as a limitation of the engine (apparently others, at least from the documentation, can switch the usage mode independently from the exports https://wasmedge.org/book/en/dev/go.html#a-simple-function-run), I think it would be nice if tinygo can support the reactor mode.
I tried to prototype the support myself following what was done for clang https://reviews.llvm.org/D62922 and this is roughly what I needed to come up with a correct export:
- Patch manually
wasi.jsonadding the ldflag"--entry=_initialize" - Rename the export
_startto_initialize: https://github.com/tinygo-org/tinygo/blob/release/src/runtime/runtime_wasm_wasi.go#L15
If you want I can also provide a proper PR, but i need some guidance :)
There may be issues after this, but I guess the main question is how to control the //export name (ex based on flags). Is templating supported?
https://github.com/tinygo-org/tinygo/blob/release/src/runtime/runtime_wasm_wasi.go#L16