diff --git a/.gitea/workflows/main.yml b/.gitea/workflows/main.yml index 97de1a7..cc35ad0 100644 --- a/.gitea/workflows/main.yml +++ b/.gitea/workflows/main.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest ] - BIRTH_CMAKE_BUILD_TYPE: [ Debug, Release-assertions, Release ] + BIRTH_CMAKE_BUILD_TYPES: [ Debug, Release-assertions, Release ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -25,7 +25,7 @@ jobs: shell: bash env: BB_CI: 1 - CMAKE_BUILD_TYPE: ${{matrix.BIRTH_CMAKE_BUILD_TYPE}} + CMAKE_BUILD_TYPE: ${{matrix.BIRTH_CMAKE_BUILD_TYPES}} CLANG_PATH: clang-19 CLANGXX_PATH: clang++-19 run: | diff --git a/.gitea/workflows/pr.yml b/.gitea/workflows/pr.yml index b973236..54f8cb1 100644 --- a/.gitea/workflows/pr.yml +++ b/.gitea/workflows/pr.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest ] - BIRTH_CMAKE_BUILD_TYPE: [ Release-assertions, Release ] + BIRTH_CMAKE_BUILD_TYPES: [ Release-assertions, Release ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -20,11 +20,10 @@ jobs: shell: bash env: BB_CI: 1 - CMAKE_BUILD_TYPE: ${{matrix.BIRTH_CMAKE_BUILD_TYPE}} + CMAKE_BUILD_TYPE: ${{matrix.BIRTH_CMAKE_BUILD_TYPES}} CLANG_PATH: clang-19 CLANGXX_PATH: clang++-19 run: | set -eux ./generate.sh - ./build.sh - ./build/bb test + ci/reproduce.sh diff --git a/self_hosted_build.sh b/self_hosted_build.sh new file mode 100755 index 0000000..00cb859 --- /dev/null +++ b/self_hosted_build.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -eu +if [[ -z "${BOOTSTRAP_COMPILER:-}" ]]; then + BOOTSTRAP_COMPILER=$HOME/bloat-buster-artifacts/releases/main/compiler_generic +fi + +if [[ -z "${CMAKE_PREFIX_PATH:-}" ]]; then + CMAKE_PREFIX_PATH=$HOME/dev/llvm/install/llvm_20.1.7_x86_64-linux-Release +fi + +$BOOTSTRAP_COMPILER compile src/compiler.bbb diff --git a/self_hosted_generate.sh b/self_hosted_generate.sh new file mode 100755 index 0000000..74f4091 --- /dev/null +++ b/self_hosted_generate.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +set -eux + +if [[ -z "${LLVM_VERSION:-}" ]]; then + LLVM_VERSION=20.1.7 +fi + +if [[ -z "${BB_CI:-}" ]]; then + BB_CI=0 +fi + +if [[ -z "${CMAKE_BUILD_TYPE:-}" ]]; then + CMAKE_BUILD_TYPE=Debug + LLVM_CMAKE_BUILD_TYPE=Release +else + LLVM_CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE +fi + +BIRTH_NATIVE_OS_STRING=$OSTYPE + +case "$BIRTH_NATIVE_OS_STRING" in + darwin*) BIRTH_OS="macos";; + linux*) BIRTH_OS="linux";; + msys*) BIRTH_OS="windows";; + *) exit 1 +esac + +BIRTH_NATIVE_ARCH_STRING="$(uname -m)" + +case "$BIRTH_NATIVE_ARCH_STRING" in + x86_64) BIRTH_ARCH="x86_64";; + arm64) BIRTH_ARCH="aarch64";; + *) exit 1 +esac + +if [[ -z "${CMAKE_PREFIX_PATH:-}" ]]; then + CMAKE_PREFIX_PATH=$HOME/dev/llvm/install/llvm_${LLVM_VERSION}_${BIRTH_ARCH}-${BIRTH_OS}-${LLVM_CMAKE_BUILD_TYPE} +fi + +if [[ -z "${CLANG_PATH:-}" ]]; then + CLANG_PATH=clang + CLANGXX_PATH=clang++ +fi + +OPT_ARGS="" + +case "${CMAKE_BUILD_TYPE%%-*}" in + Debug) OPT_ARGS="-O0 -g";; + Release*) OPT_ARGS="-O3";; + *) exit 1;; +esac + +mkdir -p self-hosted-bb-cache +$CLANG_PATH -c tests/c_abi.c -o self-hosted-bb-cache/c_abi.o $OPT_ARGS -std=gnu2x