From 4200543408edd5891079052a2fd3a4cbc1e1538a Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Tue, 21 May 2024 08:45:15 +0200 Subject: [PATCH 1/7] Remove MSVC-14.0 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ab36ec743..073ab21cc5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -185,7 +185,7 @@ jobs: strategy: fail-fast: false matrix: - toolset: [ msvc-14.0, msvc-14.2 ] + toolset: [ msvc-14.2 ] standard: [ 14, 17 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: From 993842ffdd09ddf3ae8ffc2e5a7d8c8432541740 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Tue, 21 May 2024 08:45:40 +0200 Subject: [PATCH 2/7] Add clang 15, 16, 17, 18 and GCC 14 --- .drone.star | 11 ++++++----- .github/workflows/ci.yml | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.drone.star b/.drone.star index 3a6a4739db..3fe60b42df 100644 --- a/.drone.star +++ b/.drone.star @@ -32,10 +32,10 @@ def main(ctx): # # Sanitizers: # - result.append(linux_cxx("Ubuntu g++-12 C++20 ASAN" + " " + suite, "g++-12", packages="g++-12", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-12', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=address -fsanitize=address -DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv)) - result.append(linux_cxx("Ubuntu g++-12 C++20 USAN" + " " + suite, "g++-12", packages="g++-12", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-12', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=undefined -fsanitize=undefined -DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv)) - result.append(linux_cxx("Ubuntu g++-12 C++20 TSAN" + " " + suite, "g++-12", packages="g++-12", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-12', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=thread -fsanitize=thread -DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv)) - result.append(linux_cxx("Ubuntu clang++-14 C++20 ISAN" + " " + suite, "clang++-14", packages="clang-14", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-14', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=integer -fsanitize=integer' }, globalenv=globalenv)) + result.append(linux_cxx("Ubuntu g++-14 C++20 ASAN" + " " + suite, "g++-14", packages="g++-14", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-14', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=address -fsanitize=address -DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv)) + result.append(linux_cxx("Ubuntu g++-14 C++20 USAN" + " " + suite, "g++-14", packages="g++-14", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-14', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=undefined -fsanitize=undefined -DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv)) + result.append(linux_cxx("Ubuntu g++-14 C++20 TSAN" + " " + suite, "g++-14", packages="g++-14", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-14', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=thread -fsanitize=thread -DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv)) + result.append(linux_cxx("Ubuntu clang++-18 C++20 ISAN" + " " + suite, "clang++-18", packages="clang-18", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-18', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '-fsanitize=integer -fsanitize=integer' }, globalenv=globalenv)) for suite in things_to_test: for cxx in gnu_5_stds: @@ -63,7 +63,8 @@ def main(ctx): result.append(osx_cxx("M1 Clang " + cxx + " " + suite, "clang++", buildscript="drone", buildtype="boost", xcode_version="14.1", environment={'TOOLSET': 'clang', 'CXXSTD': cxx, 'TEST_SUITE': suite, 'DEFINE': 'BOOST_MATH_NO_REAL_CONCEPT_TESTS,BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS,BOOST_MATH_MULTI_ARCH_CI_RUN', }, globalenv=globalenv)) for suite in gcc13_things_to_test: for cxx in gcc13_stds: - result.append(linux_cxx("Ubuntu g++-13 " + cxx + " " + suite, "g++-13", packages="g++-13", buildtype="boost", image="cppalliance/droneubuntu2304:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-13', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv)) + result.append(linux_cxx("Ubuntu g++-13 " + cxx + " " + suite, "g++-13", packages="g++-13", buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-13', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv)) + result.append(linux_cxx("Ubuntu g++-14 " + cxx + " " + suite, "g++-14", packages="g++-14", buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-14', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv)) return result diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 073ab21cc5..13c8c7c7d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - compiler: [ g++-12, clang++-14 ] + compiler: [ g++-12, clang++-14, clang++-15, clang++-16, clang++-17 ] standard: [ c++14, c++17 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: @@ -48,7 +48,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt-get install -y g++-12 clang-14 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-12 clang-14 clang-15 clang-16 clang-17 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep From 0d9707dcbf93287ab25ba8f1a755472683423950 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Tue, 21 May 2024 09:55:26 +0200 Subject: [PATCH 3/7] Update OS for clang-17 and add clang-18 --- .github/workflows/ci.yml | 64 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 13c8c7c7d8..ff4afbf9e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,12 +19,72 @@ concurrency: cancel-in-progress: true jobs: + ubuntu-noble: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + compiler: [ g++-13, g++-14, clang++-17, clang++-18 ] + standard: [ c++20, c++23 ] + suite: [ github_ci_block_1, github_ci_block_2 ] + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: '0' + - name: Set TOOLSET + run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV + - name: Add repository + continue-on-error: true + id: addrepo + run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" + - name: Retry Add Repo + continue-on-error: true + id: retry1 + if: steps.addrepo.outcome=='failure' + run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" + - name: Retry Add Repo 2 + continue-on-error: true + id: retry2 + if: steps.retry1.outcome=='failure' + run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" + - name: Install packages + run: sudo apt-get install -y g++-13 g++-14 clang-17 clang-18 libgmp-dev libmpfr-dev libfftw3-dev + - name: Checkout main boost + run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + - name: Update tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: cp -r $GITHUB_WORKSPACE/* libs/math + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py math -I example -I tools + working-directory: ../boost-root + - name: Bootstrap + run: ./bootstrap.sh + working-directory: ../boost-root + - name: Generate headers + run: ./b2 headers + working-directory: ../boost-root + - name: Generate user config + run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : -std=${{ matrix.standard }} ;" > ~/user-config.jam' + working-directory: ../boost-root + - name: Config info install + run: ../../../b2 config_info_travis_install toolset=$TOOLSET + working-directory: ../boost-root/libs/config/test + - name: Config info + run: ./config_info_travis + working-directory: ../boost-root/libs/config/test + - name: Test + run: ../../../b2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER define=BOOST_MATH_RUN_MP_TESTS + working-directory: ../boost-root/libs/math/test + ubuntu-jammy: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: - compiler: [ g++-12, clang++-14, clang++-15, clang++-16, clang++-17 ] + compiler: [ g++-12, clang++-14, clang++-15, clang++-16 ] standard: [ c++14, c++17 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: @@ -48,7 +108,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt-get install -y g++-12 clang-14 clang-15 clang-16 clang-17 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-12 clang-14 clang-15 clang-16 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep From 993f0822173028d79c9e9ffb864300338fb3c538 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Tue, 21 May 2024 10:01:42 +0200 Subject: [PATCH 4/7] Change clang-16 OS --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff4afbf9e4..8ebcdd2bf6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - compiler: [ g++-13, g++-14, clang++-17, clang++-18 ] + compiler: [ g++-13, g++-14, clang++-16, clang++-17, clang++-18 ] standard: [ c++20, c++23 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: @@ -48,7 +48,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt-get install -y g++-13 g++-14 clang-17 clang-18 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-13 g++-14 clang-16 clang-17 clang-18 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep @@ -84,7 +84,7 @@ jobs: strategy: fail-fast: false matrix: - compiler: [ g++-12, clang++-14, clang++-15, clang++-16 ] + compiler: [ g++-12, clang++-14, clang++-15 ] standard: [ c++14, c++17 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: @@ -108,7 +108,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt-get install -y g++-12 clang-14 clang-15 clang-16 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-12 clang-14 clang-15 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep From 851ebe031c83d5bfd0fcc4f59576525cdf0cae90 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Tue, 21 May 2024 10:08:56 +0200 Subject: [PATCH 5/7] Change language standard --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ebcdd2bf6..ef0095aad5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: fail-fast: false matrix: compiler: [ g++-13, g++-14, clang++-16, clang++-17, clang++-18 ] - standard: [ c++20, c++23 ] + standard: [ c++20 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: - uses: actions/checkout@v4 From e10b34fee7358162f658be5b24f8dd09dc724072 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Thu, 23 May 2024 10:59:38 +0200 Subject: [PATCH 6/7] Disable test on mac for now --- test/test_autodiff_5.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/test_autodiff_5.cpp b/test/test_autodiff_5.cpp index 8c875c31f5..966568cc5a 100644 --- a/test/test_autodiff_5.cpp +++ b/test/test_autodiff_5.cpp @@ -46,6 +46,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(cbrt_hpp, T, all_float_types) { } } +#if !defined(__APPLE__) BOOST_AUTO_TEST_CASE_TEMPLATE(chebyshev_hpp, T, all_float_types) { using test_constants = test_constants_t; static constexpr auto m = test_constants::order; @@ -87,6 +88,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(chebyshev_hpp, T, all_float_types) { } } } +#endif BOOST_AUTO_TEST_CASE_TEMPLATE(cospi_hpp, T, all_float_types) { using test_constants = test_constants_t; From 1ec166172bb9b1dbcc027b09070911ce1907e3a0 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Thu, 23 May 2024 11:23:24 +0200 Subject: [PATCH 7/7] Move GCC-13 to only drone since GHA gives SIGTERM --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef0095aad5..cdd5404fcf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - compiler: [ g++-13, g++-14, clang++-16, clang++-17, clang++-18 ] + compiler: [ g++-14, clang++-16, clang++-17, clang++-18 ] standard: [ c++20 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: