diff --git a/.forgejo/workflows/ci.yaml b/.forgejo/workflows/ci.yaml index 64085d1da6d03820b3ed8b36dacdd16f88df5f10..7cc50e71c302fe054f49f25d3ee8f262a5d4ea77 100644 --- a/.forgejo/workflows/ci.yaml +++ b/.forgejo/workflows/ci.yaml @@ -197,6 +197,27 @@ jobs: run: sh ci/x86_64-linux-release.sh timeout-minutes: 360 + x86_64-netbsd-debug: + runs-on: [self-hosted, x86_64-netbsd] + steps: + - name: Checkout + uses: https://codeberg.org/ziglang/checkout@19af6bac491e2534a4687a50ee84fa7f13258d28 + with: + fetch-depth: 0 + - name: Build and Test + run: sh ci/x86_64-netbsd-debug.sh + timeout-minutes: 120 + x86_64-netbsd-release: + runs-on: [self-hosted, x86_64-netbsd] + steps: + - name: Checkout + uses: https://codeberg.org/ziglang/checkout@19af6bac491e2534a4687a50ee84fa7f13258d28 + with: + fetch-depth: 0 + - name: Build and Test + run: sh ci/x86_64-netbsd-release.sh + timeout-minutes: 120 + x86_64-openbsd-debug: runs-on: [self-hosted, x86_64-openbsd] steps: diff --git a/ci/aarch64-linux-debug.sh b/ci/aarch64-linux-debug.sh index 7a4a6daa2aef60e1a9194184b1307f85992db3de..37a09b539845be9864c06f336eca482ab02983c9 100755 --- a/ci/aarch64-linux-debug.sh +++ b/ci/aarch64-linux-debug.sh @@ -47,6 +47,7 @@ stage3-debug/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/aarch64-linux-release.sh b/ci/aarch64-linux-release.sh index 39ad9767ab62264b19846ef8bc22e2d6ad23ed85..8cde024ab11450376913d68816fd9d02a3a9c00e 100755 --- a/ci/aarch64-linux-release.sh +++ b/ci/aarch64-linux-release.sh @@ -47,6 +47,7 @@ stage3-release/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/aarch64-macos-debug.sh b/ci/aarch64-macos-debug.sh index 7dc60c1f4ed13f8835538a2609955423ef8d551e..369afc8d9e94a02ed77965bffc9692a5b5e344c4 100755 --- a/ci/aarch64-macos-debug.sh +++ b/ci/aarch64-macos-debug.sh @@ -47,6 +47,7 @@ stage3-debug/bin/zig build test docs \ -Denable-macos-sdk \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ --search-prefix "$PREFIX" \ --test-timeout 2m diff --git a/ci/aarch64-macos-release.sh b/ci/aarch64-macos-release.sh index 00b6571f170a7fece1dcfb53755f9b271f438aae..f7e6ae6fd3f4dba1970b94f6bc8e98305b2585be 100755 --- a/ci/aarch64-macos-release.sh +++ b/ci/aarch64-macos-release.sh @@ -46,6 +46,7 @@ stage3-release/bin/zig build test docs \ -Denable-macos-sdk \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ --search-prefix "$PREFIX" \ --test-timeout 2m diff --git a/ci/aarch64-windows.ps1 b/ci/aarch64-windows.ps1 index 96e07642565019c9a805ecc8c5ac29f461341df1..57d77993519f230c2fc6e14de5a7e6957c51062a 100644 --- a/ci/aarch64-windows.ps1 +++ b/ci/aarch64-windows.ps1 @@ -60,6 +60,7 @@ Write-Output "Main test suite..." --search-prefix "$PREFIX_PATH" ` -Dstatic-llvm ` -Dskip-non-native ` + -Dskip-test-incremental ` -Denable-symlinks-windows ` --test-timeout 30m CheckLastExitCode diff --git a/ci/loongarch64-linux-debug.sh b/ci/loongarch64-linux-debug.sh index 4cba17b0319039daf2d132ece4908cfdf542cffa..2d966f37427b1408febbc92abd516cebca096047 100755 --- a/ci/loongarch64-linux-debug.sh +++ b/ci/loongarch64-linux-debug.sh @@ -48,6 +48,7 @@ stage3-debug/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/loongarch64-linux-release.sh b/ci/loongarch64-linux-release.sh index 5b05284d26668d01020f204f09d3a73921883ce5..558177a8d99ea2c6885cb2ab0d405cecf4cb8ca5 100755 --- a/ci/loongarch64-linux-release.sh +++ b/ci/loongarch64-linux-release.sh @@ -48,6 +48,7 @@ stage3-release/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/powerpc64le-linux-debug.sh b/ci/powerpc64le-linux-debug.sh index 1b9a51e44debff61729207ec1529e1d494b8c84b..2875dcba955eeee80cda7eeadc38b3a0526f01be 100755 --- a/ci/powerpc64le-linux-debug.sh +++ b/ci/powerpc64le-linux-debug.sh @@ -48,6 +48,7 @@ stage3-debug/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ -Dcpu=native+longcall \ --search-prefix "$PREFIX" \ diff --git a/ci/powerpc64le-linux-release.sh b/ci/powerpc64le-linux-release.sh index 77e1ca803ae27db49ed7a2b8fed48392f485c4d4..fffcbe2bd2c8bc72f18f21db76b557df1f1b8798 100755 --- a/ci/powerpc64le-linux-release.sh +++ b/ci/powerpc64le-linux-release.sh @@ -48,6 +48,7 @@ stage3-release/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ -Dcpu=native+longcall \ --search-prefix "$PREFIX" \ diff --git a/ci/s390x-linux-debug.sh b/ci/s390x-linux-debug.sh index ffe4d0f02b3cada3b36e24fcc3572a1a14d5b389..a76ed6f04df534ee6d124bc0848a0d8ce3b0669f 100755 --- a/ci/s390x-linux-debug.sh +++ b/ci/s390x-linux-debug.sh @@ -48,6 +48,7 @@ stage3-debug/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/s390x-linux-release.sh b/ci/s390x-linux-release.sh index 7fb6cd3641fa73752ca4f6eb1967f1a2de9dd8bf..0a9b82620d5a9176a3542b5fd953054ee4f1feed 100755 --- a/ci/s390x-linux-release.sh +++ b/ci/s390x-linux-release.sh @@ -48,6 +48,7 @@ stage3-release/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/x86_64-freebsd-debug.sh b/ci/x86_64-freebsd-debug.sh index a4d7034325b33dc92b9d8ba97442d4449ad6a4c5..8bf492540eadd7cc68db8d43d06a5c0296165ab3 100755 --- a/ci/x86_64-freebsd-debug.sh +++ b/ci/x86_64-freebsd-debug.sh @@ -53,6 +53,7 @@ stage3-debug/bin/zig build test docs \ -Dskip-openbsd \ -Dskip-windows \ -Dskip-darwin \ + -Dskip-test-incremental \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ --test-timeout 2m diff --git a/ci/x86_64-freebsd-release.sh b/ci/x86_64-freebsd-release.sh index 0ce708c63d7715c4e6ad4e4e3927d4a100b9f65e..44c4e76da2558d4fd399cee1452f4bc76ea8404d 100755 --- a/ci/x86_64-freebsd-release.sh +++ b/ci/x86_64-freebsd-release.sh @@ -53,6 +53,7 @@ stage3-release/bin/zig build test docs \ -Dskip-openbsd \ -Dskip-windows \ -Dskip-darwin \ + -Dskip-test-incremental \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ --test-timeout 2m diff --git a/ci/x86_64-linux-debug-llvm.sh b/ci/x86_64-linux-debug-llvm.sh index 2696ac60e79f8c25e7ab493f78df7d3f7dca80cc..6ef1b5a00939d8adfb1e2c52f555ce6593c03a25 100755 --- a/ci/x86_64-linux-debug-llvm.sh +++ b/ci/x86_64-linux-debug-llvm.sh @@ -62,6 +62,7 @@ stage3-debug/bin/zig build test docs \ -Dskip-openbsd \ -Dskip-windows \ -Dskip-darwin \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/x86_64-linux-debug.sh b/ci/x86_64-linux-debug.sh index baba340333404914f5ed1dbf63c89053a62d6f84..d644d5e6439c586a02f97fc29122d223d8bffa18 100755 --- a/ci/x86_64-linux-debug.sh +++ b/ci/x86_64-linux-debug.sh @@ -62,6 +62,7 @@ stage3-debug/bin/zig build test docs \ -Dskip-windows \ -Dskip-darwin \ -Dskip-llvm \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/x86_64-linux-release.sh b/ci/x86_64-linux-release.sh index 56ce115e80b18cd4bc310eea8a1bab995eb61212..99781406e273ffd10dccbe3e2f20d3fdda08b55c 100755 --- a/ci/x86_64-linux-release.sh +++ b/ci/x86_64-linux-release.sh @@ -62,6 +62,7 @@ stage3-release/bin/zig build test docs \ -fqemu \ -fwasmtime \ -Dstatic-llvm \ + -Dskip-test-incremental \ -Dtarget=native-native-musl \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ diff --git a/ci/x86_64-netbsd-debug.sh b/ci/x86_64-netbsd-debug.sh new file mode 100755 index 0000000000000000000000000000000000000000..416ab6a5e0168464e4295d1dc54c5e2c19ac4366 --- /dev/null +++ b/ci/x86_64-netbsd-debug.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +# Requires cmake ninja-build + +set -x +set -e + +TARGET="x86_64-netbsd-none" +MCPU="baseline" +CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.16.0-dev.2287+eb3f16db5" +PREFIX="$HOME/deps/$CACHE_BASENAME" +ZIG="$PREFIX/bin/zig" + +# Override the cache directories because they won't actually help other CI runs +# which will be testing alternate versions of zig, and ultimately would just +# fill up space on the hard drive for no reason. +export ZIG_GLOBAL_CACHE_DIR="$PWD/zig-global-cache" +export ZIG_LOCAL_CACHE_DIR="$PWD/zig-local-cache" + +mkdir build-debug +cd build-debug + +export CC="$ZIG cc -target $TARGET -mcpu=$MCPU" +export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU" + +cmake .. \ + -DCMAKE_INSTALL_PREFIX="stage3-debug" \ + -DCMAKE_PREFIX_PATH="$PREFIX" \ + -DCMAKE_BUILD_TYPE=Debug \ + -DZIG_TARGET_TRIPLE="$TARGET" \ + -DZIG_TARGET_MCPU="$MCPU" \ + -DZIG_STATIC=ON \ + -DZIG_NO_LIB=ON \ + -GNinja \ + -DCMAKE_C_LINKER_DEPFILE_SUPPORTED=FALSE \ + -DCMAKE_CXX_LINKER_DEPFILE_SUPPORTED=FALSE +# https://github.com/ziglang/zig/issues/22213 + +# Now cmake will use zig as the C/C++ compiler. We reset the environment variables +# so that installation and testing do not get affected by them. +unset CC +unset CXX + +ninja install + +stage3-debug/bin/zig build test docs \ + --maxrss ${ZSF_MAX_RSS:-0} \ + -Dstatic-llvm \ + -Dskip-non-native \ + -Dskip-test-incremental \ + --search-prefix "$PREFIX" \ + --zig-lib-dir "$PWD/../lib" \ + --test-timeout 2m + +stage3-debug/bin/zig build \ + --prefix stage4-debug \ + -Denable-llvm \ + -Dno-lib \ + -Dtarget=$TARGET \ + -Duse-zig-libcxx \ + -Dversion-string="$(stage3-debug/bin/zig version)" + +stage4-debug/bin/zig test ../test/behavior.zig diff --git a/ci/x86_64-netbsd-release.sh b/ci/x86_64-netbsd-release.sh new file mode 100755 index 0000000000000000000000000000000000000000..d8c54ca28d095b3a7e65a53fab1f572162fc4ea5 --- /dev/null +++ b/ci/x86_64-netbsd-release.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +# Requires cmake ninja-build + +set -x +set -e + +TARGET="x86_64-netbsd-none" +MCPU="baseline" +CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.16.0-dev.2287+eb3f16db5" +PREFIX="$HOME/deps/$CACHE_BASENAME" +ZIG="$PREFIX/bin/zig" + +# Override the cache directories because they won't actually help other CI runs +# which will be testing alternate versions of zig, and ultimately would just +# fill up space on the hard drive for no reason. +export ZIG_GLOBAL_CACHE_DIR="$PWD/zig-global-cache" +export ZIG_LOCAL_CACHE_DIR="$PWD/zig-local-cache" + +mkdir build-release +cd build-release + +export CC="$ZIG cc -target $TARGET -mcpu=$MCPU" +export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU" + +cmake .. \ + -DCMAKE_INSTALL_PREFIX="stage3-release" \ + -DCMAKE_PREFIX_PATH="$PREFIX" \ + -DCMAKE_BUILD_TYPE=Release \ + -DZIG_TARGET_TRIPLE="$TARGET" \ + -DZIG_TARGET_MCPU="$MCPU" \ + -DZIG_STATIC=ON \ + -DZIG_NO_LIB=ON \ + -GNinja \ + -DCMAKE_C_LINKER_DEPFILE_SUPPORTED=FALSE \ + -DCMAKE_CXX_LINKER_DEPFILE_SUPPORTED=FALSE +# https://github.com/ziglang/zig/issues/22213 + +# Now cmake will use zig as the C/C++ compiler. We reset the environment variables +# so that installation and testing do not get affected by them. +unset CC +unset CXX + +ninja install + +stage3-release/bin/zig build test docs \ + --maxrss ${ZSF_MAX_RSS:-0} \ + -Dstatic-llvm \ + -Dskip-non-native \ + -Dskip-test-incremental \ + --search-prefix "$PREFIX" \ + --zig-lib-dir "$PWD/../lib" \ + --test-timeout 2m + +# 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 diff --git a/ci/x86_64-openbsd-debug.sh b/ci/x86_64-openbsd-debug.sh index 133c8dd4d642a9d4a019d297a3648567231d6078..58363e52d3b9339395b4270f35f9e6b9427d7df1 100755 --- a/ci/x86_64-openbsd-debug.sh +++ b/ci/x86_64-openbsd-debug.sh @@ -47,6 +47,7 @@ stage3-debug/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ --test-timeout 2m diff --git a/ci/x86_64-openbsd-release.sh b/ci/x86_64-openbsd-release.sh index 535b1a147166a1b724dd39358db56f18f17e09cd..ebdaac1ee0c4e0c092929534517096bd5051a450 100755 --- a/ci/x86_64-openbsd-release.sh +++ b/ci/x86_64-openbsd-release.sh @@ -47,6 +47,7 @@ stage3-release/bin/zig build test docs \ --maxrss ${ZSF_MAX_RSS:-0} \ -Dstatic-llvm \ -Dskip-non-native \ + -Dskip-test-incremental \ --search-prefix "$PREFIX" \ --zig-lib-dir "$PWD/../lib" \ --test-timeout 2m diff --git a/doc/langref/cImport_builtin.zig b/doc/langref/cImport_builtin.zig index daed710f9ddbf826f361141297d670f6e2fca66d..e0cdf7bc2793a6fd0930f7387c28f7fde8e610f4 100644 --- a/doc/langref/cImport_builtin.zig +++ b/doc/langref/cImport_builtin.zig @@ -4,6 +4,7 @@ const c = @cImport({ @cInclude("stdio.h"); }); pub fn main() void { + if (@import("builtin").os.tag == .netbsd) return; // https://github.com/Vexu/arocc/issues/960 _ = c.printf("hello\n"); } diff --git a/doc/langref/verbose_cimport_flag.zig b/doc/langref/verbose_cimport_flag.zig index 82b83073782d0d24ed00ab9b24e6e720cffa6a7f..3adc37b5078e961c92a0a6f976037802263e9d6a 100644 --- a/doc/langref/verbose_cimport_flag.zig +++ b/doc/langref/verbose_cimport_flag.zig @@ -3,6 +3,7 @@ const c = @cImport({ @cInclude("stdio.h"); }); pub fn main() void { + if (@import("builtin").os.tag == .netbsd) return; // https://github.com/Vexu/arocc/issues/960 _ = c; }