Conversation
|
Hm, GH isn't good at dealing with dependent PRs. Is there a reason that we cannot merge proposals one at a time? |
We can, but when we discussed this in the WG meeting, we decided it would be valuable to explicitly have them ordered with the actual PRs ready to go. I just realized I can make this a little easier to read by having each PR against the branch of the previous PR, so it's easier to see the diffs. I'll try that instead. |
|
OK, updated. PTAL |
rossberg
left a comment
There was a problem hiding this comment.
I found one (earlier) mistake that I fixed in the repo, see comment.
87f2a5a to
270c879
Compare
See the multi-value proposal here: https://github.com/WebAssembly/multi-value This PR is built on top of the following PRs: * #1143 (merge nontrapping-float-to-int) * #1144 (merge sign-extension-ops)
| @@ -0,0 +1,196 @@ | |||
| # Multi-value Extension | |||
There was a problem hiding this comment.
@binji I only realized now that you added the proposals/ dir too. Was that intentional?
There was a problem hiding this comment.
It was; I thought we decided to do this so we could easily see that you could easily see which proposals had been merged into the spec. That said, it was a long time ago and I could be misremembering.
There was a problem hiding this comment.
At least it matches my memory as well. :)
This enables three proposals by default since they've been merged into the upstream specification: * `saturating-float-to-int` - WebAssembly/spec#1143 * `sign-extension` - WebAssembly/spec#1144 * `multi-value` - WebAssembly/spec#1145 Most of the fallout from this is in the test suite with lots of `--enable` flags getting removed and some tests which now unconditionally pass also getting removed. Two spec tests explicitly pass `--disable` until the spec test submodule is updated.
This was merged into the wasm spec upstream in WebAssembly/spec#1145, so let's follow the spec and enable it by default here as well!
This was merged into the wasm spec upstream in WebAssembly/spec#1145, so let's follow the spec and enable it by default here as well!
This was merged into the wasm spec upstream in WebAssembly/spec#1145, so let's follow the spec and enable it by default here as well!
This was merged into the wasm spec upstream in WebAssembly/spec#1145, so let's follow the spec and enable it by default here as well!
This was merged into the wasm spec upstream in WebAssembly/spec#1145, so let's follow the spec and enable it by default here as well!
This was merged into the wasm spec upstream in WebAssembly/spec#1145, so let's follow the spec and enable it by default here as well!
This enables three proposals by default since they've been merged into the upstream specification: * `saturating-float-to-int` - WebAssembly/spec#1143 * `sign-extension` - WebAssembly/spec#1144 * `multi-value` - WebAssembly/spec#1145 Most of the fallout from this is in the test suite with lots of `--enable` flags getting removed and some tests which now unconditionally pass also getting removed. Two spec tests explicitly pass `--disable` until the spec test submodule is updated.
|
As this extensions is merged, and it modifies existing test files, is there a way to send new tests for 1.0? |
|
Are you asking whether someone is maintaining a test suite specifically for Wasm 1.0, excluding tests / test changes for proposals that have been merged since? If so, I don't think so. You can always submit tests to the master branch here, of course. |
|
Yes, I can submit tests to maser, but I will not be able to use them directly from master. Thanks for the answer anyway. I don't want to start longer discussion here. |
* Upgrade to latest Sphinx release (2.4.4) (#1171) Fixes #1157 * Support 4GB of memory both in initial and max. * [interpreter] Strictify and specify .bin.wast format (#1173) * Merge nontrapping-float-to-int proposal into spec (#1143) See the non-trapping-float-to-int-conversions proposal here: https://github.com/WebAssembly/nontrapping-float-to-int-conversions * Merge sign-extension-ops proposal into spec (#1144) See the sign-extension-ops proposal here: https://github.com/WebAssembly/sign-extension-ops This PR is built on top of #1143 (merge nontrapping-float-to-int). * Merge multi-value proposal into spec (#1145) See the multi-value proposal here: https://github.com/WebAssembly/multi-value This PR is built on top of the following PRs: * #1143 (merge nontrapping-float-to-int) * #1144 (merge sign-extension-ops) * [interpreter] Remove junk in README * [interpreter] Remove junk in README * [spec] Fix grammar for fractions (#1178) * [spec] Add missing i64.extend32_s syntax (#1179) * [js-api][web-api] Fix some markup errors. * Add a README to the proposals directory. * Add more address overflow tests (#1188) There are already tests for effective address overflow, but those have a large value baked into the offset. These tests all use `1` as the immediate offset, and use `-1` for the address on the stack, which may be compiled differently. * Add a test for non-treelike behavior of stack (#961) We've recently found a bug in a WebAssembly library we've been working with where we're mapping WebAssembly to a tree-like IR internally. The way we parse into this representation, however, has a bug when the function isn't itself tree-like but rather exibits properties that exploit a stack machine. For example this isn't so straightforward to represent in a tree-like fashion: (import "" "a" (func $foo)) (import "" "b" (func $foo (result i32))) (func (result i32) call $b call $b call $a i32.xor) The extra `call $a` in the middle is valid `WebAssembly` but needs special treatment when converting to a more tree-like IR format. I figured it'd be good to ensure there's a spec test covering this case as we currently pass the suite of spec tests but still contain this bug! * [js-api] Various editorial improvements. * [js-api] Replace pseudo-ASCII characters by normal ones. This also required disambiguating the references to "module", as there are now two definitions by that name. * [js-api] Improve prose in 'run a host function'. * [js-api] Improve some of the multi-value prose. * Synchronize js-api tests. * Add script to synchronize js-api tests. Co-authored-by: Ng Zhi An <ngzhian@gmail.com> Co-authored-by: Alon Zakai <azakai@google.com> Co-authored-by: Ben Smith <binji@chromium.org> Co-authored-by: Ms2ger <Ms2ger@igalia.com> Co-authored-by: Alex Crichton <alex@alexcrichton.com>
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
See the multi-value proposal here: https://github.com/WebAssembly/multi-value This PR is built on top of the following PRs: * WebAssembly#1143 (merge nontrapping-float-to-int) * WebAssembly#1144 (merge sign-extension-ops)
See the multi-value proposal here:
https://github.com/WebAssembly/multi-value
This PR is built on top of the following PRs: