From 999bf474339aabf37c6ab0d49fca824332f82c25 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Tue, 8 Apr 2025 13:51:48 -0400 Subject: [PATCH 1/6] Replace deprecated runners in CI --- .github/workflows/ci.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb0154b96..794f29cd8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -139,12 +139,12 @@ jobs: 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-focal-no-eh: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: - compiler: [ g++-9, g++-11, clang++-10 ] - standard: [ c++14, c++17, c++2a ] + compiler: [ g++-13, clang++-19 ] + standard: [ c++14, c++17, c++20, c++23 ] steps: - uses: actions/checkout@v4 with: @@ -166,7 +166,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++-9 g++-11 clang-9 clang-10 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-13 clang-19 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 @@ -408,11 +408,11 @@ jobs: - name: Test run: C:\\tools\\cygwin\\bin\\bash -l -c 'cd $(cygpath -u "$GITHUB_WORKSPACE")/../boost-root/libs/math/test && ../../../b2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER' standalone-compile-tests-gcc: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: - compiler: [ g++-10 ] + compiler: [ g++-13 ] steps: - uses: actions/checkout@v4 with: @@ -432,7 +432,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++-10 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-13 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 @@ -448,11 +448,11 @@ jobs: run: make -j$((`nproc`+1)) working-directory: ../boost-root/libs/math standalone-compile-tests-clang: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: - compiler: [ clang++-10 ] + compiler: [ clang++-19 ] steps: - uses: actions/checkout@v4 with: @@ -472,7 +472,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 clang-10 libgmp-dev libmpfr-dev libfftw3-dev libtbb-dev + run: sudo apt-get install -y clang-19 libgmp-dev libmpfr-dev libfftw3-dev libtbb-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep @@ -488,12 +488,12 @@ jobs: run: make -j$((`nproc`+1)) working-directory: ../boost-root/libs/math standalone-gcc: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: - compiler: [ g++-10 ] - standard: [ c++14, c++17, c++20 ] + compiler: [ g++-13 ] + standard: [ c++14, c++17, c++20, c++23 ] suite: [ github_ci_block_1, github_ci_block_2 ] steps: - uses: actions/checkout@v4 @@ -516,7 +516,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++-10 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-13 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 f795270b0d7b217633ddfc1c2e0a377b35d3095b Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Fri, 11 Apr 2025 20:08:59 +0100 Subject: [PATCH 2/6] Tentative build failure fix. --- test/Jamfile.v2 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 4adb29d16..88590d508 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -35,11 +35,11 @@ obj no_eh : noeh_support.cpp : /boost/config//boost_config ; project : requirements - /boost/math//boost_math - /boost/multiprecision//boost_multiprecision - /boost/test//included - /boost/type_index//boost_type_index - /boost/ublas//boost_ublas + #/boost/math//boost_math + #/boost/multiprecision//boost_multiprecision + #/boost/test//included + #/boost/type_index//boost_type_index + #/boost/ublas//boost_ublas $(OBJ_REMOVAL_OPTIONS) acc:+W2068,2461,2236,4070,4069 intel-win:-nologo From de452a3faddde41eeacf0599bd5774a30f8e69f4 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 12 Apr 2025 12:38:21 +0100 Subject: [PATCH 3/6] Correct compiler versions in CI. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 794f29cd8..e02aa05a3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -442,7 +442,7 @@ jobs: run: cp -r $GITHUB_WORKSPACE/* libs/math working-directory: ../boost-root - name: Run CMake - run: cmake -DBUILD_TESTING=1 -DCMAKE_CXX_COMPILER=g++-10 . + run: cmake -DBUILD_TESTING=1 -DCMAKE_CXX_COMPILER=g++-13 . working-directory: ../boost-root/libs/math - name: Run Compile Tests run: make -j$((`nproc`+1)) @@ -482,7 +482,7 @@ jobs: run: cp -r $GITHUB_WORKSPACE/* libs/math working-directory: ../boost-root - name: Run CMake - run: cmake -DBUILD_TESTING=1 -DCMAKE_CXX_COMPILER=clang++-10 . + run: cmake -DBUILD_TESTING=1 -DCMAKE_CXX_COMPILER=clang++-19 . working-directory: ../boost-root/libs/math - name: Run Compile Tests run: make -j$((`nproc`+1)) From 8e5df72a92650e42da6cdb53e2e6346d9d59b0cc Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 12 Apr 2025 12:38:54 +0100 Subject: [PATCH 4/6] Add workaround for std::float64_t in large constants. --- include/boost/math/tools/big_constant.hpp | 6 +++++- include/boost/math/tools/test_value.hpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/boost/math/tools/big_constant.hpp b/include/boost/math/tools/big_constant.hpp index 0d54976bc..8e731c090 100644 --- a/include/boost/math/tools/big_constant.hpp +++ b/include/boost/math/tools/big_constant.hpp @@ -80,11 +80,15 @@ inline constexpr T make_big_value(largest_float, const char* s, std::false_type // // For constants which might fit in a long double (if it's big enough): // +// Note that gcc-13 has std::is_convertible::value false, likewise +// std::is_constructible::value, even though the conversions do +// actually work. Workaround is the || std::is_floating_point::value part which thankfully is true. +// #define BOOST_MATH_BIG_CONSTANT(T, D, x)\ boost::math::tools::make_big_value(\ BOOST_MATH_LARGEST_FLOAT_C(x), \ BOOST_MATH_STRINGIZE(x), \ - std::integral_constant::value) && \ + std::integral_constant::value || std::is_floating_point::value) && \ ((D <= boost::math::tools::numeric_traits::digits) \ || std::is_floating_point::value \ || (boost::math::tools::numeric_traits::is_specialized && \ diff --git a/include/boost/math/tools/test_value.hpp b/include/boost/math/tools/test_value.hpp index 2cdc1a02a..c44fe0528 100644 --- a/include/boost/math/tools/test_value.hpp +++ b/include/boost/math/tools/test_value.hpp @@ -118,7 +118,7 @@ inline T create_test_value(largest_float, const char* str, const std::false_type std::numeric_limits::is_specialized &&\ (std::numeric_limits::radix == 2)\ && (std::numeric_limits::digits <= BOOST_MATH_TEST_LARGEST_FLOAT_DIGITS)\ - && std::is_convertible::value>(),\ + && (std::is_convertible::value || std::is_floating_point::value)>(),\ std::integral_constant::value>()\ ) From ed88f0ad099901dd2d55f29e8533a347dbd34fee Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 12 Apr 2025 12:39:27 +0100 Subject: [PATCH 5/6] Remove unneeded dependencies from Jamfile all together. --- test/Jamfile.v2 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 88590d508..4d630fe9e 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -35,11 +35,6 @@ obj no_eh : noeh_support.cpp : /boost/config//boost_config ; project : requirements - #/boost/math//boost_math - #/boost/multiprecision//boost_multiprecision - #/boost/test//included - #/boost/type_index//boost_type_index - #/boost/ublas//boost_ublas $(OBJ_REMOVAL_OPTIONS) acc:+W2068,2461,2236,4070,4069 intel-win:-nologo From 5a41763ea74301a4c9fc6971b4a41c5ffada09cd Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 12 Apr 2025 12:39:46 +0100 Subject: [PATCH 6/6] Correct #include. --- test/test_hermite.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_hermite.hpp b/test/test_hermite.hpp index 8f7c55ff1..821b39ee2 100644 --- a/test/test_hermite.hpp +++ b/test/test_hermite.hpp @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include "functor.hpp" #include "handle_test_result.hpp"