Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi @mathetake! First of all, nice work with this project!
I tried running a rust-compiled hello world program with the
wasm32-wasi
target, started adding the required methods into thewasi
package, and was pretty excited to get it working, but then kept getting afunction signature mismatch
panic from thecallIndirect
function invm_call.go
. It took me quite a while to debug, and I got to understand the wasm binary format way better because of it, but finally found the culprit:There's a classic bug in the code that populates the table index space. This loop:
Takes the pointer of the temporary variable, which is reused on every iteration. The fix is just to use
table[i+offset] = &elem.Init[i]
.Hope you see this pull request, and merge it! I want to contribute some more code to the
wasi
package afterwards.