Stream: git-wasmtime

Topic: wasmtime / issue #9566 Winch support for AArch64 tough to...


view this post on Zulip Wasmtime GitHub notifications bot (Nov 05 2024 at 21:21):

alexcrichton opened issue #9566:

I've done some recent refactoring over the past month or so of the tests/wast.rs test suite. The general idea is that it should not only assert that passing tests pass but it should additionally assert that failing tests fail. This ensures that we keep an accurate picture of where tests are at and we know to enable spec tests once support is implemented.

This is problematic on Winch for AArch64, however. The problem is that when a test is supposed to fail it's run anyway and it's expected to return an error through Result. Failures such as panics and segfaults are not currently recoverable. Currently, though, tests on the AArch64 backend for Winch often panic (e.g. todo!() items) or segfault (likely because something isn't finished yet).

The way that tests/wast.rs works for now is that it pretends that all tests require the reference-types feature for wasm which is hardcoded as "doesn't work on aarch64 winch". This causes all tests to fail early in Config::validate before the backend is used. This isn't great though because some tests do indeed pass on Winch right now and it might be reasonable to start ratcheting support to ensure it doesn't regress.

cc @saulecabrera and @vulc41n as y'all may be interested in this. I'll clarify that this is not an urgent issue by any means -- I don't intend to put pressure on either of y'all. Instead I wanted to make y'all aware of this if you're looking for future aarch64 work.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 05 2024 at 21:21):

alexcrichton added the winch label to Issue #9566.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 05 2024 at 21:22):

github-actions[bot] commented on issue #9566:

Subscribe to Label Action

cc @saulecabrera

<details>
This issue or pull request has been labeled: "winch"

Thus the following users have been cc'd because of the following labels:

To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.

Learn more.
</details>

view this post on Zulip Wasmtime GitHub notifications bot (Nov 05 2024 at 21:36):

saulecabrera commented on issue #9566:

This isn't great though because some tests do indeed pass on Winch right now and it might be reasonable to start ratcheting support to ensure it doesn't regress.

Agreed, thanks for putting this issue together (I'll add it to the Winch board if you don't mind) -- we're almost at parity with the x64 backend (see https://github.com/bytecodealliance/wasmtime/issues/8321#issue-2235957816). After finishing epoch my plan is to finalize the 11 instructions needed in order to have the aarch64 backend be at parity with x64, which will enable running spec tests in aarch64.

For the unrecoverable errors, I hope that https://github.com/bytecodealliance/wasmtime/issues/8096, will address that issue and make it easier to integrate with your refactoring for test handling. I will most likely address that one after having finished support for aarch64.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 05 2024 at 22:03):

alexcrichton commented on issue #9566:

That all sounds great to me :+1:


Last updated: Nov 22 2024 at 16:03 UTC