SPY / haskell-wasm

Haskell WebAssembly Toolkit
Other
151 stars 24 forks source link

Supporting more recent wasm spec versions #8

Open TD5 opened 4 years ago

TD5 commented 4 years ago

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 4 years ago

For reference, here's the example change being applied in the wasm spec repo: https://github.com/WebAssembly/spec/commit/994591e51c9df9e7ef980b04d660709b79982f75#diff-ea98b1ae7a5f7af0382b1b0ec2e813fd

ggreif commented 4 years ago

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

SPY commented 4 years ago

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 :)

brandlk commented 3 years ago

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 3 years ago

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 3 years ago

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.

Abhiroop commented 1 year ago

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.