refactor(#837): decouple allocator from QSBR, make art_allocator.hpp header-only #2653
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: build-with-old-compilers | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| env: | |
| DEFAULT_SANITIZE_ADDRESS: OFF | |
| DEFAULT_SANITIZE_THREAD: OFF | |
| DEFAULT_SANITIZE_UB: OFF | |
| DEFAULT_SPINLOCK_LOOP: PAUSE | |
| DEFAULT_STATS: ON | |
| permissions: {} | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| env: | |
| BUILD_TYPE: ${{matrix.BUILD_TYPE}} | |
| COMPILER: ${{matrix.COMPILER}} | |
| VERSION: ${{matrix.VERSION}} | |
| SANITIZE_ADDRESS: ${{matrix.SANITIZE_ADDRESS}} | |
| SANITIZE_THREAD: ${{matrix.SANITIZE_THREAD}} | |
| SANITIZE_UB: ${{matrix.SANITIZE_UB}} | |
| SPINLOCK_LOOP: ${{matrix.SPINLOCK_LOOP}} | |
| STATS: ${{matrix.STATS}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: clang 11 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 11 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 11 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 11 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 11 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 11 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 11 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 11 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 11 | |
| - name: clang 12 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 12 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 12 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 12 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 12 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 12 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 12 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 12 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 12 | |
| - name: clang 13 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 13 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 13 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 13 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 13 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 13 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 13 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 13 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 13 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: clang 14 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 14 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 14 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 14 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 14 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 14 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 14 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 14 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 14 | |
| STATS: OFF | |
| - name: clang 15 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 15 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 15 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 15 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 15 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 15 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 15 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 15 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 15 | |
| - name: clang 16 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 16 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 16 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 16 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 16 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 16 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 16 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 16 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 16 | |
| - name: clang 17 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 17 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 17 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 17 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 17 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 17 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 17 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 17 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 17 | |
| - name: clang 18 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 18 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 18 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 18 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 18 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 18 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 18 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 18 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 18 | |
| - name: clang 19 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 19 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 19 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 19 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 19 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 19 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 19 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 19 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 19 | |
| - name: clang 20 Release | |
| BUILD_TYPE: Release | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: clang 20 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: clang 20 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: clang 20 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: clang 20 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: clang 20 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: clang 20 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: clang 20 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: clang | |
| VERSION: 20 | |
| - name: GCC 10 Release | |
| BUILD_TYPE: Release | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 10 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 10 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 10 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 10 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 10 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 10 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 10 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 10 | |
| - name: GCC 11 Release | |
| BUILD_TYPE: Release | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 11 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 11 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 11 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 11 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 11 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 11 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 11 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 11 | |
| SPINLOCK_LOOP: EMPTY | |
| - name: GCC 12 Release | |
| BUILD_TYPE: Release | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 12 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 12 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 12 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 12 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 12 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 12 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 12 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 12 | |
| STATS: OFF | |
| - name: GCC 13 Release | |
| BUILD_TYPE: Release | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| - name: GCC 13 Release with ASan | |
| BUILD_TYPE: Release | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| - name: GCC 13 Release with TSan | |
| BUILD_TYPE: Release | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| - name: GCC 13 Release with UBSan | |
| BUILD_TYPE: Release | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| - name: GCC 13 Debug | |
| BUILD_TYPE: Debug | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| - name: GCC 13 Debug with ASan | |
| BUILD_TYPE: Debug | |
| SANITIZE_ADDRESS: ON | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| - name: GCC 13 Debug with TSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_THREAD: ON | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| - name: GCC 13 Debug with UBSan | |
| BUILD_TYPE: Debug | |
| SANITIZE_UB: ON | |
| COMPILER: gcc | |
| VERSION: 13 | |
| STATS: OFF | |
| steps: | |
| - uses: actions/checkout@v6 # zizmor: ignore[unpinned-uses] | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - name: Setup common dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libc6-dev-i386 | |
| - name: Setup Boost | |
| run: sudo apt-get install -y libboost-dev | |
| - name: Setup LLVM 16+ repo | |
| run: | | |
| curl 'https://apt.llvm.org/llvm-snapshot.gpg.key' \ | |
| | sudo apt-key add - | |
| sudo add-apt-repository -y \ | |
| "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${VERSION} main" | |
| sudo apt-get update | |
| if: env.COMPILER == 'clang' && env.VERSION >= 16 | |
| - name: Setup dependencies for LLVM | |
| run: | | |
| sudo apt-get install -y "llvm-${VERSION}-linker-tools" \ | |
| "clang-${VERSION}" "clang-tidy-${VERSION}" | |
| if: env.COMPILER == 'clang' | |
| - name: Setup dependencies for GCC 10 & 12 (versioned packages) | |
| run: | | |
| sudo apt-get install -y "gcc-${VERSION}" | |
| if: > | |
| env.COMPILER == 'gcc' | |
| && (env.VERSION == '10' || env.VERSION == '12') | |
| - name: Setup dependencies for GCC 11 (default OS package) | |
| run: | | |
| sudo apt-get install -y gcc | |
| if: env.COMPILER == 'gcc' && env.VERSION == '11' | |
| - name: Setup dependencies for GCC 13 (PPA) | |
| run: | | |
| sudo add-apt-repository ppa:ubuntu-toolchain-r/test | |
| sudo apt-get update | |
| sudo apt-get install -y "g++-${VERSION}" | |
| if: env.COMPILER == 'gcc' && env.VERSION == '13' | |
| - name: Configure CMake | |
| # Use a bash shell so we can use the same syntax for environment | |
| # variable access regardless of the host operating system | |
| shell: bash | |
| run: | | |
| SANITIZE_ADDRESS="${SANITIZE_ADDRESS:-$DEFAULT_SANITIZE_ADDRESS}" | |
| SANITIZE_THREAD="${SANITIZE_THREAD:-$DEFAULT_SANITIZE_THREAD}" | |
| SANITIZE_UB="${SANITIZE_UB:-$DEFAULT_SANITIZE_UB}" | |
| SPINLOCK_LOOP="${SPINLOCK_LOOP:-$DEFAULT_SPINLOCK_LOOP}" | |
| STATS="${STATS:-$DEFAULT_STATS}" | |
| export PATH=$HOME/.local/bin:$PATH | |
| if [[ $COMPILER == "gcc" ]]; then | |
| export CC="gcc-${VERSION}" | |
| export CXX="g++-${VERSION}" | |
| EXTRA_CMAKE_ARGS=("-DMAINTAINER_MODE=ON") | |
| else | |
| export CC="clang-${VERSION}" | |
| export CXX="clang++-${VERSION}" | |
| EXTRA_CMAKE_ARGS=("-DCLANG_TIDY_EXE=/usr/bin/clang-tidy-${VERSION}") | |
| if [[ $BUILD_TYPE == "Release" ]]; then | |
| EXTRA_CMAKE_ARGS=("${EXTRA_CMAKE_ARGS[@]}" \ | |
| "-DLLVMAR_EXECUTABLE=/usr/bin/llvm-ar-${VERSION}" \ | |
| "-DLLVMNM_EXECUTABLE=/usr/bin/llvm-nm-${VERSION}" \ | |
| "-DLLVMRANLIB_EXECUTABLE=/usr/bin/llvm-ranlib-${VERSION}") | |
| fi | |
| if [[ $VERSION -ge 13 ]]; then | |
| EXTRA_CMAKE_ARGS=("${EXTRA_CMAKE_ARGS[@]}" "-DMAINTAINER_MODE=ON") | |
| fi | |
| fi | |
| set +e | |
| cmake -B build "$GITHUB_WORKSPACE" -DSTANDALONE=ON \ | |
| "-DCMAKE_BUILD_TYPE=$BUILD_TYPE" \ | |
| "-DSANITIZE_ADDRESS=${SANITIZE_ADDRESS}" \ | |
| "-DSANITIZE_THREAD=${SANITIZE_THREAD}" \ | |
| "-DSANITIZE_UB=${SANITIZE_UB}" \ | |
| "-DSPINLOCK_LOOP=${SPINLOCK_LOOP}" "-DSTATS=${STATS}" \ | |
| "${EXTRA_CMAKE_ARGS[@]}" | |
| CMAKE_EXIT_CODE=$? | |
| set -e | |
| if [ $CMAKE_EXIT_CODE -ne 0 ]; then | |
| if [ -f build/CMakeFiles/CMakeConfigureLog.yaml ]; then | |
| echo "::group::CMakeConfigureLog.yaml" | |
| cat build/CMakeFiles/CMakeConfigureLog.yaml | |
| echo "::endgroup::" | |
| fi | |
| fi | |
| exit $CMAKE_EXIT_CODE | |
| - name: Build | |
| working-directory: ${{github.workspace}}/build | |
| run: make -j3 -k | |
| - name: Correctness test | |
| working-directory: ${{github.workspace}}/build | |
| run: ctest -j3 -V | |
| - name: Benchmark correctness test | |
| working-directory: ${{github.workspace}}/build | |
| run: make -k quick_benchmarks |