SPY/haskell-wasm

Supporting more recent wasm spec versions

TD5 opened this issue ยท 7 comments

TD5 commented

Hi!

I am enjoying experimenting with haskell-wasm, so thanks for your hard work! ๐Ÿ‘

Going by things such as the lexemes used, e.g. get_global vs. global.get and the commit history, the implementation here seems to be up to date with the spec as of about the end of 2018, I think.

I am interested to know what the authors/contributors see the state of this project as, what plans any of they have for keeping this library up to date with the spec, how they'd like to engage with others who'd perhaps be willing to make that happen. I am not promising anything, just trying to test the waters.

Thanks ๐Ÿ™‚

TD5 commented

For reference, here's the example change being applied in the wasm spec repo: WebAssembly/spec@994591e#diff-ea98b1ae7a5f7af0382b1b0ec2e813fd

Also the spec 1.1 now contains multiple-value return functions and control structures.

SPY commented

Hi, @TD5

Sorry for delayed response. I'm going to invest some time to rebuild testing infrastructure first to bring actual tests from core repo.
After I'm going to bring multi-value returns and fix other discrepancies with reference compiler.
So stay tuned and you are welcome to join :)

Hi @SPY,
just wanted to ask if there is some progress in getting in sync with the wasm spec? I would especially be interested in the parser supporting the current spec.

SPY commented

Hi @brandlk
Please follow update-tests branch. I linked the official testsuit as a submodule and going to fix parsing first.
Then I'm going to support new features passed standardisation.

SPY commented

I've updated tests to fairly fresh state and implemented multi-value, mutable globals, non-trapping float operations and sign extension operator proposals.
While I was working on them, two more proposals(reference types and bulk memory operations) were accepted to the standard. So I'm going to implement them as well, but I cannot promise anything about timings.

The WASM 2.0 spec was announced since this discussion. The changelog between version 1 and version 2 can be found here - https://www.w3.org/TR/wasm-core-2/appendix/changes.html This might be useful for someone interested in picking this up.