zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 9e2668cd2ecc587390335e1c9f6e1592a7bd6eb6 (tree)
parent 2e26cf83cf06b6204a1ea300403e7cf19e1e91e8
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Fri,  2 Aug 2024 15:37:23 -0700

Merge pull request #20906 from alexrp/repro-windows

`ci`: Add stage3/4 diff to Linux (aarch64) and windows (aarch64, x86_64) release scripts.
Diffstat:
Mci/aarch64-linux-release.sh | 16++++++++++++++++
Mci/aarch64-windows.ps1 | 19+++++++++++++++++++
Mci/x86_64-windows-release.ps1 | 19+++++++++++++++++++
3 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/ci/aarch64-linux-release.sh b/ci/aarch64-linux-release.sh @@ -64,6 +64,22 @@ stage3-release/bin/zig build test docs \ --zig-lib-dir "$PWD/../lib" \ -Denable-tidy +# Ensure that stage3 and stage4 are byte-for-byte identical. +stage3-release/bin/zig build \ + --prefix stage4-release \ + -Denable-llvm \ + -Dno-lib \ + -Doptimize=ReleaseFast \ + -Dstrip \ + -Dtarget=$TARGET \ + -Duse-zig-libcxx \ + -Dversion-string="$(stage3-release/bin/zig version)" + +# diff returns an error code if the files differ. +echo "If the following command fails, it means nondeterminism has been" +echo "introduced, making stage3 and stage4 no longer byte-for-byte identical." +diff stage3-release/bin/zig stage4-release/bin/zig + # Ensure that updating the wasm binary from this commit will result in a viable build. stage3-release/bin/zig build update-zig1 diff --git a/ci/aarch64-windows.ps1 b/ci/aarch64-windows.ps1 @@ -69,3 +69,22 @@ Write-Output "Main test suite..." -Dskip-non-native ` -Denable-symlinks-windows CheckLastExitCode + +# Ensure that stage3 and stage4 are byte-for-byte identical. +Write-Output "Build and compare stage4..." +& "stage3-release\bin\zig.exe" build ` + --prefix stage4-release ` + -Denable-llvm ` + -Dno-lib ` + -Doptimize=ReleaseFast ` + -Dstrip ` + -Dtarget="$TARGET" ` + -Duse-zig-libcxx ` + -Dversion-string="$(stage3-release\bin\zig version)" +CheckLastExitCode + +# Compare-Object returns an error code if the files differ. +Write-Output "If the following command fails, it means nondeterminism has been" +Write-Output "introduced, making stage3 and stage4 no longer byte-for-byte identical." +Compare-Object (Get-Content stage3-release\bin\zig.exe) (Get-Content stage4-release\bin\zig.exe) +CheckLastExitCode diff --git a/ci/x86_64-windows-release.ps1 b/ci/x86_64-windows-release.ps1 @@ -70,6 +70,25 @@ Write-Output "Main test suite..." -Denable-symlinks-windows CheckLastExitCode +# Ensure that stage3 and stage4 are byte-for-byte identical. +Write-Output "Build and compare stage4..." +& "stage3-release\bin\zig.exe" build ` + --prefix stage4-release ` + -Denable-llvm ` + -Dno-lib ` + -Doptimize=ReleaseFast ` + -Dstrip ` + -Dtarget="$TARGET" ` + -Duse-zig-libcxx ` + -Dversion-string="$(stage3-release\bin\zig version)" +CheckLastExitCode + +# Compare-Object returns an error code if the files differ. +Write-Output "If the following command fails, it means nondeterminism has been" +Write-Output "introduced, making stage3 and stage4 no longer byte-for-byte identical." +Compare-Object (Get-Content stage3-release\bin\zig.exe) (Get-Content stage4-release\bin\zig.exe) +CheckLastExitCode + Write-Output "Build x86_64-windows-msvc behavior tests using the C backend..." & "stage3-release\bin\zig.exe" test ` ..\test\behavior.zig `