13 hours ago
- The author discusses the challenges of non-deterministic compiler output, particularly when building WebAssembly from C/C++, citing issues like embedded date/time macros, clang invoking different versions of `wasm-opt`, and address layout dependencies in exception handling.
- To achieve reproducible builds, the author disables address-space randomization and creates architecture-specific SHA256 checksums for both x86_64 and arm64, ensuring at least per-architecture determinism.
- The work is part of implementing a WebAssembly-based proof of work check for Anubis, where the author uses `wasm2js` to recompile WebAssembly to JavaScript for clients with WASM disabled, but faces reproducibility hurdles in compiler toolchain dependencies.