Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fully enable Winch in the differential fuzzer #7932

Merged
merged 1 commit into from
Feb 14, 2024

Conversation

alexcrichton
Copy link
Member

This commit fully enables usage of Winch in the differential fuzzer against all other engines with no special cases. I attempted enabling winch for the other fuzzers as well but Winch doesn't currently implement all methods for generating various trampolines required so it's currently only limited to the differential fuzzer.

This adds Winch as an "engine" and additionally ensures that when configured various wasm proposals are disabled that Winch doesn't support (similar to how enabling wasmi disables proposals that wasmi doesn't support).

This does reduce fuzzing of Winch slightly in that the reference-types proposal is completely disabled for Winch rather than half-enabled where Winch doesn't implement externref operations yet but does implement funcref operations. This, however, enables integrating it more cleanly into the rest of the fuzzing infrastructure with fewer special cases.

This commit fully enables usage of Winch in the `differential` fuzzer
against all other engines with no special cases. I attempted enabling
winch for the other fuzzers as well but Winch doesn't currently
implement all methods for generating various trampolines required so
it's currently only limited to the `differential` fuzzer.

This adds Winch as an "engine" and additionally ensures that when
configured various wasm proposals are disabled that Winch doesn't
support (similar to how enabling `wasmi` disables proposals that `wasmi`
doesn't support).

This does reduce fuzzing of Winch slightly in that the reference-types
proposal is completely disabled for Winch rather than half-enabled where
Winch doesn't implement `externref` operations yet but does implement
`funcref` operations. This, however, enables integrating it more cleanly
into the rest of the fuzzing infrastructure with fewer special cases.
@alexcrichton alexcrichton requested review from a team as code owners February 14, 2024 00:06
@alexcrichton alexcrichton requested review from elliottt and pchickey and removed request for a team February 14, 2024 00:06
@pchickey pchickey removed their request for review February 14, 2024 00:40
@github-actions github-actions bot added the fuzzing Issues related to our fuzzing infrastructure label Feb 14, 2024
Copy link

Subscribe to Label Action

cc @fitzgen

This issue or pull request has been labeled: "fuzzing"

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

  • fitzgen: fuzzing

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

Learn more.

Copy link
Member

@saulecabrera saulecabrera left a comment

Choose a reason for hiding this comment

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

Thanks for working on this!

This does reduce fuzzing of Winch slightly in that the reference-types proposal is completely disabled for Winch rather than half-enabled where Winch doesn't implement externref operations yet but does implement funcref operations.

I think this is fine, we're starting the work on reference types, so we'd be able permanently enable fuzzing for funcref and externref soon-ish.

Given this change, I've taken the liberty to add myself to oss-fuzz (google/oss-fuzz#11602), as I'd like to monitor more closely any Winch fuzz bugs. Let me know if you're ok with that change.

@alexcrichton alexcrichton added this pull request to the merge queue Feb 14, 2024
@alexcrichton
Copy link
Member Author

Let me know if you're ok with that change.

Definitely!

Merged via the queue into bytecodealliance:main with commit 353dc27 Feb 14, 2024
19 checks passed
@alexcrichton alexcrichton deleted the fuzz-winch branch February 14, 2024 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fuzzing Issues related to our fuzzing infrastructure
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants