Skip to content

Commit 5c50b0d

Browse files
committed
Merge branch 'cpp_double_fp_backend' into develop
2 parents ae5167b + 7e26452 commit 5c50b0d

20 files changed

+841
-265
lines changed

.drone.star

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,11 @@ def main(ctx):
121121
linux_cxx("Ubuntu clang++-10 std=c++20 compile_fail examples", "clang++-10", packages="clang-10 libgmp-dev libmpfr-dev libmpc-dev libmpfi-dev libtommath-dev", llvm_os="xenial", llvm_ver="10", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TEST_SUITE': 'compile_fail examples', 'TOOLSET': 'clang', 'COMPILER': 'clang++-10', 'CXXSTD': 'c++20', }, globalenv=globalenv),
122122
linux_cxx("Ubuntu clang++-10 std=c++20 concepts", "clang++-10", packages="clang-10 libgmp-dev libmpfr-dev libmpc-dev libmpfi-dev libtommath-dev", llvm_os="xenial", llvm_ver="10", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-10', 'CXXSTD': 'c++20', 'TEST_SUITE': 'concepts', }, globalenv=globalenv),
123123

124+
# Slow test suite: specfun_cpp_bin_float
125+
# This test took over 6 hours on GHA
126+
linux_cxx("Ubuntu g++-10 std=gnu++17 specfun_cpp_bin_float", "g++-10", packages="g++-10 libgmp-dev libmpfr-dev libmpc-dev libmpfi-dev libtommath-dev", buildtype="boost", image="cppalliance/droneubuntu2004:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-10', 'CXXSTD': 'gnu++17', 'TEST_SUITE': 'specfun_cpp_bin_float', }, globalenv=globalenv),
127+
linux_cxx("Ubuntu g++-10 std=gnu++20 specfun_cpp_bin_float", "g++-10", packages="g++-10 libgmp-dev libmpfr-dev libmpc-dev libmpfi-dev libtommath-dev", buildtype="boost", image="cppalliance/droneubuntu2004:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-10', 'CXXSTD': 'gnu++20', 'TEST_SUITE': 'specfun_cpp_bin_float', }, globalenv=globalenv),
128+
124129
# Sanitizers:
125130
#linux_cxx("Ubuntu clang++-10 std=c++20 ASAN arithmetic_tests", "clang++-10", packages="clang-10 libgmp-dev libmpfr-dev libmpc-dev libmpfi-dev libtommath-dev", llvm_os="xenial", llvm_ver="10", buildtype="boost", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-10', 'CXXSTD': 'c++20', 'TEST_SUITE': 'cxxflags=-fsanitize=address linkflags=-fsanitize=address arithmetic_tests', }, globalenv=globalenv),
126131
#linux_cxx("Ubuntu clang++-10 std=c++20 ASAN cpp_int_test", "clang++-10", packages="clang-10 libgmp-dev libmpfr-dev libmpc-dev libmpfi-dev libtommath-dev", llvm_os="xenial", llvm_ver="10", buildtype="boost", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-10', 'CXXSTD': 'c++20', 'TEST_SUITE': 'cxxflags=-fsanitize=address linkflags=-fsanitize=address cpp_int_tests', }, globalenv=globalenv),

.github/workflows/multiprecision.yml

Lines changed: 57 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -143,22 +143,23 @@ jobs:
143143
- name: b2 config
144144
run: cat bin.v2/config.log
145145
working-directory: ../boost-root/
146-
ubuntu-jammy-gnu-df:
147-
runs-on: ubuntu-22.04
146+
ubuntu-noble:
147+
runs-on: ubuntu-24.04
148148
defaults:
149149
run:
150150
shell: bash
151151
strategy:
152152
fail-fast: false
153153
matrix:
154-
standard: [ gnu++14, gnu++20 ]
155-
suite: [ functions_df_gnu ]
154+
compiler: [ g++-13, g++-14, clang++-19 ]
155+
standard: [ c++14, c++17 ]
156+
suite: [ github_ci_block_1, github_ci_block_2 ]
156157
steps:
157158
- uses: actions/checkout@v4
158159
with:
159160
fetch-depth: '0'
160161
- name: Set TOOLSET
161-
run: echo g++ | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
162+
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
162163
- name: Add repository
163164
continue-on-error: true
164165
id: addrepo
@@ -173,6 +174,8 @@ jobs:
173174
id: retry2
174175
if: steps.retry1.outcome=='failure'
175176
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
177+
- name: Install packages
178+
run: sudo apt install g++-13 g++-14 clang-19 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
176179
- name: Checkout main boost
177180
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
178181
- name: Update tools/boostdep
@@ -191,28 +194,28 @@ jobs:
191194
run: ./b2 headers
192195
working-directory: ../boost-root
193196
- name: Generate user config
194-
run: 'echo "using $TOOLSET : : g++ : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
197+
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
195198
working-directory: ../boost-root
196199
- name: Config Info
197200
run: ../../../b2 print_config_info print_math_info toolset=$TOOLSET
198201
working-directory: ../boost-root/libs/config/test
199202
- name: Test
200-
run: ../../../b2 -j2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES define=BOOST_MP_SF_CONCEPT_TESTS
203+
run: ../../../b2 -j2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES include=/usr/include/eigen3
201204
working-directory: ../boost-root/libs/multiprecision/test
202205
- name: b2 config
203206
run: cat bin.v2/config.log
204207
working-directory: ../boost-root/
205-
ubuntu-focal:
206-
runs-on: ubuntu-20.04
208+
ubuntu-slow-tests:
209+
runs-on: ubuntu-24.04
207210
defaults:
208211
run:
209212
shell: bash
210213
strategy:
211214
fail-fast: false
212215
matrix:
213-
compiler: [ g++-10, g++-11, clang++-10, clang++-11 ]
214-
standard: [ c++14, c++17 ]
215-
suite: [ github_ci_block_1, github_ci_block_2 ]
216+
compiler: [ g++-13 ]
217+
standard: [ c++17, c++20 ]
218+
suite: [ specfun_mpfr, specfun_gmp, specfun_cpp_dec_float, specfun_float128, specfun_cpp_double_double ]
216219
steps:
217220
- uses: actions/checkout@v4
218221
with:
@@ -234,7 +237,7 @@ jobs:
234237
if: steps.retry1.outcome=='failure'
235238
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
236239
- name: Install packages
237-
run: sudo apt install g++-9 g++-10 g++-11 clang-10 clang-11 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
240+
run: sudo apt install g++-10 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
238241
- name: Checkout main boost
239242
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
240243
- name: Update tools/boostdep
@@ -264,17 +267,17 @@ jobs:
264267
- name: b2 config
265268
run: cat bin.v2/config.log
266269
working-directory: ../boost-root/
267-
ubuntu-focal-slow-tests:
268-
runs-on: ubuntu-20.04
270+
ubuntu-standalone-tests:
271+
runs-on: ubuntu-24.04
269272
defaults:
270273
run:
271274
shell: bash
272275
strategy:
273276
fail-fast: false
274277
matrix:
275-
compiler: [ g++-10 ]
276-
standard: [ c++17, c++2a ]
277-
suite: [ specfun_mpfr, specfun_gmp, specfun_cpp_dec_float, specfun_cpp_bin_float, specfun_float128, specfun_cpp_double_double ]
278+
compiler: [ g++-13 ]
279+
standard: [ c++14, c++17, c++20, c++23 ]
280+
suite: [ standalone ]
278281
steps:
279282
- uses: actions/checkout@v4
280283
with:
@@ -296,7 +299,7 @@ jobs:
296299
if: steps.retry1.outcome=='failure'
297300
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
298301
- name: Install packages
299-
run: sudo apt install g++-10 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
302+
run: sudo apt install g++-13 libgmp-dev libmpfr-dev libtommath-dev
300303
- name: Checkout main boost
301304
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
302305
- name: Update tools/boostdep
@@ -321,22 +324,22 @@ jobs:
321324
run: ../../../b2 print_config_info print_math_info toolset=$TOOLSET
322325
working-directory: ../boost-root/libs/config/test
323326
- name: Test
324-
run: ../../../b2 -j2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES include=/usr/include/eigen3
327+
run: ../../../b2 -j2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES
325328
working-directory: ../boost-root/libs/multiprecision/test
326329
- name: b2 config
327330
run: cat bin.v2/config.log
328331
working-directory: ../boost-root/
329-
ubuntu-focal-standalone-tests:
330-
runs-on: ubuntu-20.04
332+
ubuntu-ASAN:
333+
runs-on: ubuntu-latest
331334
defaults:
332335
run:
333336
shell: bash
334337
strategy:
335338
fail-fast: false
336339
matrix:
337-
compiler: [ g++-11 ]
338-
standard: [ c++14, c++17, c++20 ]
339-
suite: [ standalone ]
340+
compiler: [ g++-13 ]
341+
standard: [ c++20 ]
342+
suite: [ arithmetic_tests, functions_and_limits, conversions, cpp_int_tests, misc ]
340343
steps:
341344
- uses: actions/checkout@v4
342345
with:
@@ -358,7 +361,7 @@ jobs:
358361
if: steps.retry1.outcome=='failure'
359362
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
360363
- name: Install packages
361-
run: sudo apt install g++-11 libgmp-dev libmpfr-dev libtommath-dev
364+
run: sudo apt install g++-13 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev
362365
- name: Checkout main boost
363366
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
364367
- name: Update tools/boostdep
@@ -383,22 +386,22 @@ jobs:
383386
run: ../../../b2 print_config_info print_math_info toolset=$TOOLSET
384387
working-directory: ../boost-root/libs/config/test
385388
- name: Test
386-
run: ../../../b2 -j2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES
389+
run: ../../../b2 define=BOOST_CI_ASAN_BUILD define=BOOST_CI_SANITIZER_BUILD cxxflags=-fsanitize=address linkflags=-fsanitize=address toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES
387390
working-directory: ../boost-root/libs/multiprecision/test
388391
- name: b2 config
389392
run: cat bin.v2/config.log
390393
working-directory: ../boost-root/
391-
ubuntu-focal-ASAN:
392-
runs-on: ubuntu-20.04
394+
ubuntu-UBSAN:
395+
runs-on: ubuntu-24.04
393396
defaults:
394397
run:
395398
shell: bash
396399
strategy:
397400
fail-fast: false
398401
matrix:
399-
compiler: [ g++-10 ]
400-
standard: [ c++17 ]
401-
suite: [ arithmetic_tests, functions_and_limits, conversions, cpp_int_tests, misc ]
402+
compiler: [ g++-13 ]
403+
standard: [ c++20 ]
404+
suite: [ arithmetic_tests, functions_and_limits, misc ]
402405
steps:
403406
- uses: actions/checkout@v4
404407
with:
@@ -420,7 +423,7 @@ jobs:
420423
if: steps.retry1.outcome=='failure'
421424
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
422425
- name: Install packages
423-
run: sudo apt install g++-10 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev
426+
run: sudo apt install g++-13 libgmp-dev libeigen3-dev
424427
- name: Checkout main boost
425428
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
426429
- name: Update tools/boostdep
@@ -445,74 +448,55 @@ jobs:
445448
run: ../../../b2 print_config_info print_math_info toolset=$TOOLSET
446449
working-directory: ../boost-root/libs/config/test
447450
- name: Test
448-
run: ../../../b2 define=BOOST_CI_ASAN_BUILD define=BOOST_CI_SANITIZER_BUILD cxxflags=-fsanitize=address linkflags=-fsanitize=address toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES
451+
run: ../../../b2 define=BOOST_CI_UBSAN_BUILD define=BOOST_CI_SANITIZER_BUILD cxxflags=-fsanitize=undefined linkflags=-fsanitize=undefined toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES
449452
working-directory: ../boost-root/libs/multiprecision/test
450453
- name: b2 config
451454
run: cat bin.v2/config.log
452455
working-directory: ../boost-root/
453-
ubuntu-focal-UBSAN:
454-
runs-on: ubuntu-20.04
456+
windows_gcc:
457+
runs-on: windows-2019
455458
defaults:
456459
run:
457-
shell: bash
460+
shell: cmd
461+
env:
462+
ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }}
458463
strategy:
459464
fail-fast: false
460465
matrix:
461-
compiler: [ g++-10 ]
462-
standard: [ c++17 ]
463-
suite: [ arithmetic_tests, functions_and_limits, misc ]
466+
toolset: [ gcc ]
467+
standard: [ 14, 17 ]
468+
suite: [ github_ci_block_1, github_ci_block_2 ]
464469
steps:
465470
- uses: actions/checkout@v4
466471
with:
467472
fetch-depth: '0'
468-
- name: Set TOOLSET
469-
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
470-
- name: Add repository
471-
continue-on-error: true
472-
id: addrepo
473-
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
474-
- name: Retry Add Repo
475-
continue-on-error: true
476-
id: retry1
477-
if: steps.addrepo.outcome=='failure'
478-
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
479-
- name: Retry Add Repo 2
480-
continue-on-error: true
481-
id: retry2
482-
if: steps.retry1.outcome=='failure'
483-
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
484-
- name: Install packages
485-
run: sudo apt install g++-10 libgmp-dev libeigen3-dev
486473
- name: Checkout main boost
487474
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
488475
- name: Update tools/boostdep
489476
run: git submodule update --init tools/boostdep
490477
working-directory: ../boost-root
491478
- name: Copy files
492-
run: cp -r $GITHUB_WORKSPACE/* libs/multiprecision
479+
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\multiprecision
493480
working-directory: ../boost-root
494481
- name: Install deps
495482
run: python tools/boostdep/depinst/depinst.py multiprecision
496483
working-directory: ../boost-root
497484
- name: Bootstrap
498-
run: ./bootstrap.sh
485+
run: bootstrap
499486
working-directory: ../boost-root
500487
- name: Generate headers
501-
run: ./b2 headers
502-
working-directory: ../boost-root
503-
- name: Generate user config
504-
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
488+
run: b2 headers
505489
working-directory: ../boost-root
506490
- name: Config Info
507-
run: ../../../b2 print_config_info print_math_info toolset=$TOOLSET
491+
run: ..\..\..\b2 print_config_info print_math_info %ARGS%
508492
working-directory: ../boost-root/libs/config/test
509493
- name: Test
510-
run: ../../../b2 define=BOOST_CI_UBSAN_BUILD define=BOOST_CI_SANITIZER_BUILD cxxflags=-fsanitize=undefined linkflags=-fsanitize=undefined toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES
494+
run: ..\..\..\b2 -j2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }}
511495
working-directory: ../boost-root/libs/multiprecision/test
512496
- name: b2 config
513497
run: cat bin.v2/config.log
514498
working-directory: ../boost-root/
515-
windows_gcc:
499+
windows_msvc_14_2:
516500
runs-on: windows-2019
517501
defaults:
518502
run:
@@ -522,8 +506,8 @@ jobs:
522506
strategy:
523507
fail-fast: false
524508
matrix:
525-
toolset: [ gcc ]
526-
standard: [ 14, 17 ]
509+
toolset: [ msvc-14.2 ]
510+
standard: [ 14, 17, 20 ]
527511
suite: [ github_ci_block_1, github_ci_block_2 ]
528512
steps:
529513
- uses: actions/checkout@v4
@@ -550,13 +534,13 @@ jobs:
550534
run: ..\..\..\b2 print_config_info print_math_info %ARGS%
551535
working-directory: ../boost-root/libs/config/test
552536
- name: Test
553-
run: ..\..\..\b2 -j2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }}
537+
run: ..\..\..\b2 -j2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }} define=BOOST_MP_SF_CONCEPT_TESTS
554538
working-directory: ../boost-root/libs/multiprecision/test
555539
- name: b2 config
556540
run: cat bin.v2/config.log
557541
working-directory: ../boost-root/
558-
windows_msvc_14_2:
559-
runs-on: windows-2019
542+
windows_msvc_14_3:
543+
runs-on: windows-2022
560544
defaults:
561545
run:
562546
shell: cmd
@@ -565,7 +549,7 @@ jobs:
565549
strategy:
566550
fail-fast: false
567551
matrix:
568-
toolset: [ msvc-14.2 ]
552+
toolset: [ msvc-14.3 ]
569553
standard: [ 14, 17, 20 ]
570554
suite: [ github_ci_block_1, github_ci_block_2 ]
571555
steps:

0 commit comments

Comments
 (0)