Skip to content
This repository was archived by the owner on Jan 29, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/bvt-appleclang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- name: build and run test with AppleClang
run: |
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake -B build -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
ctest --test-dir build -j

Expand Down
32 changes: 9 additions & 23 deletions .github/workflows/bvt-clang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,39 +15,25 @@ jobs:

- name: install clang
run: |
sudo apt install -y clang-16 clang-17 clang-18 libc++-18-dev
sudo apt install -y clang-19 libc++-19-dev

- name: check compiler versions
- name: check compiler version
run: |
clang++-16 --version
clang++-17 --version
clang++-18 --version
clang++-19 --version

- name: build and run test with clang 16
- name: build and run test with clang 19
run: |
cmake -B build-clang-16 -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release
cmake --build build-clang-16 -j
ctest --test-dir build-clang-16 -j

- name: build and run test with clang 17
run: |
cmake -B build-clang-17 -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release
cmake --build build-clang-17 -j
ctest --test-dir build-clang-17 -j

- name: build and run test with clang 18
run: |
cmake -B build-clang-18 -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release
cmake --build build-clang-18 -j
ctest --test-dir build-clang-18 -j
cmake -B build -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
ctest --test-dir build -j

- name: run benchmarks
run: |
cd build-clang-18/benchmarks
cd build/benchmarks
./msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > benchmarking-results.json

- name: archive benchmarking results
uses: actions/upload-artifact@v4
with:
name: benchmarking-results-clang
path: build-clang-18/benchmarks/benchmarking-results.json
path: build/benchmarks/benchmarking-results.json
64 changes: 64 additions & 0 deletions .github/workflows/bvt-compatibility.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
on:
workflow_call:
inputs:
branch:
type: string
required: false

jobs:
bvt-compatibility:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}

- name: install compilers
run: |
sudo apt install -y gcc-13 g++-13 gcc-14 g++-14 clang-16 clang-17 clang-18 clang-19 libc++-19-dev

- name: check compiler versions
run: |
g++-13 --version
g++-14 --version
clang++-16 --version
clang++-17 --version
clang++-18 --version
clang++-19 --version

- name: build and run test with gcc 13
run: |
cmake -B build-gcc-13 -DCMAKE_C_COMPILER=gcc-13 -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_BUILD_TYPE=Release
cmake --build build-gcc-13 -j
ctest --test-dir build-gcc-13 -j

- name: build and run test with gcc 14
run: |
cmake -B build-gcc-14 -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_BUILD_TYPE=Release
cmake --build build-gcc-14 -j
ctest --test-dir build-gcc-14 -j

# Note that libc++ in Clang 19 is not compatible with Clang 16. Therefore, we fallback to libstdc++.
- name: build and run test with clang 16
run: |
cmake -B build-clang-16 -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_BUILD_TYPE=Release
cmake --build build-clang-16 -j
ctest --test-dir build-clang-16 -j

- name: build and run test with clang 17
run: |
cmake -B build-clang-17 -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release
cmake --build build-clang-17 -j
ctest --test-dir build-clang-17 -j

- name: build and run test with clang 18
run: |
cmake -B build-clang-18 -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release
cmake --build build-clang-18 -j
ctest --test-dir build-clang-18 -j

- name: build and run test with clang 19
run: |
cmake -B build-clang-19 -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release
cmake --build build-clang-19 -j
ctest --test-dir build-clang-19 -j
21 changes: 7 additions & 14 deletions .github/workflows/bvt-gcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,32 +15,25 @@ jobs:

- name: install gcc
run: |
sudo apt install -y gcc-13 g++-13 gcc-14 g++-14
sudo apt install -y gcc-14 g++-14

- name: check compiler versions
- name: check compiler version
run: |
g++-13 --version
g++-14 --version

- name: build and run test with gcc 13
run: |
cmake -B build-gcc-13 -DCMAKE_C_COMPILER=gcc-13 -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_BUILD_TYPE=Release
cmake --build build-gcc-13 -j
ctest --test-dir build-gcc-13 -j

- name: build and run test with gcc 14
run: |
cmake -B build-gcc-14 -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_BUILD_TYPE=Release
cmake --build build-gcc-14 -j
ctest --test-dir build-gcc-14 -j
cmake -B build -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
ctest --test-dir build -j

- name: run benchmarks
run: |
cd build-gcc-14/benchmarks
cd build/benchmarks
./msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > benchmarking-results.json

- name: archive benchmarking results
uses: actions/upload-artifact@v4
with:
name: benchmarking-results-gcc
path: build-gcc-14/benchmarks/benchmarking-results.json
path: build/benchmarks/benchmarking-results.json
4 changes: 2 additions & 2 deletions .github/workflows/bvt-msvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ on:

jobs:
bvt-msvc:
runs-on: windows-2022
runs-on: windows-2025
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}

- name: build and run test with MSVC
run: |
cmake -B build
cmake -B build -DCMAKE_CXX_STANDARD=23
cmake --build build --config Release -j
ctest --test-dir build -j

Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/bvt-nvhpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ jobs:
- name: build and run test with NVHPC 24.9
run: |
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/compilers/bin:$PATH; export PATH
cmake -B build-nv -DCMAKE_C_COMPILER=nvc -DCMAKE_CXX_COMPILER=nvc++ -DCMAKE_BUILD_TYPE=Release
cmake --build build-nv -j
ctest --test-dir build-nv -j
cmake -B build -DCMAKE_C_COMPILER=nvc -DCMAKE_CXX_COMPILER=nvc++ -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
ctest --test-dir build -j

- name: run benchmarks
run: |
cd build-nv/benchmarks
cd build/benchmarks
./msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > benchmarking-results.json

- name: archive benchmarking results
uses: actions/upload-artifact@v4
with:
name: benchmarking-results-nvhpc
path: build-nv/benchmarks/benchmarking-results.json
path: build/benchmarks/benchmarking-results.json
4 changes: 4 additions & 0 deletions .github/workflows/pipeline-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ jobs:
uses: ./.github/workflows/bvt-nvhpc.yml
name: Run BVT with NVHPC

run-bvt-compatibility:
uses: ./.github/workflows/bvt-compatibility.yml
name: Run BVT for compatibility

report:
uses: ./.github/workflows/bvt-report.yml
name: Generate report
Expand Down
2 changes: 2 additions & 0 deletions benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ target_link_libraries(msft_proxy_benchmarks PRIVATE msft_proxy benchmark::benchm

if (MSVC)
target_compile_options(msft_proxy_benchmarks PRIVATE /W4)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(msft_proxy_benchmarks PRIVATE -Wall -Wextra -Wpedantic -Wno-c++2b-extensions)
else()
target_compile_options(msft_proxy_benchmarks PRIVATE -Wall -Wextra -Wpedantic)
endif()
Loading