TLDR Tech / Dev
I hate compilers
The complexities of compiler behavior can lead to unexpected nondeterministic outputs, even when given the same input bytes, which complicates the goal of achieving reproducible builds. As part of developing Anubis, a system for WebAssembly-based proof of work checks, challenges arose with making sure that output from the WebAssembly compiler was consistent across different environments and versions of tools. To address these issues, including variances in tool versions and address layout differences, a series of measures was implemented to stabilize the build process and verify reproducibility through checksum verification across different architectures.
Read the full story