Skip to content

Commit e0c1125

Browse files
authored
Merge pull request #710 from boostorg/develop
Merge to Master for 1.89
2 parents 6511131 + f81c13b commit e0c1125

File tree

172 files changed

+11358
-1549
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+11358
-1549
lines changed

.circleci/config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
- BOOST_LIBRARY=multiprecision
77
- CXX_STANDARD=gnu++11
88
docker:
9-
- image: gcc:7
9+
- image: gcc:9
1010
steps:
1111
- checkout
1212
- run:
@@ -46,11 +46,11 @@ jobs:
4646
- run:
4747
name: Building inspect
4848
command: |
49-
cd $BOOST/boost/tools/inspect/build && ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxflags="-std=gnu++14" release dist-bin
49+
cd $BOOST/boost/tools/inspect && ../../b2 -j1 toolset=gcc variant=release dist-bin
5050
- run:
5151
name: Building docs
5252
command: |
53-
cd $BOOST_REMOVE/doc && rm -rf html/boost_multiprecision && ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxflags="-std=gnu++14" release
53+
cd $BOOST_REMOVE/doc && rm -rf html/boost_multiprecision && ../../../b2 -j1
5454
- run:
5555
name: Running Inspect
5656
command: |

.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),

.drone/after-success.sh

100755100644
File mode changed.

.drone/before-install.sh

100755100644
File mode changed.

.drone/before-script.sh

100755100644
File mode changed.

.drone/boost.sh

100755100644
File mode changed.

.github/workflows/codecov.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,23 @@ jobs:
4040
matrix:
4141
include:
4242
- { name: Collect coverage 1, coverage: yes,
43-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'arithmetic_tests' }
43+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'arithmetic_tests' }
4444
- { name: Collect coverage 2, coverage: yes,
45-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'cpp_int_tests' }
45+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'cpp_int_tests' }
4646
- { name: Collect coverage 3, coverage: yes,
47-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'functions_and_limits' }
47+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'functions_and_limits' }
4848
- { name: Collect coverage 4, coverage: yes,
49-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'conversions' }
49+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'conversions' }
5050
- { name: Collect coverage 5, coverage: yes,
51-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'performance' }
51+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'performance' }
5252
- { name: Collect coverage 6, coverage: yes,
53-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'misc' }
53+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'misc' }
5454
- { name: Collect coverage 7, coverage: yes,
55-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'compile_fail' }
55+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'compile_fail' }
5656
- { name: Collect coverage 8, coverage: yes,
57-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'examples' }
57+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'examples' }
5858
- { name: Collect coverage 9, coverage: yes,
59-
compiler: gcc-12, cxxstd: '20', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '64', suite: 'concepts' }
59+
compiler: gcc-13, cxxstd: '20', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '64', suite: 'concepts' }
6060

6161
#timeout-minutes: 120
6262
runs-on: ${{matrix.os}}

.github/workflows/multiprecision.yml

Lines changed: 33 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -20,78 +20,16 @@ concurrency:
2020
cancel-in-progress: true
2121

2222
jobs:
23-
ubuntu-jammy:
24-
runs-on: ubuntu-22.04
23+
ubuntu-noble-specfun:
24+
runs-on: ubuntu-24.04
2525
defaults:
2626
run:
2727
shell: bash
2828
strategy:
2929
fail-fast: false
3030
matrix:
31-
compiler: [ g++-12, clang++-14 ]
32-
standard: [ c++14, c++17 ]
33-
suite: [ github_ci_block_1, github_ci_block_2 ]
34-
steps:
35-
- uses: actions/checkout@v4
36-
with:
37-
fetch-depth: '0'
38-
- name: Set TOOLSET
39-
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
40-
- name: Add repository
41-
continue-on-error: true
42-
id: addrepo
43-
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
44-
- name: Retry Add Repo
45-
continue-on-error: true
46-
id: retry1
47-
if: steps.addrepo.outcome=='failure'
48-
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
49-
- name: Retry Add Repo 2
50-
continue-on-error: true
51-
id: retry2
52-
if: steps.retry1.outcome=='failure'
53-
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
54-
- name: Install packages
55-
run: sudo apt install g++-12 clang-14 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
56-
- name: Checkout main boost
57-
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
58-
- name: Update tools/boostdep
59-
run: git submodule update --init tools/boostdep
60-
working-directory: ../boost-root
61-
- name: Copy files
62-
run: cp -r $GITHUB_WORKSPACE/* libs/multiprecision
63-
working-directory: ../boost-root
64-
- name: Install deps
65-
run: python tools/boostdep/depinst/depinst.py multiprecision
66-
working-directory: ../boost-root
67-
- name: Bootstrap
68-
run: ./bootstrap.sh
69-
working-directory: ../boost-root
70-
- name: Generate headers
71-
run: ./b2 headers
72-
working-directory: ../boost-root
73-
- name: Generate user config
74-
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
75-
working-directory: ../boost-root
76-
- name: Config Info
77-
run: ../../../b2 print_config_info print_math_info toolset=$TOOLSET
78-
working-directory: ../boost-root/libs/config/test
79-
- name: Test
80-
run: ../../../b2 -j2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES define=BOOST_MP_SF_CONCEPT_TESTS include=/usr/include/eigen3
81-
working-directory: ../boost-root/libs/multiprecision/test
82-
- name: b2 config
83-
run: cat bin.v2/config.log
84-
working-directory: ../boost-root/
85-
ubuntu-jammy-specfun:
86-
runs-on: ubuntu-22.04
87-
defaults:
88-
run:
89-
shell: bash
90-
strategy:
91-
fail-fast: false
92-
matrix:
93-
compiler: [ g++-12 ]
94-
suite: [ specfun_mpfr, specfun_gmp, specfun_cpp_dec_float, specfun_cpp_bin_float, specfun_float128 ]
31+
compiler: [ g++-14 ]
32+
suite: [ specfun_mpfr, specfun_gmp, specfun_cpp_dec_float, specfun_cpp_bin_float, specfun_float128, specfun_cpp_double_double ]
9533
steps:
9634
- uses: actions/checkout@v4
9735
with:
@@ -113,7 +51,7 @@ jobs:
11351
if: steps.retry1.outcome=='failure'
11452
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
11553
- name: Install packages
116-
run: sudo apt install g++-12 clang-14 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
54+
run: sudo apt install g++-14 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
11755
- name: Checkout main boost
11856
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
11957
- name: Update tools/boostdep
@@ -143,15 +81,15 @@ jobs:
14381
- name: b2 config
14482
run: cat bin.v2/config.log
14583
working-directory: ../boost-root/
146-
ubuntu-focal:
147-
runs-on: ubuntu-20.04
84+
ubuntu-noble:
85+
runs-on: ubuntu-24.04
14886
defaults:
14987
run:
15088
shell: bash
15189
strategy:
15290
fail-fast: false
15391
matrix:
154-
compiler: [ g++-10, g++-11, clang++-10, clang++-11 ]
92+
compiler: [ g++-13, g++-14, clang++-19 ]
15593
standard: [ c++14, c++17 ]
15694
suite: [ github_ci_block_1, github_ci_block_2 ]
15795
steps:
@@ -175,7 +113,7 @@ jobs:
175113
if: steps.retry1.outcome=='failure'
176114
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
177115
- name: Install packages
178-
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
116+
run: sudo apt install g++-13 g++-14 clang-19 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
179117
- name: Checkout main boost
180118
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
181119
- name: Update tools/boostdep
@@ -205,17 +143,17 @@ jobs:
205143
- name: b2 config
206144
run: cat bin.v2/config.log
207145
working-directory: ../boost-root/
208-
ubuntu-focal-slow-tests:
209-
runs-on: ubuntu-20.04
146+
ubuntu-slow-tests:
147+
runs-on: ubuntu-24.04
210148
defaults:
211149
run:
212150
shell: bash
213151
strategy:
214152
fail-fast: false
215153
matrix:
216-
compiler: [ g++-10 ]
217-
standard: [ c++17, c++2a ]
218-
suite: [ specfun_mpfr, specfun_gmp, specfun_cpp_dec_float, specfun_cpp_bin_float, specfun_float128 ]
154+
compiler: [ g++-13 ]
155+
standard: [ c++17, c++20 ]
156+
suite: [ specfun_mpfr, specfun_gmp, specfun_cpp_dec_float, specfun_float128, specfun_cpp_double_double ]
219157
steps:
220158
- uses: actions/checkout@v4
221159
with:
@@ -267,16 +205,16 @@ jobs:
267205
- name: b2 config
268206
run: cat bin.v2/config.log
269207
working-directory: ../boost-root/
270-
ubuntu-focal-standalone-tests:
271-
runs-on: ubuntu-20.04
208+
ubuntu-standalone-tests:
209+
runs-on: ubuntu-24.04
272210
defaults:
273211
run:
274212
shell: bash
275213
strategy:
276214
fail-fast: false
277215
matrix:
278-
compiler: [ g++-11 ]
279-
standard: [ c++14, c++17, c++20 ]
216+
compiler: [ g++-13 ]
217+
standard: [ c++14, c++17, c++20, c++23 ]
280218
suite: [ standalone ]
281219
steps:
282220
- uses: actions/checkout@v4
@@ -299,7 +237,7 @@ jobs:
299237
if: steps.retry1.outcome=='failure'
300238
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
301239
- name: Install packages
302-
run: sudo apt install g++-11 libgmp-dev libmpfr-dev libtommath-dev
240+
run: sudo apt install g++-13 libgmp-dev libmpfr-dev libtommath-dev
303241
- name: Checkout main boost
304242
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
305243
- name: Update tools/boostdep
@@ -329,16 +267,16 @@ jobs:
329267
- name: b2 config
330268
run: cat bin.v2/config.log
331269
working-directory: ../boost-root/
332-
ubuntu-focal-ASAN:
333-
runs-on: ubuntu-20.04
270+
ubuntu-ASAN:
271+
runs-on: ubuntu-latest
334272
defaults:
335273
run:
336274
shell: bash
337275
strategy:
338276
fail-fast: false
339277
matrix:
340-
compiler: [ g++-10 ]
341-
standard: [ c++17 ]
278+
compiler: [ g++-13 ]
279+
standard: [ c++20 ]
342280
suite: [ arithmetic_tests, functions_and_limits, conversions, cpp_int_tests, misc ]
343281
steps:
344282
- uses: actions/checkout@v4
@@ -361,7 +299,7 @@ jobs:
361299
if: steps.retry1.outcome=='failure'
362300
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
363301
- name: Install packages
364-
run: sudo apt install g++-10 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev
302+
run: sudo apt install g++-13 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev
365303
- name: Checkout main boost
366304
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
367305
- name: Update tools/boostdep
@@ -391,16 +329,16 @@ jobs:
391329
- name: b2 config
392330
run: cat bin.v2/config.log
393331
working-directory: ../boost-root/
394-
ubuntu-focal-UBSAN:
395-
runs-on: ubuntu-20.04
332+
ubuntu-UBSAN:
333+
runs-on: ubuntu-24.04
396334
defaults:
397335
run:
398336
shell: bash
399337
strategy:
400338
fail-fast: false
401339
matrix:
402-
compiler: [ g++-10 ]
403-
standard: [ c++17 ]
340+
compiler: [ g++-13 ]
341+
standard: [ c++20 ]
404342
suite: [ arithmetic_tests, functions_and_limits, misc ]
405343
steps:
406344
- uses: actions/checkout@v4
@@ -423,7 +361,7 @@ jobs:
423361
if: steps.retry1.outcome=='failure'
424362
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
425363
- name: Install packages
426-
run: sudo apt install g++-10 libgmp-dev libeigen3-dev
364+
run: sudo apt install g++-13 libgmp-dev libeigen3-dev
427365
- name: Checkout main boost
428366
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
429367
- name: Update tools/boostdep
@@ -454,7 +392,7 @@ jobs:
454392
run: cat bin.v2/config.log
455393
working-directory: ../boost-root/
456394
windows_gcc:
457-
runs-on: windows-2019
395+
runs-on: windows-latest
458396
defaults:
459397
run:
460398
shell: cmd
@@ -496,8 +434,8 @@ jobs:
496434
- name: b2 config
497435
run: cat bin.v2/config.log
498436
working-directory: ../boost-root/
499-
windows_msvc_14_2:
500-
runs-on: windows-2019
437+
windows_msvc_14_3:
438+
runs-on: windows-2022
501439
defaults:
502440
run:
503441
shell: cmd
@@ -506,7 +444,7 @@ jobs:
506444
strategy:
507445
fail-fast: false
508446
matrix:
509-
toolset: [ msvc-14.2 ]
447+
toolset: [ msvc-14.3 ]
510448
standard: [ 14, 17, 20 ]
511449
suite: [ github_ci_block_1, github_ci_block_2 ]
512450
steps:

.gitignore

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
# /boost/libs/multiprecision/.gitignore
2-
# Use of manifest is unclear, so add to .gitignore.
3-
/doc/html/standalone_HTML.manifest
4-
*.DS_Store
5-
/**/*.dSYM/
6-
**/.temps/*
7-
build/*
8-
.vscode/*
9-
.idea/*
10-
11-
# CMake Related Options
12-
*.a
13-
*.o
14-
cmake_install.cmake
15-
CMakeCache.txt
16-
Makefile
17-
**/CMakeFiles/**
18-
**CTestTestfile.cmake
19-
DartConfiguration.tcl
20-
cmake-build-debug/*
1+
# /boost/libs/multiprecision/.gitignore
2+
# Use of manifest is unclear, so add to .gitignore.
3+
/doc/html/standalone_HTML.manifest
4+
*.DS_Store
5+
/**/*.dSYM/
6+
**/.temps/*
7+
build/*
8+
.vscode/*
9+
.idea/*
10+
11+
# CMake Related Options
12+
*.a
13+
*.o
14+
cmake_install.cmake
15+
CMakeCache.txt
16+
Makefile
17+
**/CMakeFiles/**
18+
**CTestTestfile.cmake
19+
DartConfiguration.tcl
20+
cmake-build-debug/*

CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@ else()
3838

3939
endif()
4040

41-
# Only enable tests when we're the root project
41+
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
42+
43+
add_subdirectory(test)
44+
45+
endif()
46+
4247
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
4348

4449
#Testing with CMake not currently used

0 commit comments

Comments
 (0)