-
Notifications
You must be signed in to change notification settings - Fork 65
Request for reproducible build #153
Description
We use Wizer via Javy to compile their TS to WASM. Our customers need to prove their WASM builds, similar to what's done on blockchains. Today, Go customers can do so because Go has reproducible builds, but our TS customers will still need to use Docker because Wizer doesn't offer reproducible builds for the same input.
My ask is to add a flag to the CLI and a the builder that enables reproducible output from Wizer.
Claude suggested
smallest_gaps.sort_unstable_by_key(|g| g.gap); could be replaced with smallest_gaps.sort_by(|a, b| a.gap.cmp(&b.gap).then(a.index.cmp(&b.index)));, but that alone didn't suffice. Running on a Mac M2 and a Linux Docker image on my Mac still produced different binaries (Linux x64 had the same as Linux Arm when I specified a platform). The binaries even had different sizes.
In our case, the Javy plugin itself is compiled in a Docker, since Rust isn't deterministic, but it would be good if that could be verified once, then our customer code verified to use that plugin without requiring a Docker.