wazero
wazero copied to clipboard
wazero: the zero dependency WebAssembly runtime for Go developers
Relevant to #580, we would like to make sure that our engines work well even on [the baseline x64 CPU](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels). By default, SSE4 (meaning x86-64-v2) is available on QEMU, so...
**Is your feature request related to a problem? Please describe.** For a while, we've had people either make calls based on us not publishing numbers or asking us to publish...
I notice that `Call` only returns `[]Uint64`, however other types are supported, such as `f32`. In that case I need to use: ``` ret = w.functions[s].Call(context.Background(), v...) *(*float32)(unsafe.Pointer(&ret[0])) ``` -----------...
from @sam-at-luther on #421 >From the go docs, it's not immediately clear if canceling the passed ctx will stop execution. From this discussion I gather that it does not (I...
Even if only in interpreter mode, it would be helpful for someone to be able to trace by logging or call graph. This could be initially limited to entry-exit on...
I have the following code: commandOffset, _ := module.ExportedFunction("SetupCommand").Call(nil) // ... module.ExportedFunction("Update").Call(nil) command, _ := module.Memory().Read(uint32(commandOffset[0]), 2048) copy(commandCache[:], command) The idea is: Any arbitrary module/wasm should create one array of...
This is the left TODO in #481. https://github.com/tetratelabs/wazero/blob/043f67ab8419d639a7911a3dbf4d57520de383d8/internal/modgen/modgen.go#L409 Generating the function body randomly is a bit trickier than others in the sense that function body is stateful -- this means...
We currently don't support user-defined types, but perhaps types of the primitives we do support might work. We should add tests about this either way as defining types allow you...
Globals in WebAssembly 1.0 (MVP) are alllowed to be mutable, and stored internally as a uint64. We need to internally guarantee visibility of writes across goroutines for these, or document...
We could use `runtime.LockOSThread()` to block Goruntime from switching the goroutine via [async preemption](https://github.com/golang/proposal/blob/master/design/24543-non-cooperative-preemption.md) which can happen at any point of execution. Even though we've tested the JIT execution is...