WebAssembly / WebAssembly/binaryen
wasm-dis should run validation
Nobody has claimed this yet.
- Dominant language
- WebAssembly
- Stars
- 8.6k
- Forks
- 885
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 69
Description
We recently allowed printing expression contents with respect to features in the Print pass (#3537) and we needed that as part of enabling multi-table modules in the Binaryen IR (#3517). But after I updated the tests, I noticed there's a difference between .from-wast and .fromBinary test files, in that .from-wast files were generated correctly with the correct features, but .fromBinary files were always generated with all features disabled.
Now, for .fromBinary tests we use wasm-as to compile a .wasm binary, and then use wasm-dis to check the text output. But since wasm-dis does not have the feature options, the only way it can print with features is if the module has a features section, wasm-as does not have an option to emit.
Two solutions are possible in my view:
- Add feature options to
wasm-dis, so we have the flexibility to print with the desired features. - Allow tools like
wasm-asandwasm-splitto emit a features section, so the features are read and applied while parsing the binary inwasm-dis.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading how .from-wast and .fromBinary tests generate and validate output, then inspect the wasm-dis and wasm-as entry points. Compare the two proposed approaches: feature options for wasm-dis, or feature-section emission by wasm-as and wasm-split. Done means .fromBinary output uses the intended features and the affected tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- wasm
- Domain
- cli, compilers, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100