name: wai cross-architecture byte-equality # The `replicate` determinism contract, checked on real silicon. WAI claims its # integer-exact decode paths (rANS entropy coder, integer fixed-point synthesis) # produce BYTE-IDENTICAL output on every machine. This matrix proves it: five # OS/arch combinations decode the same fixtures and assert the same golden # bytes — rANS streams produced by CompressAI's upstream encoder, and an # int_synth output hash produced on the reference machine (macOS arm64). One # diverging byte anywhere fails the suite. # # The conformance crate (`wai/byte-exact-conformance`) #[path]-includes the # pure-integer sources from wai-rs — no system codec libraries, no ONNX runtime # — so every leg runs in about a minute. on: pull_request: paths: - 'wai/byte-exact-conformance/**' - 'wai/wai-rs/src/neural/int_synth.rs' - 'wai/wai-rs/src/neural/jpegai_mans.rs' - '.github/workflows/wai-byte-equality.yml' push: branches: - main paths: - 'wai/byte-exact-conformance/**' - 'wai/wai-rs/src/neural/int_synth.rs' - 'wai/wai-rs/src/neural/jpegai_mans.rs' - '.github/workflows/wai-byte-equality.yml' jobs: byte-equality: name: ${{ matrix.label }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: # Self-hosted fleet labels, not GitHub-hosted images. macos-x86_64 is # dropped: no Intel-Mac runner exists in the fleet, and by the same # argument the cargo-classes matrix already makes, it adds no arch # coverage — x86_64 is held by linux-x86_64 and windows-x86_64, arm64 # by linux-aarch64 and the macos-arm64 reference. include: - { os: linux, label: linux-x86_64 } - { os: linux-arm64, label: linux-aarch64 } - { os: macos, label: macos-arm64 (reference) } - { os: windows, label: windows-x86_64 } steps: - name: Checkout uses: actions/checkout@v4 # Bootstrap rustup: the docker runner image ships no Rust, and # dtolnay/rust-toolchain cannot help — it calls `rustup`, which is absent. - name: Install Rust 1.97.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.97.1 rustup toolchain install 1.97.1 --profile minimal rustup default 1.97.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Decode fixtures, assert golden bytes working-directory: wai/byte-exact-conformance run: cargo test --release -- --nocapture