Skip to content
This repository has been archived by the owner on Aug 31, 2023. It is now read-only.

Function references merge #25

Merged
merged 325 commits into from
Mar 17, 2023
Merged

Conversation

dhil
Copy link

@dhil dhil commented Mar 16, 2023

This PR merges master with the latest changes of function-references/main.

rossberg and others added 30 commits November 16, 2021 09:03
SIMD is [phase 5](WebAssembly/simd#507), merge all the changes back into main spec.
Whether tail calls across module boundaries would guarantee tail call behavior was previously an open question, but @thibaudmichaud confirmed that they would guarantee tail call behavior in V8 in WebAssembly/tail-call#15 (comment).
Wow, this was painful...
All the vector stuff.
Describe correct tail call behavior across modules
Signed-off-by: Adrian Cole <[email protected]>
Co-authored-by: Andreas Rossberg <[email protected]>
This will return early right after generating JS from the wast test
files. It will not attempt to run the tests, or do the round trip
conversion from wasm <-> wast.

This is convenient for proposals to add tests without having to
update the reference interpreter with implementation, and generate those
tests to JS to run in other Wasm engines.

Fixes WebAssembly#1430.
…ind_test

Remove use of let from func.bind test
@dhil dhil requested a review from rossberg March 16, 2023 20:22
@dhil
Copy link
Author

dhil commented Mar 17, 2023

It seems the regression is related to imports of tags which carry payloads. The following program triggers the bug:

(module
  (tag $yield (export "yield"))
  (tag $spawn (export "spawn") (param i32))
)

(register "test")

(module
  (tag $spawn (import "test" "spawn") (param i32))
  (tag $yield (import "test" "yield")) ;; commenting this out makes the program validate.

  (elem declare func $main $thread1)

  (func $main
    (suspend $spawn (i32.const 0))
  )

  (func $thread1)
)

Copy link

@rossberg rossberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last comment fixes it. :)

interpreter/valid/match.ml Outdated Show resolved Hide resolved
interpreter/valid/match.ml Outdated Show resolved Hide resolved
interpreter/valid/valid.ml Outdated Show resolved Hide resolved
@rossberg
Copy link

Thanks for grinding through this!

This commit fixes the errors introduced by the merge of
function-references/main into this tree.
@dhil dhil merged commit 9f861ea into effect-handlers:master Mar 17, 2023
@dhil dhil deleted the wasmfx-funcref-merge branch March 17, 2023 14:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.