cfallin/waffle

Fuzz binaries not compiling

FrankReh opened this issue · 3 comments

Probably I'm building wrong. But if I git clone the repo, and cd to fuzz and run 'cargo build --release --all', I get a compile error saying that wasm_smith::Config is not a trait. Looking through the wasm-tools crate, I see that the wasm_smith code went through some changes recently where the wasm_smith::Config trait was removed.

But I'm also confused by the comments around wasm-smith in the top level waffle Cargo.toml which says the version should match what is used in the the fuzz directory. But they don't match. One is at 0.202 and the other is at 0.8.

Ah, I just pushed an upgrade to dependency versions yesterday and missed this part of the upgrade (probably I should have fuzz binaries built in CI). Thanks!

This project is very much under active development still and not really ready for external consumption, but if you're blocked by this, I'm happy to review a PR! I'll likely get around to it soon otherwise.

No, not at all blocked. I found your repo today and was very interested in it so started to play with the waffle build itself. Then thought I should see if I can test it through the fuzz builds and that didn't work. I won't worry about those until I see something change again.

In trying to grok what's going on in waffle, the implementation of ScopedMap confused me and then I saw the 'insert' is only used when the 'get' has failed so the implementation made sense again, but then I wondered what a 'get_or_insert' method would look like to avoid misuse of the type in the future and to avoid the double hash.

I know you haven't asked for feedback and you just got back to this crate after leaving it for a while but I saw your reference maybe yesterday about ISLE and that got me reading your blogs and then I realized Cranelift can't compile down to a WASM architecture and then I saw your comment somewhere that the work you were doing in waffle could be of interest to someone as a starting point, even though it is a WASM to WASM compiler itself. So just reading through the working waffle library has been educational.

I'm going to close this because I'm not blocked.

Congrats on the parental leave (if I understood that correctly).

No worries, and I was inspired to just go fix this; pushed to main just now.

And indeed the hope is to get this library to a robust/mature state and someday it could be used for other Wasm backends too. If you're interested in experimenting further and/or find any issues, by all means please feel free to file issues. Thanks again!