From 5bc4526be0dd792685dc950d546b3d39800dd359 Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Mon, 24 Mar 2025 10:09:12 -0600 Subject: [PATCH 1/3] Test clang 20 in CI. --- .circleci/config.yml | 16 ++++++++-------- .cirrus.yml | 26 +++++++++++++------------- .github/workflows/CI.yml | 32 +++++++++++++++++--------------- clang-format.sh | 2 +- 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d122a7cf7..761301d96 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,8 +46,8 @@ jobs: image: ubuntu-2404:edge resource_class: arm.medium environment: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 steps: - run: | export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|git@github.com:|https://github.com/|g"` @@ -58,8 +58,8 @@ jobs: sudo apt-get install -y cmake sudo apt-get install -y hwloc libhwloc-dev wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' - sudo apt-get install -y clang-19 + sudo apt-add-repository -y 'deb https://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' + sudo apt-get install -y clang-20 - run: | mkdir build pushd build @@ -85,8 +85,8 @@ jobs: image: ubuntu-2404:edge resource_class: arm.medium environment: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 CFLAGS: "-fsanitize=<< parameters.sanitizer >> -fno-sanitize-recover=all" CXXFLAGS: "-fsanitize=<< parameters.sanitizer >> -fno-sanitize-recover=all" LDFLAGS: "-fsanitize=<< parameters.sanitizer >> -fno-sanitize-recover=all" @@ -102,8 +102,8 @@ jobs: sudo apt-get install -y cmake sudo apt-get install -y hwloc libhwloc-dev wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' - sudo apt-get install -y clang-19 + sudo apt-add-repository -y 'deb https://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' + sudo apt-get install -y clang-20 - run: | mkdir build pushd build diff --git a/.cirrus.yml b/.cirrus.yml index 7c3a2fe8e..1345b4e7e 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -113,28 +113,28 @@ arm_linux_clang_task: timeout_in: 5m matrix: env: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 QTHREADS_SCHEDULER: nemesis QTHREADS_TOPOLOGY: no env: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 QTHREADS_SCHEDULER: nemesis QTHREADS_TOPOLOGY: hwloc env: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 QTHREADS_SCHEDULER: nemesis QTHREADS_TOPOLOGY: binders env: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 QTHREADS_SCHEDULER: sherwood QTHREADS_TOPOLOGY: no env: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 QTHREADS_SCHEDULER: distrib QTHREADS_TOPOLOGY: no install_deps_script: | @@ -145,9 +145,9 @@ arm_linux_clang_task: gpg --no-default-keyring --keyring ./tmp.gpg --export --output llvm-snapshot.gpg rm tmp.gpg cp llvm-snapshot.gpg /etc/apt/trusted.gpg.d/llvm-snapshot.gpg # This is for CI so no need to do something more complicated to restrict key use to a specific repo. - apt-add-repository -y 'deb https://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-19 main' - apt-add-repository -y 'deb https://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-19 main' # Something's buggy upstream but running this twice fixes it. - apt-get install -y clang-19 + apt-add-repository -y 'deb https://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-20 main' + apt-add-repository -y 'deb https://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-20 main' # Something's buggy upstream but running this twice fixes it. + apt-get install -y clang-20 apt-get install -y cmake apt-get install -y hwloc libhwloc-dev build_script: | diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 48d91e08f..6e713bad3 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -47,7 +47,7 @@ jobs: continue-on-error: true strategy: matrix: - clang_version: [14, 15, 16, 17, 18] + clang_version: [14, 15, 16, 17, 18, 19] scheduler: [nemesis, sherwood, distrib] topology: [hwloc, binders, no] include: @@ -61,6 +61,8 @@ jobs: gcc_version: 13 - clang_version: 18 gcc_version: 13 + - clang_version: 19 + gcc_version: 14 env: CC: clang-${{ matrix.clang_version }} CXX: clang++-${{ matrix.clang_version }} @@ -278,8 +280,8 @@ jobs: - sanitizer: thread topology: binders env: - CC: clang-19 - CXX: clang++-19 + CC: clang-20 + CXX: clang++-20 CFLAGS: "-fsanitize=${{ matrix.sanitizer }} -fno-sanitize-recover=all" CXXFLAGS: ${{ matrix.use_libcxx && format('-stdlib=libc++ -fsanitize={0} -fno-sanitize-recover=all', matrix.sanitizer) || format('-fsanitize={0} -fno-sanitize-recover=all', matrix.sanitizer) }} LDFLAGS: "-fsanitize=${{ matrix.sanitizer }} -fno-sanitize-recover=all" @@ -293,10 +295,10 @@ jobs: - name: install compiler run: | wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1 - sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' && break || sleep 1 - sudo apt-get install clang-19 + sudo apt-add-repository 'deb https://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' && break || sleep 1 + sudo apt-get install clang-20 - if: ${{ matrix.use_libcxx }} - run: sudo apt-get install libc++-19-dev libc++abi-19-dev + run: sudo apt-get install libc++-20-dev libc++abi-20-dev - if: ${{ matrix.topology != 'no' }} run: | sudo apt-get install hwloc libhwloc-dev @@ -330,8 +332,8 @@ jobs: - compiler: gcc use_libcxx: true env: - CC: ${{ matrix.compiler == 'gcc' && 'gcc-14' || 'clang-19' }} - CXX: ${{ matrix.compiler == 'gcc' && 'g++-14' || 'clang++-19' }} + CC: ${{ matrix.compiler == 'gcc' && 'gcc-14' || 'clang-20' }} + CXX: ${{ matrix.compiler == 'gcc' && 'g++-14' || 'clang++-20' }} CXXFLAGS: ${{ matrix.use_libcxx && '-stdlib=libc++' || '' }} QTHREADS_ENABLE_ASSERTS: ${{ matrix.use_asserts && '--enable-asserts' || '' }} steps: @@ -341,10 +343,10 @@ jobs: - if: ${{ matrix.compiler == 'clang' }} run: | wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1 - sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' && break || sleep 1 - sudo apt-get install clang-19 + sudo apt-add-repository 'deb https://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' && break || sleep 1 + sudo apt-get install clang-20 - if: ${{ matrix.use_libcxx }} - run: sudo apt-get install libc++-19-dev libc++abi-19-dev + run: sudo apt-get install libc++-20-dev libc++abi-20-dev - if: ${{ matrix.topology != 'no' }} run: | sudo apt-get install hwloc libhwloc-dev @@ -367,14 +369,14 @@ jobs: runs-on: ubuntu-24.04 continue-on-error: true env: - CC: 'clang-19' - CXX: 'clang++-19' + CC: 'clang-20' + CXX: 'clang++-20' steps: - uses: actions/checkout@v4 - run: | wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1 - sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' && break || sleep 1 - sudo apt-get install clang-format-19 + sudo apt-add-repository 'deb https://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' && break || sleep 1 + sudo apt-get install clang-format-20 - name: check formatting run: | clang-format --version diff --git a/clang-format.sh b/clang-format.sh index c50ccbdec..c629573d6 100644 --- a/clang-format.sh +++ b/clang-format.sh @@ -1 +1 @@ -find -iname *.h -or -iname *.c -or -iname *.hpp -or -iname *.cpp | xargs clang-format-19 -i +find -iname *.h -or -iname *.c -or -iname *.hpp -or -iname *.cpp | xargs clang-format-20 -i From 163756c0337619255bb4b30a0b8ef21d17824aab Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Mon, 24 Mar 2025 10:23:06 -0600 Subject: [PATCH 2/3] Run clang-format 20. --- test/benchmarks/sc12/log.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/benchmarks/sc12/log.h b/test/benchmarks/sc12/log.h index 150a605ba..9168cd2b1 100644 --- a/test/benchmarks/sc12/log.h +++ b/test/benchmarks/sc12/log.h @@ -32,13 +32,13 @@ double es = (1.0 / (1.0 - q * m)); \ fprintf(stdout, " q: %f\n", q); \ fprintf(stdout, " m: %d\n", m); \ - fprintf(stdout, " E(n): %f\n", q *m); \ + fprintf(stdout, " E(n): %f\n", q * m); \ fprintf(stdout, " E(s): %.2f\n", es); \ } \ if (tree_type == HYBRID) { \ fprintf(stdout, \ " Root-to-depth: %d\n", \ - (int)ceil(shift_depth *tree_depth)); \ + (int)ceil(shift_depth * tree_depth)); \ } \ if (tree_type == BALANCED) { \ fprintf(stdout, " Gen mx: %d\n", tree_depth); \ From 9731dc286ae468cdc23cf7300837887731f45b68 Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Mon, 24 Mar 2025 10:23:59 -0600 Subject: [PATCH 3/3] Add latest formatting commit to the list of ignored commits in github's blame feature. --- .git-blame-ignore-revs | 1 + 1 file changed, 1 insertion(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 130fa9c12..b00240171 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -2,3 +2,4 @@ 3ddc9da40f8b34565c90d17ef83a9ef95a9deb18 d1196d946c6551b205791f47ee952412e1a3e9bc 2368ba6baaeb986a16d7444edf412e3ef74296b4 +163756c0337619255bb4b30a0b8ef21d17824aab