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
Multi value! And even more fuzzing! #124
Commits on Sep 4, 2019
-
Make
InstrSeq
s holdTypeId
s for multi-valueInstead of holding a couple of `Box<[ValType]>`s for parameters and results, now they more accurately reflect the spec (and the multi-value extension of it). For simple, MVP wasm, they hold the optional return value type directly inline. For multi-value, they reference a `TypeId`. See the `NB` comment above `InstrSeqType` for details about why this split is beneficial, and we shouldn't *only* use `TypeId`.
Configuration menu - View commit details
-
Copy full SHA for 11f09d4 - Browse repository at this point
Copy the full SHA 11f09d4View commit details -
Add support for multi-value Wasm!
This commit adds support for parsing, emitting, and manipulating multi-value Wasm!
Configuration menu - View commit details
-
Copy full SHA for f5d4fc9 - Browse repository at this point
Copy the full SHA f5d4fc9View commit details -
Configuration menu - View commit details
-
Copy full SHA for fb6a699 - Browse repository at this point
Copy the full SHA fb6a699View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7764ab6 - Browse repository at this point
Copy the full SHA 7764ab6View commit details -
fuzz: Make the fuzzing infrastructure work with pluggable RNGs
This will let us define custom RNGs that are controlled via libFuzzer and/or AFL, so that we can get coverage-guided fuzzing instead of purely random fuzzing.
Configuration menu - View commit details
-
Copy full SHA for e1ab888 - Browse repository at this point
Copy the full SHA e1ab888View commit details -
Add support for fuzzing with libFuzzer via
cargo fuzz
Re-uses basically all of our existing fuzzing infrastructure, but uses libfuzzer to drive the "RNG" values that we generate Wat with. This lets us combine the benefits of coverage-guided fuzzing with our existing "structured" fuzzing.
Configuration menu - View commit details
-
Copy full SHA for d52b9f6 - Browse repository at this point
Copy the full SHA d52b9f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3a23b8 - Browse repository at this point
Copy the full SHA f3a23b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5bd08ce - Browse repository at this point
Copy the full SHA 5bd08ceView commit details -
Sort types deterministically before emitting them
This is not /strictly/ necessary because they are otherwise emitted in the order that they are added, which is usually the order that they are parsed. However, if one were adding types in a non-deterministic order, then we would emit types non-deterministically. Overall, this is just a nice robustness addition.
Configuration menu - View commit details
-
Copy full SHA for df2403d - Browse repository at this point
Copy the full SHA df2403dView commit details -
Module::emit_wasm is infallible
And so its signature should reflect that.
Configuration menu - View commit details
-
Copy full SHA for b8ce4a1 - Browse repository at this point
Copy the full SHA b8ce4a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for e79b0de - Browse repository at this point
Copy the full SHA e79b0deView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3c0b187 - Browse repository at this point
Copy the full SHA 3c0b187View commit details