Commit e21b6a712d

Andrew Kelley <andrew@ziglang.org>
2022-11-22 04:15:22
CI: switch to GitHub Actions
1 parent f3d987d
.builds/freebsd.yml
@@ -1,8 +0,0 @@
-image: freebsd/latest
-secrets:
-  - 51bfddf5-86a6-4e01-8576-358c72a4a0a4
-  - be22288f-b1bc-4243-abe3-43d8f0e7079b
-sources:
-  - https://github.com/ziglang/zig
-tasks:
-  - build: cd zig && ./ci/srht/freebsd_script
.github/workflows/ci.yaml
@@ -10,8 +10,22 @@ jobs:
     steps:
       - name: Checkout
         uses: actions/checkout@v3
-      - name: Run Build Script
+      - name: Build and Test
         run: sh ./ci/linux/build-aarch64.sh
+  x86_64-linux-debug:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+      - name: Build and Test
+        run: sh ./ci/linux/build-x86_64-debug.sh
+  x86_64-linux-release:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+      - name: Build and Test
+        run: sh ./ci/linux/build-x86_64-release.sh
   x86_64-macos:
     strategy:
       matrix:
@@ -47,7 +61,7 @@ jobs:
       - name: Run Build Script
         run: ./ci/windows/build.ps1
   build-tarballs:
-    needs: [aarch64-linux, x86_64-macos, aarch64-macos, x86_64-windows]
+    needs: [aarch64-linux, x86_64-macos, aarch64-macos, x86_64-windows, x86_64-linux-debug, x86_64-linux-release]
     runs-on: [self-hosted, Linux, aarch64]
     steps:
       - name: Checkout
ci/azure/macos_script
@@ -1,106 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-brew update && brew install ncurses s3cmd
-
-ZIGDIR="$(pwd)"
-ARCH="x86_64"
-TARGET="$ARCH-macos-none"
-MCPU="baseline"
-CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
-PREFIX="$HOME/$CACHE_BASENAME"
-JOBS="-j2"
-
-rm -rf $PREFIX
-cd $HOME
-
-wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
-tar xf "$CACHE_BASENAME.tar.xz"
-
-ZIG="$PREFIX/bin/zig"
-export CC="$ZIG cc -target $TARGET -mcpu=$MCPU"
-export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
-
-cd $ZIGDIR
-
-# Make the `zig version` number consistent.
-# This will affect the cmake command below.
-git config core.abbrev 9
-git fetch --unshallow || true
-git fetch --tags
-
-mkdir build
-cd build
-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
-
-# 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
-
-make $JOBS install
-
-stage3-release/bin/zig build test docs \
-  --zig-lib-dir "$(pwd)/../lib" \
-  -Denable-macos-sdk \
-  -Dstatic-llvm \
-  -Dskip-non-native \
-  --search-prefix "$PREFIX"
-
-# Produce the experimental std lib documentation.
-mkdir -p "stage3-release/doc/std"
-stage3-release/bin/zig test "$(pwd)/../lib/std/std.zig" \
-  --zig-lib-dir "$(pwd)/../lib" \
-  -femit-docs="$(pwd)/stage3-release/doc/std" \
-  -fno-emit-bin
-
-if [ "${BUILD_REASON}" != "PullRequest" ]; then
-  # Remove the unnecessary bin dir in stage3-release/bin/zig
-  mv stage3-release/bin/zig stage3-release/
-  rmdir stage3-release/bin
-
-  # Remove the unnecessary zig dir in stage3-release/lib/zig/std/std.zig
-  mv stage3-release/lib/zig stage3-release/lib2
-  rmdir stage3-release/lib
-  mv stage3-release/lib2 stage3-release/lib
-
-  mv ../LICENSE stage3-release/
-  mv ../zig-cache/langref.html stage3-release/doc
-
-  VERSION=$(stage3-release/zig version)
-  DIRNAME="zig-macos-$ARCH-$VERSION"
-  TARBALL="$DIRNAME.tar.xz"
-  mv stage3-release "$DIRNAME"
-  tar cfJ "$TARBALL" "$DIRNAME"
-
-  mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
-  s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
-
-  SHASUM=$(shasum -a 256 $TARBALL | cut '-d ' -f1)
-  BYTESIZE=$(wc -c < $TARBALL)
-
-  JSONFILE="macos-$GITBRANCH.json"
-  touch $JSONFILE
-  echo "{\"tarball\": \"$TARBALL\"," >>$JSONFILE
-  echo "\"shasum\": \"$SHASUM\"," >>$JSONFILE
-  echo "\"size\": \"$BYTESIZE\"}" >>$JSONFILE
-
-  s3cmd put -P --add-header="Cache-Control: max-age=0, must-revalidate" "$JSONFILE" "s3://ziglang.org/builds/$JSONFILE"
-  s3cmd put -P "$JSONFILE" "s3://ziglang.org/builds/$ARCH-macos-$VERSION.json"
-
-  # `set -x` causes these variables to be mangled.
-  # See https://developercommunity.visualstudio.com/content/problem/375679/pipeline-variable-incorrectly-inserts-single-quote.html
-  set +x
-  echo "##vso[task.setvariable variable=tarball;isOutput=true]$TARBALL"
-  echo "##vso[task.setvariable variable=shasum;isOutput=true]$SHASUM"
-  echo "##vso[task.setvariable variable=bytesize;isOutput=true]$BYTESIZE"
-  echo "##vso[task.setvariable variable=version;isOutput=true]$VERSION"
-fi
ci/azure/on_master_success
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-# We do not set -x because this would leak the oauth access token.
-set +x
-
-set -e
-
-sudo apt-get update -y
-sudo apt-get install -y curl jq
-
-OAUTH_TOKEN="$(cat "$DOWNLOADSECUREFILE_SECUREFILEPATH")"
-./ci/srht/on_master_success "$VERSION" "$OAUTH_TOKEN"
ci/azure/pipelines.yml
@@ -1,169 +0,0 @@
-jobs:
-- job: BuildMacOS
-  pool:
-    vmImage: 'macOS-11'
-  timeoutInMinutes: 360
-  steps:
-  - task: DownloadSecureFile@1
-    inputs:
-      secureFile: s3cfg
-  - script: ci/azure/macos_script
-    name: main
-    displayName: 'Build and test'
-- job: BuildWindows
-  timeoutInMinutes: 360
-  pool:
-    vmImage: 'windows-2019'
-  variables:
-    TARGET: 'x86_64-windows-gnu'
-    ZIG_LLVM_CLANG_LLD_NAME: 'zig+llvm+lld+clang-${{ variables.TARGET }}-0.11.0-dev.25+499dddb4c'
-    ZIG_LLVM_CLANG_LLD_URL: 'https://ziglang.org/deps/${{ variables.ZIG_LLVM_CLANG_LLD_NAME }}.zip'
-  steps:
-  - pwsh: |
-      (New-Object Net.WebClient).DownloadFile("$(ZIG_LLVM_CLANG_LLD_URL)", "${ZIG_LLVM_CLANG_LLD_NAME}.zip")
-      & 'C:\Program Files\7-Zip\7z.exe' x "${ZIG_LLVM_CLANG_LLD_NAME}.zip"
-    name: install
-    displayName: 'Install ZIG/LLVM/CLANG/LLD'
-
-  - pwsh: |
-      Set-Variable -Name ZIGLIBDIR -Value "$(Get-Location)\lib"
-      Set-Variable -Name ZIGINSTALLDIR -Value "$(Get-Location)\stage3-release"
-      Set-Variable -Name ZIGPREFIXPATH -Value "$(Get-Location)\$(ZIG_LLVM_CLANG_LLD_NAME)"
-
-      function CheckLastExitCode {
-        if (!$?) {
-          exit 1
-        }
-        return 0
-      }
-
-      # Make the `zig version` number consistent.
-      # This will affect the `zig build` command below which uses `git describe`.
-      git config core.abbrev 9
-      git fetch --tags
-      if ((git rev-parse --is-shallow-repository) -eq "true") {
-        git fetch --unshallow # `git describe` won't work on a shallow repo
-      }
-
-      & "$ZIGPREFIXPATH\bin\zig.exe" build `
-        --prefix "$ZIGINSTALLDIR" `
-        --search-prefix "$ZIGPREFIXPATH" `
-        --zig-lib-dir "$ZIGLIBDIR" `
-        -Denable-stage1 `
-        -Dstatic-llvm `
-        -Drelease `
-        -Dstrip `
-        -Duse-zig-libcxx `
-        -Dtarget=$(TARGET)
-      CheckLastExitCode
-    name: build
-    displayName: 'Build'
-
-  - pwsh: |
-      Set-Variable -Name ZIGLIBDIR -Value "$(Get-Location)\lib"
-      Set-Variable -Name ZIGINSTALLDIR -Value "$(Get-Location)\stage3-release"
-      Set-Variable -Name ZIGPREFIXPATH -Value "$(Get-Location)\$(ZIG_LLVM_CLANG_LLD_NAME)"
-
-      function CheckLastExitCode {
-        if (!$?) {
-          exit 1
-        }
-        return 0
-      }
-
-      & "$ZIGINSTALLDIR\bin\zig.exe" build test docs `
-        --search-prefix "$ZIGPREFIXPATH" `
-        -Dstatic-llvm `
-        -Dskip-non-native
-      CheckLastExitCode
-
-      # Produce the experimental std lib documentation.
-      mkdir "$ZIGINSTALLDIR\doc\std" -force
-      & "$ZIGINSTALLDIR\bin\zig.exe" test "$ZIGLIBDIR\std\std.zig" `
-        --zig-lib-dir "$ZIGLIBDIR" `
-        -femit-docs="$ZIGINSTALLDIR\doc\std" `
-        -fno-emit-bin
-
-    name: test
-    displayName: 'Test'
-
-  - task: DownloadSecureFile@1
-    inputs:
-      name: aws_credentials
-      secureFile: aws_credentials
-
-  - pwsh: |
-      $Env:AWS_SHARED_CREDENTIALS_FILE = "$Env:DOWNLOADSECUREFILE_SECUREFILEPATH"
-
-      # Workaround Azure networking issue
-      # https://github.com/aws/aws-cli/issues/5749
-      $Env:AWS_EC2_METADATA_DISABLED = "true"
-      $Env:AWS_REGION = "us-west-2"
-
-      mv LICENSE stage3-release/
-      mv zig-cache/langref.html stage3-release/
-      mv stage3-release/bin/zig.exe stage3-release/
-      rmdir stage3-release/bin
-
-      # Remove the unnecessary zig dir in $prefix/lib/zig/std/std.zig
-      mv stage3-release/lib/zig stage3-release/lib2
-      rmdir stage3-release/lib
-      mv stage3-release/lib2 stage3-release/lib
-
-      Set-Variable -Name VERSION -Value $(./stage3-release/zig.exe version)
-      Set-Variable -Name DIRNAME -Value "zig-windows-x86_64-$VERSION"
-      Set-Variable -Name TARBALL -Value "$DIRNAME.zip"
-      mv stage3-release "$DIRNAME"
-      7z a "$TARBALL" "$DIRNAME"
-
-      aws s3 cp `
-      "$TARBALL" `
-      s3://ziglang.org/builds/ `
-      --acl public-read `
-      --cache-control 'public, max-age=31536000, immutable'
-
-      Set-Variable -Name SHASUM -Value (Get-FileHash "$TARBALL" -Algorithm SHA256 | select-object -ExpandProperty Hash).ToLower()
-      Set-Variable -Name BYTESIZE -Value (Get-Item "$TARBALL").length
-
-      Set-Variable -Name JSONFILE -Value "windows-${Env:BUILD_SOURCEBRANCHNAME}.json"
-      echo $null > $JSONFILE
-      echo ('{"tarball": "' + $TARBALL  + '",') >> $JSONFILE
-      echo ('"shasum":   "' + $SHASUM   + '",') >> $JSONFILE
-      echo ('"size": '      + $BYTESIZE + '}' ) >> $JSONFILE
-
-      aws s3 cp `
-      "$JSONFILE" `
-      s3://ziglang.org/builds/ `
-      --acl public-read `
-      --cache-control 'max-age=0, must-revalidate'
-
-      aws s3 cp `
-      "$JSONFILE" `
-      "s3://ziglang.org/builds/x86_64-windows-${VERSION}.json" `
-      --acl public-read
-
-      echo "##vso[task.setvariable variable=tarball;isOutput=true]$TARBALL"
-      echo "##vso[task.setvariable variable=shasum;isOutput=true]$SHASUM"
-      echo "##vso[task.setvariable variable=bytesize;isOutput=true]$BYTESIZE"
-
-    name: upload
-    condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
-    displayName: 'Upload'
-
-- job: OnMasterSuccess
-  dependsOn:
-  - BuildMacOS
-  - BuildWindows
-  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
-  strategy:
-    maxParallel: 1
-  pool:
-    vmImage: 'ubuntu-20.04'
-  variables:
-    version: $[ dependencies.BuildMacOS.outputs['main.version'] ]
-  steps:
-  - task: DownloadSecureFile@1
-    inputs:
-      secureFile: oauth_token
-  - script: ci/azure/on_master_success
-    displayName: 'master branch success hook'
ci/linux/build-tarballs.sh
@@ -12,7 +12,7 @@ WORKDIR="$(pwd)"
 ARCH="$(uname -m)"
 TARGET="$ARCH-linux-musl"
 MCPU="baseline"
-CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
+CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.256+271cc52a1"
 PREFIX="$HOME/deps/$CACHE_BASENAME"
 ZIG="$PREFIX/bin/zig" 
 
@@ -45,7 +45,6 @@ unset CXX
 
 ninja install
 
-# Make sure our ZIG_VERSION below is correct.
 ZIG_VERSION="$(stage3-release/bin/zig version)"
 BOOTSTRAP_SRC="$WORKDIR/zig-bootstrap"
 TARBALLS_DIR="$WORKDIR/tarballs"
@@ -56,29 +55,46 @@ rm -rf zig
 cp -r "$ZIGDIR" ./
 sed -i "/^ZIG_VERSION=\".*\"\$/c\\ZIG_VERSION=\"$ZIG_VERSION\"" build
 
-CMAKE_GENERATOR=Ninja ./build aarch64-linux-musl baseline
-CMAKE_GENERATOR=Ninja ./build x86_64-linux-musl baseline
-#CMAKE_GENERATOR=Ninja ./build x86-linux-musl baseline
-#CMAKE_GENERATOR=Ninja ./build riscv64-linux-musl baseline
-#CMAKE_GENERATOR=Ninja ./build arm-linux-musleabihf generic+v7a
-CMAKE_GENERATOR=Ninja ./build x86_64-macos-none baseline
-CMAKE_GENERATOR=Ninja ./build aarch64-macos-none apple_a14
-CMAKE_GENERATOR=Ninja ./build x86_64-windows-gnu baseline
-#CMAKE_GENERATOR=Ninja ./build x86-windows-gnu baseline
-#CMAKE_GENERATOR=Ninja ./build aarch64-windows-gnu baseline
+# Unfortunately Debian's cmake (3.14.4) is too old for zig-bootstrap.
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-linux-musl baseline
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-linux-musl baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86-linux-musl baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build riscv64-linux-musl baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build arm-linux-musleabihf generic+v7a
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-macos-none baseline
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-macos-none apple_a14
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-windows-gnu baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86-windows-gnu baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-windows-gnu baseline
 
 ZIG="$BOOTSTRAP_SRC/out/host/bin/zig"
 
-cd "$ZIGDIR"
-SRC_TARBALL="$TARBALLS_DIR/zig-$ZIG_VERSION.tar.xz"
-git archive --format=tar.xz -o "$SRC_TARBALL" --prefix=zig-$ZIG_VERSION/ $ZIG_VERSION
+rm -rf "$TARBALLS_DIR"
+mkdir "$TARBALLS_DIR"
+cd "$TARBALLS_DIR"
+
+cp -r "$ZIGDIR" ./
+rm -rf \
+  "zig/.github" \
+  "zig/.gitignore" \
+  "zig/.git" \
+  "zig/ci" \
+  "zig/CODE_OF_CONDUCT.md" \
+  "zig/CONTRIBUTING.md" \
+  "zig/.builds" \
+  "zig/build" \
+  "zig/build-release" \
+  "zig/build-debug" \
+  "zig/zig-cache"
+mv zig "zig-$ZIG_VERSION"
+tar cfJ "zig-$ZIG_VERSION.tar.xz" "zig-$ZIG_VERSION"
 
 cd "$BOOTSTRAP_SRC"
 "$ZIG" build --build-file zig/build.zig docs
 LANGREF_HTML="$BOOTSTRAP_SRC/zig/zig-cache/langref.html"
+# Look for HTML errors.
+tidy --drop-empty-elements no -qe "$LANGREF_HTML"
 
-rm -rf "$TARBALLS_DIR"
-mkdir "$TARBALLS_DIR"
 cd "$TARBALLS_DIR"
 
 cp -r $BOOTSTRAP_SRC/out/zig-aarch64-linux-musl-baseline zig-linux-aarch64-$ZIG_VERSION/
@@ -166,17 +182,17 @@ mkdir zig-macos-x86_64-$ZIG_VERSION/doc/
 #mkdir zig-freebsd-x86_64-$ZIG_VERSION/doc/
 
 cd $REL_SRC_BUILD
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-aarch64 -target aarch64-linux-musl -fno-emit-bin 
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-armv7a -target arm-linux-musl -mcpu=generic+v7a -fno-emit-bin 
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86 -target x86-linux-musl -fno-emit-bin 
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-riscv64 -target riscv64-linux-musl -fno-emit-bin 
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86_64 -target x86_64-linux-musl -fno-emit-bin 
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86 -target x86-windows-gnu -fno-emit-bin 
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86_64 -target x86_64-windows-gnu -fno-emit-bin 
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-aarch64 -target aarch64-windows-gnu -fno-emit-bin 
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-x86_64 -target x86_64-macos -fno-emit-bin 
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-aarch64 -target aarch64-macos -fno-emit-bin 
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-freebsd-x86_64 -target x86_64-freebsd -fno-emit-bin 
+stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-aarch64 -target aarch64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
+#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-armv7a -target arm-linux-musl -mcpu=generic+v7a -fno-emit-bin --zig-lib-dir ../lib
+#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86 -target x86-linux-musl -fno-emit-bin --zig-lib-dir ../lib
+#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-riscv64 -target riscv64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
+stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86_64 -target x86_64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
+#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86 -target x86-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
+stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86_64 -target x86_64-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
+#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-aarch64 -target aarch64-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
+stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-x86_64 -target x86_64-macos -fno-emit-bin --zig-lib-dir ../lib
+stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-aarch64 -target aarch64-macos -fno-emit-bin --zig-lib-dir ../lib
+#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-freebsd-x86_64 -target x86_64-freebsd -fno-emit-bin --zig-lib-dir ../lib
 
 cd "$TARBALLS_DIR"
 cp -r $REL_SRC_BUILD/doc-linux-aarch64 zig-linux-aarch64-$ZIG_VERSION/doc/std
@@ -203,18 +219,6 @@ cp $LANGREF_HTML zig-macos-aarch64-$ZIG_VERSION/doc/
 cp $LANGREF_HTML zig-macos-x86_64-$ZIG_VERSION/doc/
 #cp $LANGREF_HTML zig-freebsd-x86_64-$ZIG_VERSION/doc/
 
-#rm -rf zig-linux-aarch64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-armv7a-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-x86-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-riscv64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-x86_64-$ZIG_VERSION/doc/std/src
-##rm -rf zig-windows-x86-$ZIG_VERSION/doc/std/src
-#rm -rf zig-windows-x86_64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-windows-aarch64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-macos-aarch64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-macos-x86_64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-freebsd-x86_64-$ZIG_VERSION/doc/std/src
-
 tar cJf zig-linux-aarch64-$ZIG_VERSION.tar.xz zig-linux-aarch64-$ZIG_VERSION/
 #tar cJf zig-linux-armv7a-$ZIG_VERSION.tar.xz zig-linux-armv7a-$ZIG_VERSION/
 #tar cJf zig-linux-x86-$ZIG_VERSION.tar.xz zig-linux-x86-$ZIG_VERSION/
@@ -241,8 +245,9 @@ s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" z
 s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-macos-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
 #s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-freebsd-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
 
-export SRC_SHASUM=$(sha256sum $SRC_TARBALL | cut '-d ' -f1)
-export SRC_BYTESIZE=$(wc -c < $SRC_TARBALL)
+export SRC_TARBALL="zig-$ZIG_VERSION.tar.xz"
+export SRC_SHASUM=$(sha256sum "zig-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)
+export SRC_BYTESIZE=$(wc -c < "zig-$ZIG_VERSION.tar.xz")
 
 export X86_64_WINDOWS_TARBALL="zig-windows-x86_64-$ZIG_VERSION.zip"
 export X86_64_WINDOWS_BYTESIZE=$(wc -c < "zig-windows-x86_64-$ZIG_VERSION.zip")
@@ -260,9 +265,9 @@ export X86_64_LINUX_TARBALL="zig-linux-x86_64-$ZIG_VERSION.tar.xz"
 export X86_64_LINUX_BYTESIZE=$(wc -c < "zig-linux-x86_64-$ZIG_VERSION.tar.xz")
 export X86_64_LINUX_SHASUM="$(sha256sum "zig-linux-x86_64-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)"
 
-#export AARCH64_LINUX_TARBALL="zig-linux-aarch64-$ZIG_VERSION.tar.xz"
-#export AARCH64_LINUX_BYTESIZE=$(wc -c < "zig-linux-aarch64-$ZIG_VERSION.tar.xz")
-#export AARCH64_LINUX_SHASUM="$(sha256sum "zig-linux-aarch64-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)"
+export AARCH64_LINUX_TARBALL="zig-linux-aarch64-$ZIG_VERSION.tar.xz"
+export AARCH64_LINUX_BYTESIZE=$(wc -c < "zig-linux-aarch64-$ZIG_VERSION.tar.xz")
+export AARCH64_LINUX_SHASUM="$(sha256sum "zig-linux-aarch64-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)"
 
 #export X86_64_FREEBSD_TARBALL="zig-freebsd-x86_64-$ZIG_VERSION.tar.xz"
 #export X86_64_FREEBSD_BYTESIZE=$(wc -c < "zig-freebsd-x86_64-$ZIG_VERSION.tar.xz")
@@ -276,9 +281,9 @@ export MASTER_DATE="$(date +%Y-%m-%d)"
 export MASTER_VERSION="$ZIG_VERSION"
 
 # Create index.json and update the website repo.
-CIDIR="$ZIGDIR/ci"
-cd "$CIDIR"
+cd "$ZIGDIR/ci"
 "$ZIG" run update-download-page.zig
+mv out "$TARBALLS_DIR/out"
 
 cd "$WORKDIR/www.ziglang.org"
 # This is the user when pushing to the website repo.
@@ -286,7 +291,7 @@ git config user.email "ziggy@ziglang.org"
 git config user.name "Ziggy"
 git pull
 
-cp "$CIDIR/out/index.json" data/releases.json
+cp "$TARBALLS_DIR/out/index.json" data/releases.json
 git add data/releases.json
 git commit -m "CI: update releases"
 git push origin master
@@ -304,7 +309,7 @@ git push origin master
 # * Figure out how to adjust the Cloudfront settings to increase the max size for
 #   auto-compressed objects.
 # * Migrate to fastly.
-DOCDIR="$REL_SRC_BUILD/doc-linux-aarch64"
+DOCDIR="$TARBALLS_DIR/zig-linux-aarch64-$ZIG_VERSION/doc"
 s3cmd put -P --no-mime-magic \
   --add-header="Cache-Control: max-age=0, must-revalidate" \
   "$LANGREF_HTML" s3://ziglang.org/documentation/master/index.html
ci/zinc/linux_test_stage3_debug โ†’ ci/linux/build-x86_64-debug.sh
@@ -3,49 +3,55 @@
 set -x
 set -e
 
+ZIGDIR="$(pwd)"
 ARCH="$(uname -m)"
-DEPS_LOCAL="/deps/local"
+DEPS_LOCAL="$HOME/local"
 OLD_ZIG="$DEPS_LOCAL/bin/zig"
 TARGET="${ARCH}-linux-musl"
 MCPU="baseline"
 
+mkdir -p "$DEPS_LOCAL"
+cd "$DEPS_LOCAL"
+
+wget https://ziglang.org/deps/zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+tar x --strip-components=1 -f zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+
+wget https://ziglang.org/deps/qemu-linux-x86_64-6.1.0.1.tar.xz
+tar x --strip-components=1 -f qemu-linux-x86_64-6.1.0.1.tar.xz
+
+wget https://github.com/bytecodealliance/wasmtime/releases/download/v2.0.2/wasmtime-v2.0.2-x86_64-linux.tar.xz
+tar x --strip-components=1 -f wasmtime-v2.0.2-x86_64-linux.tar.xz
+rm -f LICENSE README.md
+mv wasmtime bin/
+
 export PATH=$DEPS_LOCAL/bin:$PATH
 
+cd "$ZIGDIR"
 echo "building stage3-debug with zig version $($OLD_ZIG version)"
 
-# Override the cache directories so that we don't clobber with the release
-# testing script which is running concurrently and in the same directory.
-# Normally we want processes to cooperate, but in this case we want them isolated.
-export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-cache-local-debug"
-export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-cache-global-debug"
-
 export CC="$OLD_ZIG cc -target $TARGET -mcpu=$MCPU"
 export CXX="$OLD_ZIG c++ -target $TARGET -mcpu=$MCPU"
 
-mkdir build-debug
-cd build-debug
+mkdir build
+cd build
 cmake .. \
   -DCMAKE_INSTALL_PREFIX="$(pwd)/stage3" \
   -DCMAKE_PREFIX_PATH="$DEPS_LOCAL" \
   -DCMAKE_BUILD_TYPE=Debug \
   -DZIG_STATIC=ON \
-  -DZIG_USE_LLVM_CONFIG=OFF \
-  -GNinja
+  -DZIG_USE_LLVM_CONFIG=OFF
 
 # 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
+make -j2 install
 
 echo "Looking for non-conforming code formatting..."
 stage3/bin/zig fmt --check .. \
   --exclude ../test/cases/ \
-  --exclude ../build-debug \
-  --exclude ../build-release \
-  --exclude "$ZIG_LOCAL_CACHE_DIR" \
-  --exclude "$ZIG_GLOBAL_CACHE_DIR"
+  --exclude ../build
 
 # simultaneously test building self-hosted without LLVM and with 32-bit arm
 stage3/bin/zig build -Dtarget=arm-linux-musleabihf
@@ -57,6 +63,3 @@ stage3/bin/zig build test \
   -Dtarget=native-native-musl \
   --search-prefix "$DEPS_LOCAL" \
   --zig-lib-dir "$(pwd)/../lib"
-
-# Explicit exit helps show last command duration.
-exit
ci/linux/build-x86_64-release.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+set -x
+set -e
+
+ZIGDIR="$(pwd)"
+ARCH="$(uname -m)"
+DEPS_LOCAL="$HOME/local"
+OLD_ZIG="$DEPS_LOCAL/bin/zig"
+TARGET="${ARCH}-linux-musl"
+MCPU="baseline"
+
+mkdir -p "$DEPS_LOCAL"
+cd "$DEPS_LOCAL"
+
+wget https://ziglang.org/deps/zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+tar x --strip-components=1 -f zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+
+wget https://ziglang.org/deps/qemu-linux-x86_64-6.1.0.1.tar.xz
+tar x --strip-components=1 -f qemu-linux-x86_64-6.1.0.1.tar.xz
+
+wget https://github.com/bytecodealliance/wasmtime/releases/download/v2.0.2/wasmtime-v2.0.2-x86_64-linux.tar.xz
+tar x --strip-components=1 -f wasmtime-v2.0.2-x86_64-linux.tar.xz
+rm -f LICENSE README.md
+mv wasmtime bin/
+
+export PATH=$DEPS_LOCAL/bin:$PATH
+
+cd "$ZIGDIR"
+echo "building stage3-release with zig version $($OLD_ZIG version)"
+
+export CC="$OLD_ZIG cc -target $TARGET -mcpu=$MCPU"
+export CXX="$OLD_ZIG c++ -target $TARGET -mcpu=$MCPU"
+
+mkdir build
+cd build
+cmake .. \
+  -DCMAKE_INSTALL_PREFIX="$(pwd)/stage3" \
+  -DCMAKE_PREFIX_PATH="$DEPS_LOCAL" \
+  -DCMAKE_BUILD_TYPE=Release \
+  -DZIG_TARGET_TRIPLE="$TARGET" \
+  -DZIG_TARGET_MCPU="$MCPU" \
+  -DZIG_STATIC=ON
+
+# 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
+
+make -j2 install
+
+"stage3/bin/zig" build test \
+  -fqemu \
+  -fwasmtime \
+  -Dstatic-llvm \
+  -Dtarget=native-native-musl \
+  --search-prefix "$DEPS_LOCAL" \
+  --zig-lib-dir "$(pwd)/../lib"
+
+"stage3/bin/zig" build \
+  --prefix stage4 \
+  -Dconfig_h="build/config.h" \
+  -Denable-llvm \
+  -Denable-stage1 \
+  -Dno-lib \
+  -Drelease \
+  -Dstrip \
+  -Dtarget=x86_64-linux-musl \
+  -Duse-zig-libcxx \
+  -Dversion-string="$(stage3/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/bin/zig stage4/bin/zig
ci/srht/freebsd_script
@@ -1,114 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-sudo pkg update -fq
-sudo pkg install -y cmake py39-s3cmd wget curl jq samurai
-
-ZIGDIR="$(pwd)"
-TARGET="x86_64-freebsd-gnu"
-MCPU="baseline"
-CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
-PREFIX="$HOME/$CACHE_BASENAME"
-
-cd $HOME
-wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
-tar xf "$CACHE_BASENAME.tar.xz"
-
-cd $ZIGDIR
-
-# Make the `zig version` number consistent.
-# This will affect the cmake command below.
-git config core.abbrev 9
-git fetch --unshallow || true
-git fetch --tags
-
-# SourceHut reports that it is a terminal that supports escape codes, but it
-# is a filthy liar. Here we tell Zig to not try to send any terminal escape
-# codes to show progress.
-export TERM=dumb
-
-mkdir build
-cd build
-
-
-cmake .. \
-  -DCMAKE_BUILD_TYPE=Release \
-  -DCMAKE_PREFIX_PATH=$PREFIX \
-  -DZIG_TARGET_TRIPLE="$TARGET" \
-  -DZIG_TARGET_MCPU="$MCPU" \
-  -DZIG_STATIC=ON \
-  -GNinja
-
-# TODO: eliminate this workaround. Without this, zig does not end up passing
-# -isystem /usr/include when building libc++, resulting in #include <sys/endian.h>
-# "file not found" errors.
-echo "include_dir=/usr/include" >>libc.txt
-echo "sys_include_dir=/usr/include" >>libc.txt
-echo "crt_dir=/usr/lib" >>libc.txt
-echo "msvc_lib_dir=" >>libc.txt
-echo "kernel32_lib_dir=" >>libc.txt
-echo "gcc_dir=" >>libc.txt
-ZIG_LIBC_TXT="$(pwd)/libc.txt"
-
-ZIG_LIBC="$ZIG_LIBC_TXT" samu install
-
-# Here we skip some tests to save time.
-stage3/bin/zig build test docs \
-  --zig-lib-dir "$(pwd)/../lib" \
-  -Dstatic-llvm \
-  --search-prefix "$PREFIX" \
-  -Dskip-stage1 \
-  -Dskip-non-native
-
-# Produce the experimental std lib documentation.
-mkdir -p "stage3/doc/std"
-stage3/bin/zig test "$(pwd)/../lib/std/std.zig" \
-  --zig-lib-dir "$(pwd)/../lib" \
-  -femit-docs="$(pwd)/stage3/doc/std/" \
-  -fno-emit-bin
-
-if [ -f ~/.s3cfg ]; then
-  # Remove the unnecessary bin dir in stage3/bin/zig
-  mv stage3/bin/zig stage3/
-  rmdir stage3/bin
-
-  # Remove the unnecessary zig dir in stage3/lib/zig/std/std.zig
-  mv stage3/lib/zig stage3/lib2
-  rmdir stage3/lib
-  mv stage3/lib2 stage3/lib
-
-  mv ../LICENSE stage3/
-  mv ../zig-cache/langref.html stage3/doc/
-
-  GITBRANCH=$(basename $GITHUB_REF)
-  VERSION=$(stage3/zig version)
-  DIRNAME="zig-freebsd-x86_64-$VERSION"
-  TARBALL="$DIRNAME.tar.xz"
-  mv stage3 "$DIRNAME"
-  tar cfJ "$TARBALL" "$DIRNAME"
-
-  s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
-
-  SHASUM=$(shasum -a 256 $TARBALL | cut '-d ' -f1)
-  BYTESIZE=$(wc -c < $TARBALL)
-
-  JSONFILE="freebsd-$GITBRANCH.json"
-  touch $JSONFILE
-  echo "{\"tarball\": \"$TARBALL\"," >>$JSONFILE
-  echo "\"shasum\": \"$SHASUM\"," >>$JSONFILE
-  echo "\"size\": \"$BYTESIZE\"}" >>$JSONFILE
-
-  s3cmd put -P --add-header="Cache-Control: max-age=0, must-revalidate" "$JSONFILE" "s3://ziglang.org/builds/$JSONFILE"
-  s3cmd put -P "$JSONFILE" "s3://ziglang.org/builds/x86_64-freebsd-$VERSION.json"
-
-  if [ "$GITBRANCH" = "master" ]; then 
-    # avoid leaking oauth token
-    set +x
-
-    OAUTH_TOKEN="$(cat ~/.oauth_token)"
-    cd "$ZIGDIR"
-    ./ci/srht/on_master_success "$VERSION" "$OAUTH_TOKEN"
-  fi
-fi
ci/srht/netbsd_script
@@ -1,97 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-sudo pkgin -y update
-sudo pkgin -y upgrade
-sudo pkgin -y install cmake samurai curl jq py27-s3cmd wget clang
-
-ZIGDIR="$(pwd)"
-CACHE_BASENAME="zig+llvm+lld+clang-x86_64-netbsd-gnu-0.8.0"
-PREFIX="$HOME/$CACHE_BASENAME"
-
-cd $HOME
-wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
-tar xf "$CACHE_BASENAME.tar.xz"
-
-cd $ZIGDIR
-
-# Make the `zig version` number consistent.
-# This will affect the cmake command below.
-git config core.abbrev 9
-git fetch --unshallow || true
-git fetch --tags
-
-# SourceHut reports that it is a terminal that supports escape codes, but it
-# is a filthy liar. Here we tell Zig to not try to send any terminal escape
-# codes to show progress.
-export TERM=dumb
-
-mkdir build
-cd build
-export CC="$PREFIX/bin/zigcc"
-export CXX="$PREFIX/bin/zigcxx"
-echo "#!/bin/sh
-env CC=\"clang\" $PREFIX/bin/zig cc \"\$@\"" > $CC
-echo "#!/bin/sh
-env CC=\"clang\" $PREFIX/bin/zig c++ \"\$@\"" > $CXX
-chmod +x $CC
-chmod +x $CXX
-
-cmake .. \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DCMAKE_PREFIX_PATH=$PREFIX \
-    "-DCMAKE_INSTALL_PREFIX=$(pwd)/release" \
-    -DZIG_STATIC=ON \
-    -DZIG_TARGET_TRIPLE=x86_64-netbsd-none \
-    -GNinja
-samu install
-
-unset CC
-unset CXX
-
-# TODO ld.lld: error: undefined symbol: main
-#>>> referenced by crt0-common.c
-#>>>               /usr/lib/crt0.o:(___start)
-#release/bin/zig test ../test/behavior.zig -fno-stage1 -fLLVM -I ../test
-
-# Here we skip some tests to save time.
-release/bin/zig build test -Dskip-stage1 -Dskip-non-native
-
-if [ -f ~/.s3cfg ]; then
-  mv ../LICENSE release/
-  mv ../zig-cache/langref.html release/
-  mv release/bin/zig release/
-  rmdir release/bin
-
-  GITBRANCH=$(basename $GITHUB_REF)
-  VERSION=$(release/zig version)
-  DIRNAME="zig-netbsd-x86_64-$VERSION"
-  TARBALL="$DIRNAME.tar.xz"
-  mv release "$DIRNAME"
-  tar cfJ "$TARBALL" "$DIRNAME"
-
-  s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
-
-  SHASUM=$(shasum -a 256 $TARBALL | cut '-d ' -f1)
-  BYTESIZE=$(wc -c < $TARBALL)
-
-  JSONFILE="netbsd-$GITBRANCH.json"
-  touch $JSONFILE
-  echo "{\"tarball\": \"$TARBALL\"," >>$JSONFILE
-  echo "\"shasum\": \"$SHASUM\"," >>$JSONFILE
-  echo "\"size\": \"$BYTESIZE\"}" >>$JSONFILE
-
-  s3cmd put -P --add-header="Cache-Control: max-age=0, must-revalidate" "$JSONFILE" "s3://ziglang.org/builds/$JSONFILE"
-  s3cmd put -P "$JSONFILE" "s3://ziglang.org/builds/x86_64-netbsd-$VERSION.json"
-
-  if [ "$GITBRANCH" = "master" ]; then 
-    # avoid leaking oauth token
-    set +x
-
-    OAUTH_TOKEN="$(cat ~/.oauth_token)"
-    cd "$ZIGDIR"
-    ./ci/srht/on_master_success "$VERSION" "$OAUTH_TOKEN"
-  fi
-fi
ci/srht/on_master_success
@@ -1,50 +0,0 @@
-#!/bin/sh
-
-# This script must run on a lot of different platforms.
-# It assumes that the following things are installed:
-# * curl
-# * jq
-# * cat
-
-# We do not set -x because this would leak the oauth access token.
-set +x
-
-set -e
-
-VERSION="$1"
-OAUTH_TOKEN="$2"
-YML_FILE="tmp.yml"
-
-if [ -z "$VERSION" ]; then
-  echo "missing VERSION parameter"
-  exit 1
-fi
-
-if [ -z "$OAUTH_TOKEN" ]; then
-  echo "missing OAUTH_TOKEN parameter"
-  exit 1
-fi
-
-cat <<EOF >"$YML_FILE"
-image: alpine/latest
-packages:
-  - py3-pip
-  - curl
-  - jq
-  - xz
-secrets:
-  - 51bfddf5-86a6-4e01-8576-358c72a4a0a4
-  - 44e2bd57-1d07-42bf-925e-22a36119041d
-sources:
-  - https://github.com/ziglang/zig
-tasks:
-  - build: cd zig && ./ci/srht/update_download_page $VERSION
-EOF
-
-jq <$YML_FILE -sR '{
-      "manifest": .,
-    }' | curl \
-  -H Authorization:"token $OAUTH_TOKEN" \
-  -H Content-Type:application/json \
-  -X POST \
-  -d @- "https://builds.hut.lavatech.top/api/jobs"
ci/srht/update_download_page
@@ -1,150 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-VERSION="$1"
-SRCDIR="$(pwd)"
-NATIVE_TARBALL="zig-linux-$(uname -m)-$VERSION.tar.xz"
-
-# Check for all the builds being completed. It's expected that this script is run several times
-# before they are all complete.
-#AARCH64_LINUX_JSON_URL="https://ziglang.org/builds/aarch64-linux-$VERSION.json"
-X86_64_LINUX_JSON_URL="https://ziglang.org/builds/x86_64-linux-$VERSION.json"
-X86_64_WINDOWS_JSON_URL="https://ziglang.org/builds/x86_64-windows-$VERSION.json"
-AARCH64_MACOS_JSON_URL="https://ziglang.org/builds/aarch64-macos-$VERSION.json"
-X86_64_MACOS_JSON_URL="https://ziglang.org/builds/x86_64-macos-$VERSION.json"
-X86_64_FREEBSD_JSON_URL="https://ziglang.org/builds/x86_64-freebsd-$VERSION.json"
-#X86_64_NETBSD_JSON_URL="https://ziglang.org/builds/x86_64-netbsd-$VERSION.json"
-
-# If any of these fail, it's not really this job failing; rather we have detected
-# that this job will be called again later when other jobs have completed.
-#curl --fail -I "$AARCH64_LINUX_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_LINUX_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_WINDOWS_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$AARCH64_MACOS_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_MACOS_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_FREEBSD_JSON_URL" >/dev/null || exit 0
-#curl --fail -I "$X86_64_NETBSD_JSON_URL" >/dev/null || exit 0
-
-# Without --user, this gave me:
-# ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied
-pip3 install s3cmd --user
-S3CMD="$HOME/.local/bin/s3cmd"
-
-# Refresh this with `ssh-keyscan github.com` from a trusted Internet connection.
-# We hard code the public key here to detect man-in-the-middle attacks.
-echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
-
-# We don't want the .git folder inside the tarball.
-rm -rf .git
-
-cd "$HOME"
-wget "https://ziglang.org/builds/$NATIVE_TARBALL"
-tar xf "$NATIVE_TARBALL"
-ZIGDIR="$(pwd)/$(basename $NATIVE_TARBALL .tar.xz)"
-ZIG="$ZIGDIR/zig"
-LANGREF="$ZIGDIR/doc/langref.html"
-SRCTARBALLDIR="zig-$VERSION"
-export SRC_TARBALL="$SRCTARBALLDIR.tar.xz"
-mv "$SRCDIR" "$SRCTARBALLDIR"
-tar cfJ "$SRC_TARBALL" "$SRCTARBALLDIR"
-export SRC_SHASUM=$(sha256sum $SRC_TARBALL | cut '-d ' -f1)
-export SRC_BYTESIZE=$(wc -c < $SRC_TARBALL)
-
-X86_64_WINDOWS_JSON=$(curl --fail "$X86_64_WINDOWS_JSON_URL" || exit 1)
-export X86_64_WINDOWS_TARBALL="$(echo "$X86_64_WINDOWS_JSON" | jq .tarball -r)"
-export X86_64_WINDOWS_BYTESIZE="$(echo "$X86_64_WINDOWS_JSON" | jq .size -r)"
-export X86_64_WINDOWS_SHASUM="$(echo "$X86_64_WINDOWS_JSON" | jq .shasum -r)"
-
-AARCH64_MACOS_JSON=$(curl --fail "$AARCH64_MACOS_JSON_URL" || exit 1)
-export AARCH64_MACOS_TARBALL="$(echo "$AARCH64_MACOS_JSON" | jq .tarball -r)"
-export AARCH64_MACOS_BYTESIZE="$(echo "$AARCH64_MACOS_JSON" | jq .size -r)"
-export AARCH64_MACOS_SHASUM="$(echo "$AARCH64_MACOS_JSON" | jq .shasum -r)"
-
-X86_64_MACOS_JSON=$(curl --fail "$X86_64_MACOS_JSON_URL" || exit 1)
-export X86_64_MACOS_TARBALL="$(echo "$X86_64_MACOS_JSON" | jq .tarball -r)"
-export X86_64_MACOS_BYTESIZE="$(echo "$X86_64_MACOS_JSON" | jq .size -r)"
-export X86_64_MACOS_SHASUM="$(echo "$X86_64_MACOS_JSON" | jq .shasum -r)"
-
-X86_64_LINUX_JSON=$(curl --fail "$X86_64_LINUX_JSON_URL" || exit 1)
-export X86_64_LINUX_TARBALL="$(echo "$X86_64_LINUX_JSON" | jq .tarball -r)"
-export X86_64_LINUX_BYTESIZE="$(echo "$X86_64_LINUX_JSON" | jq .size -r)"
-export X86_64_LINUX_SHASUM="$(echo "$X86_64_LINUX_JSON" | jq .shasum -r)"
-
-#AARCH64_LINUX_JSON=$(curl --fail "$AARCH64_LINUX_JSON_URL" || exit 1)
-#export AARCH64_LINUX_TARBALL="$(echo "$AARCH64_LINUX_JSON" | jq .tarball -r)"
-#export AARCH64_LINUX_BYTESIZE="$(echo "$AARCH64_LINUX_JSON" | jq .size -r)"
-#export AARCH64_LINUX_SHASUM="$(echo "$AARCH64_LINUX_JSON" | jq .shasum -r)"
-
-X86_64_FREEBSD_JSON=$(curl --fail "$X86_64_FREEBSD_JSON_URL" || exit 1)
-export X86_64_FREEBSD_TARBALL="$(echo "$X86_64_FREEBSD_JSON" | jq .tarball -r)"
-export X86_64_FREEBSD_BYTESIZE="$(echo "$X86_64_FREEBSD_JSON" | jq .size -r)"
-export X86_64_FREEBSD_SHASUM="$(echo "$X86_64_FREEBSD_JSON" | jq .shasum -r)"
-
-#X86_64_NETBSD_JSON=$(curl --fail "$X86_64_NETBSD_JSON_URL" || exit 1)
-#export X86_64_NETBSD_TARBALL="$(echo "$X86_64_NETBSD_JSON" | jq .tarball -r)"
-#export X86_64_NETBSD_BYTESIZE="$(echo "$X86_64_NETBSD_JSON" | jq .size -r)"
-#export X86_64_NETBSD_SHASUM="$(echo "$X86_64_NETBSD_JSON" | jq .shasum -r)"
-
-export MASTER_DATE="$(date +%Y-%m-%d)"
-export MASTER_VERSION="$VERSION"
-
-# Create index.json and update the website repo.
-cd "$SRCTARBALLDIR/ci/srht"
-"$ZIG" run update-download-page.zig
-CIDIR="$(pwd)"
-
-cd "$HOME"
-
-# Update autodocs and langref directly to S3 in order to prevent the
-# www.ziglang.org git repo from growing too big.
-
-# Please do not edit this script to pre-compress the artifacts before they hit
-# S3. This prevents the website from working on browsers that do not support gzip
-# encoding. Cloudfront will automatically compress files if they are less than
-# 9.5 MiB, and the client advertises itself as capable of decompressing.
-# The data.js file is currently 16 MiB. In order to fix this problem, we need to do
-# one of the following things:
-# * Reduce the size of data.js to less than 9.5 MiB.
-# * Figure out how to adjust the Cloudfront settings to increase the max size for
-#   auto-compressed objects.
-# * Migrate to fastly.
-$S3CMD put -P --no-mime-magic \
-  --add-header="Cache-Control: max-age=0, must-revalidate" \
-  "$LANGREF" s3://ziglang.org/documentation/master/index.html
-
-$S3CMD put -P --no-mime-magic \
-  --add-header="Cache-Control: max-age=0, must-revalidate" \
-  "$ZIGDIR/doc/std/index.html" s3://ziglang.org/documentation/master/std/index.html
-
-$S3CMD put -P --no-mime-magic \
-  --add-header="Cache-Control: max-age=0, must-revalidate" \
-  "$ZIGDIR/doc/std/main.js" s3://ziglang.org/documentation/master/std/main.js
-
-$S3CMD put -P --no-mime-magic \
-  --add-header="Cache-Control: max-age=0, must-revalidate" \
-  "$ZIGDIR/doc/std/data.js" s3://ziglang.org/documentation/master/std/data.js
-
-$S3CMD put -P --no-mime-magic --recursive \
-  --add-header="Cache-Control: max-age=0, must-revalidate" \
-  -m "text/html" \
-  "$ZIGDIR/doc/std/src/" s3://ziglang.org/documentation/master/std/src/
-
-$S3CMD put -P --no-mime-magic \
-  --add-header="cache-control: public, max-age=31536000, immutable" \
-  "$HOME/$SRC_TARBALL" s3://ziglang.org/builds/
-
-git clone --depth 1 git@github.com:ziglang/www.ziglang.org.git
-cd www.ziglang.org
-WWWDIR="$(pwd)"
-# This is the user when pushing to the website repo.
-git config user.email "ziggy@ziglang.org"
-git config user.name "Ziggy"
-
-
-cd "$WWWDIR"
-cp "$CIDIR/out/index.json" data/releases.json
-git add data/releases.json
-git commit -m "CI: update releases"
-git push origin master
ci/zinc/build_aarch64_macos
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-RELEASE_STAGING="$DRONE_WORKSPACE/_release/staging"
-TARGET="aarch64-macos-none"
-MCPU="apple_a14"
-INSTALL_PREFIX="$DRONE_WORKSPACE/$TARGET"
-SEARCH_PREFIX="/deps/$TARGET"
-
-"$RELEASE_STAGING/bin/zig" build \
-  --prefix "$INSTALL_PREFIX" \
-  --search-prefix "$SEARCH_PREFIX" \
-  -Dstatic-llvm \
-  -Drelease \
-  -Dstrip \
-  -Dtarget="$TARGET" \
-  -Dcpu="$MCPU" \
-  -Denable-stage1
ci/zinc/configure_git
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-# Make the `zig version` number consistent.
-# This will affect the cmake commands that follow.
-# This is in its own script because git does not support this command
-# being run concurrently with itself.
-git config core.abbrev 9
ci/zinc/drone.yml
@@ -1,96 +0,0 @@
----
-kind: pipeline
-type: docker
-name: x86_64-linux
-platform:
-  os: linux
-  arch: amd64
-workspace:
-  path: /workspace
-
-steps:
-- name: configure_git
-  image: ci/debian-amd64:11.1-12
-  commands:
-  - ./ci/zinc/configure_git
-
-- name: test_stage3_debug
-  depends_on:
-  - configure_git
-  image: ci/debian-amd64:11.1-12
-  commands:
-  - ./ci/zinc/linux_test_stage3_debug
-
-- name: test_stage3_release
-  depends_on:
-  - configure_git
-  image: ci/debian-amd64:11.1-12
-  commands:
-  - ./ci/zinc/linux_test_stage3_release
-
-- name: build_aarch64_macos
-  depends_on:
-  - test_stage3_release
-  image: ci/debian-amd64:11.1-12
-  commands:
-  - ./ci/zinc/build_aarch64_macos
-
-- name: test_determinism
-  depends_on:
-  - test_stage3_release
-  image: ci/debian-amd64:11.1-12
-  commands:
-  - ./ci/zinc/linux_test_determinism
-
-- name: linux_package
-  depends_on:
-  - test_stage3_debug
-  - test_stage3_release
-  - test_determinism
-  when:
-    branch:
-      - master
-    event:
-      - push
-  image: ci/debian-amd64:11.1-12
-  environment:
-    AWS_ACCESS_KEY_ID:
-      from_secret: AWS_ACCESS_KEY_ID
-    AWS_SECRET_ACCESS_KEY:
-      from_secret: AWS_SECRET_ACCESS_KEY
-  commands:
-  - ./ci/zinc/linux_package
-
-- name: macos_package
-  depends_on:
-  - test_stage3_debug
-  - build_aarch64_macos
-  when:
-    branch:
-      - master
-    event:
-      - push
-  image: ci/debian-amd64:11.1-12
-  environment:
-    AWS_ACCESS_KEY_ID:
-      from_secret: AWS_ACCESS_KEY_ID
-    AWS_SECRET_ACCESS_KEY:
-      from_secret: AWS_SECRET_ACCESS_KEY
-  commands:
-  - ./ci/zinc/macos_package
-
-- name: notify_lavahut
-  depends_on:
-  - macos_package
-  - linux_package
-  when:
-    branch:
-      - master
-    event:
-      - push
-  image: ci/debian-amd64:11.1-12
-  environment:
-    SRHT_OAUTH_TOKEN:
-      from_secret: SRHT_OAUTH_TOKEN
-  commands:
-  - ./ci/zinc/notify_lavahut
ci/zinc/linux_package
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-ARCH="$(uname -m)"
-OS="linux"
-RELEASE_STAGING="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($RELEASE_STAGING/bin/zig version)
-BASENAME="zig-$OS-$ARCH-$VERSION"
-TARBALL="$BASENAME.tar.xz"
-
-# This runs concurrently with the macos_package script, so it should not make
-# any changes to the filesystem that will cause problems for the other script.
-
-cp -r "$RELEASE_STAGING" "$BASENAME"
-
-# Remove the unnecessary bin dir in $prefix/bin/zig
-mv $BASENAME/bin/zig $BASENAME/
-rmdir $BASENAME/bin
-
-# Remove the unnecessary zig dir in $prefix/lib/zig/std/std.zig
-mv $BASENAME/lib/zig $BASENAME/lib2
-rmdir $BASENAME/lib
-mv $BASENAME/lib2 $BASENAME/lib
-
-tar cfJ "$TARBALL" "$BASENAME"
-
-SHASUM=$(sha256sum $TARBALL | cut '-d ' -f1)
-BYTESIZE=$(wc -c < $TARBALL)
-
-MANIFEST="manifest-$TARGET.json"
-touch $MANIFEST
-echo "{\"tarball\": \"$TARBALL\"," >>$MANIFEST
-echo "\"shasum\": \"$SHASUM\"," >>$MANIFEST
-echo "\"size\": \"$BYTESIZE\"}" >>$MANIFEST
-
-# Publish artifact.
-s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
-
-# Publish manifest.
-s3cmd put -P --add-header="cache-control: max-age=0, must-revalidate" "$MANIFEST" "s3://ziglang.org/builds/$ARCH-$OS-$VERSION.json"
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/linux_test_determinism
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-DEPS_LOCAL="/deps/local"
-ZIG_PREFIX="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($ZIG_PREFIX/bin/zig version)
-
-"$ZIG_PREFIX/bin/zig" build \
-  --prefix stage4 \
-  -Dconfig_h="build-release/config.h" \
-  -Denable-llvm \
-  -Denable-stage1 \
-  -Dno-lib \
-  -Drelease \
-  -Dstrip \
-  -Dtarget=x86_64-linux-musl \
-  -Duse-zig-libcxx \
-  -Dversion-string="$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 "$ZIG_PREFIX/bin/zig" "stage4/bin/zig"
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/linux_test_stage3_release
@@ -1,60 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-ARCH="$(uname -m)"
-DEPS_LOCAL="/deps/local"
-RELEASE_STAGING="$DRONE_WORKSPACE/_release/staging"
-OLD_ZIG="$DEPS_LOCAL/bin/zig"
-TARGET="${ARCH}-linux-musl"
-MCPU="baseline"
-
-export PATH=$DEPS_LOCAL/bin:$PATH
-
-echo "building stage3-release with zig version $($OLD_ZIG version)"
-
-export CC="$OLD_ZIG cc -target $TARGET -mcpu=$MCPU"
-export CXX="$OLD_ZIG c++ -target $TARGET -mcpu=$MCPU"
-
-mkdir build-release
-cd build-release
-cmake .. \
-  -DCMAKE_INSTALL_PREFIX="$RELEASE_STAGING" \
-  -DCMAKE_PREFIX_PATH="$DEPS_LOCAL" \
-  -DCMAKE_BUILD_TYPE=Release \
-  -DZIG_TARGET_TRIPLE="$TARGET" \
-  -DZIG_TARGET_MCPU="$MCPU" \
-  -DZIG_STATIC=ON \
-  -GNinja
-
-# 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
-
-"$RELEASE_STAGING/bin/zig" build test docs \
-  -fqemu \
-  -fwasmtime \
-  -Dstatic-llvm \
-  -Dtarget=native-native-musl \
-  --search-prefix "$DEPS_LOCAL" \
-  --zig-lib-dir "$(pwd)/../lib"
-
-# Produce the experimental std lib documentation.
-mkdir -p "$RELEASE_STAGING/doc/std"
-"$RELEASE_STAGING/bin/zig" test ../lib/std/std.zig \
-  -femit-docs=$RELEASE_STAGING/doc/std \
-  -fno-emit-bin \
-  --zig-lib-dir "$(pwd)/../lib"
-
-cp ../LICENSE $RELEASE_STAGING/
-cp ../zig-cache/langref.html $RELEASE_STAGING/doc/
-
-# Look for HTML errors.
-tidy --drop-empty-elements no -qe $RELEASE_STAGING/doc/langref.html
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/macos_package
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-ARCH="aarch64"
-OS=macos
-ZIG_PREFIX="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($ZIG_PREFIX/bin/zig version)
-TARGET="$ARCH-$OS-none"
-INSTALL_PREFIX="$DRONE_WORKSPACE/$TARGET"
-BASENAME="zig-$OS-$ARCH-$VERSION"
-TARBALL="$BASENAME.tar.xz"
-
-# This runs concurrently with the linux_package script, so it should not make
-# any changes to the filesystem that will cause problems for the other script.
-
-# Remove the unnecessary bin dir in $prefix/bin/zig
-mv $INSTALL_PREFIX/bin/zig $INSTALL_PREFIX/
-rmdir $INSTALL_PREFIX/bin
-
-# Remove the unnecessary zig dir in $prefix/lib/zig/std/std.zig
-mv $INSTALL_PREFIX/lib/zig $INSTALL_PREFIX/lib2
-rmdir $INSTALL_PREFIX/lib
-mv $INSTALL_PREFIX/lib2 $INSTALL_PREFIX/lib
-
-cp -r "$ZIG_PREFIX/doc" "$INSTALL_PREFIX/"
-cp "$ZIG_PREFIX/LICENSE" "$INSTALL_PREFIX/"
-
-mv "$INSTALL_PREFIX" "$BASENAME"
-tar cfJ "$TARBALL" "$BASENAME"
-
-SHASUM=$(sha256sum $TARBALL | cut '-d ' -f1)
-BYTESIZE=$(wc -c < $TARBALL)
-
-MANIFEST="manifest-$TARGET.json"
-touch $MANIFEST
-echo "{\"tarball\": \"$TARBALL\"," >>$MANIFEST
-echo "\"shasum\": \"$SHASUM\"," >>$MANIFEST
-echo "\"size\": \"$BYTESIZE\"}" >>$MANIFEST
-
-# Publish artifact.
-s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
-
-# Publish manifest.
-s3cmd put -P --add-header="cache-control: max-age=0, must-revalidate" "$MANIFEST" "s3://ziglang.org/builds/$ARCH-$OS-$VERSION.json"
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/notify_lavahut
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set +x # Avoid leaking oauth token.
-set -e
-
-ZIG_PREFIX="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($ZIG_PREFIX/bin/zig version)
-cd $DRONE_WORKSPACE
-./ci/srht/on_master_success "$VERSION" "$SRHT_OAUTH_TOKEN"
ci/index.json
@@ -33,6 +33,11 @@
       "tarball": "https://ziglang.org/builds/{{X86_64_LINUX_TARBALL}}",
       "shasum": "{{X86_64_LINUX_SHASUM}}",
       "size": "{{X86_64_LINUX_BYTESIZE}}"
+    },
+    "aarch64-linux": {
+      "tarball": "https://ziglang.org/builds/{{AARCH64_LINUX_TARBALL}}",
+      "shasum": "{{AARCH64_LINUX_SHASUM}}",
+      "size": "{{AARCH64_LINUX_BYTESIZE}}"
     }
   },
   "0.10.0": {