Skip to content

Commit 90149ad

Browse files
authored
Merge pull request #642 from boostorg/develop
Merge to Master for 1.87
2 parents b484d2f + 18be0ff commit 90149ad

File tree

11 files changed

+189
-323
lines changed

11 files changed

+189
-323
lines changed

.circleci/config.yml

Lines changed: 0 additions & 224 deletions
Original file line numberDiff line numberDiff line change
@@ -55,232 +55,8 @@ jobs:
5555
name: Running Inspect
5656
command: |
5757
cd $BOOST_REMOVE && ../../dist/bin/inspect -text
58-
specfun_mpfr:
59-
environment:
60-
- BOOST_LIBRARY=multiprecision
61-
- CXX_STANDARD=gnu++17
62-
docker:
63-
- image: gcc:9
64-
steps:
65-
- checkout
66-
- run:
67-
name: Setting up Environment
68-
command: |
69-
echo 'export BOOST="$HOME/boost-local"' >> $BASH_ENV
70-
if [ $CIRCLE_BRANCH = "master" ]; then
71-
echo 'export BOOST_BRANCH="master"' >> $BASH_ENV;
72-
else
73-
echo 'export BOOST_BRANCH="develop"' >> $BASH_ENV;
74-
fi
75-
echo 'export BOOST_REMOVE="$BOOST/boost/libs/$BOOST_LIBRARY"' >> $BASH_ENV
76-
HOME_SED_=$(echo $HOME | sed -e 's/\//\\\//g')
77-
echo 'export HOME_SED=$HOME_SED_' >> $BASH_ENV
78-
- run:
79-
name: install pre dependencies
80-
command: |
81-
apt-get update -yqq
82-
apt-get install git libmpfr-dev libgmp-dev -y
83-
- run:
84-
name: Initializing git repo for boost
85-
command: |
86-
echo BOOST=$BOOST BOOST_REMOVE=$BOOST_REMOVE BOOST_LIBRARY=$BOOST_LIBRARY BOOST_BRANCH=$BOOST_BRANCH PWD=$PWD
87-
mkdir $BOOST
88-
cd $BOOST
89-
git clone --single-branch --branch $BOOST_BRANCH https://github.com/boostorg/boost.git
90-
cd boost
91-
git submodule update --init --merge
92-
rm -rf $BOOST_REMOVE
93-
mv $HOME/project $BOOST_REMOVE
94-
- run:
95-
name: Bootstrapping boost-build
96-
command: |
97-
cd $BOOST/boost && ./bootstrap.sh && ./b2 headers
98-
- run:
99-
name: Building specfun MPFR Tests
100-
command: |
101-
cd $BOOST/boost/libs/multiprecision/test && ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxstd=17 cxxstd-dialect=gnu specfun_mpfr
102-
specfun_gmp:
103-
environment:
104-
- BOOST_LIBRARY=multiprecision
105-
- CXX_STANDARD=gnu++17
106-
docker:
107-
- image: gcc:9
108-
steps:
109-
- checkout
110-
- run:
111-
name: Setting up Environment
112-
command: |
113-
echo 'export BOOST="$HOME/boost-local"' >> $BASH_ENV
114-
if [ $CIRCLE_BRANCH = "master" ]; then
115-
echo 'export BOOST_BRANCH="master"' >> $BASH_ENV;
116-
else
117-
echo 'export BOOST_BRANCH="develop"' >> $BASH_ENV;
118-
fi
119-
echo 'export BOOST_REMOVE="$BOOST/boost/libs/$BOOST_LIBRARY"' >> $BASH_ENV
120-
HOME_SED_=$(echo $HOME | sed -e 's/\//\\\//g')
121-
echo 'export HOME_SED=$HOME_SED_' >> $BASH_ENV
122-
- run:
123-
name: install pre dependencies
124-
command: |
125-
apt-get update -yqq
126-
apt-get install git libgmp-dev -y
127-
- run:
128-
name: Initializing git repo for boost
129-
command: |
130-
echo BOOST=$BOOST BOOST_REMOVE=$BOOST_REMOVE BOOST_LIBRARY=$BOOST_LIBRARY BOOST_BRANCH=$BOOST_BRANCH PWD=$PWD
131-
mkdir $BOOST
132-
cd $BOOST
133-
git clone --single-branch --branch $BOOST_BRANCH https://github.com/boostorg/boost.git
134-
cd boost
135-
git submodule update --init --merge
136-
rm -rf $BOOST_REMOVE
137-
mv $HOME/project $BOOST_REMOVE
138-
- run:
139-
name: Bootstrapping boost-build
140-
command: |
141-
cd $BOOST/boost && ./bootstrap.sh && ./b2 headers
142-
- run:
143-
name: Building specfun GMP Tests
144-
command: |
145-
cd $BOOST/boost/libs/multiprecision/test && ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxstd=17 cxxstd-dialect=gnu specfun_gmp
146-
specfun_cpp_dec_float:
147-
environment:
148-
- BOOST_LIBRARY=multiprecision
149-
- CXX_STANDARD=gnu++17
150-
docker:
151-
- image: gcc:9
152-
steps:
153-
- checkout
154-
- run:
155-
name: Setting up Environment
156-
command: |
157-
echo 'export BOOST="$HOME/boost-local"' >> $BASH_ENV
158-
if [ $CIRCLE_BRANCH = "master" ]; then
159-
echo 'export BOOST_BRANCH="master"' >> $BASH_ENV;
160-
else
161-
echo 'export BOOST_BRANCH="develop"' >> $BASH_ENV;
162-
fi
163-
echo 'export BOOST_REMOVE="$BOOST/boost/libs/$BOOST_LIBRARY"' >> $BASH_ENV
164-
HOME_SED_=$(echo $HOME | sed -e 's/\//\\\//g')
165-
echo 'export HOME_SED=$HOME_SED_' >> $BASH_ENV
166-
- run:
167-
name: install pre dependencies
168-
command: |
169-
apt-get update -yqq
170-
apt-get install git -y
171-
- run:
172-
name: Initializing git repo for boost
173-
command: |
174-
echo BOOST=$BOOST BOOST_REMOVE=$BOOST_REMOVE BOOST_LIBRARY=$BOOST_LIBRARY BOOST_BRANCH=$BOOST_BRANCH PWD=$PWD
175-
mkdir $BOOST
176-
cd $BOOST
177-
git clone --single-branch --branch $BOOST_BRANCH https://github.com/boostorg/boost.git
178-
cd boost
179-
git submodule update --init --merge
180-
rm -rf $BOOST_REMOVE
181-
mv $HOME/project $BOOST_REMOVE
182-
- run:
183-
name: Bootstrapping boost-build
184-
command: |
185-
cd $BOOST/boost && ./bootstrap.sh && ./b2 headers
186-
- run:
187-
name: Building specfun cpp_dec_float Tests
188-
command: |
189-
cd $BOOST/boost/libs/multiprecision/test && ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxstd=17 cxxstd-dialect=gnu specfun_cpp_dec_float
190-
specfun_cpp_bin_float:
191-
environment:
192-
- BOOST_LIBRARY=multiprecision
193-
- CXX_STANDARD=gnu++17
194-
docker:
195-
- image: gcc:9
196-
steps:
197-
- checkout
198-
- run:
199-
name: Setting up Environment
200-
command: |
201-
echo 'export BOOST="$HOME/boost-local"' >> $BASH_ENV
202-
if [ $CIRCLE_BRANCH = "master" ]; then
203-
echo 'export BOOST_BRANCH="master"' >> $BASH_ENV;
204-
else
205-
echo 'export BOOST_BRANCH="develop"' >> $BASH_ENV;
206-
fi
207-
echo 'export BOOST_REMOVE="$BOOST/boost/libs/$BOOST_LIBRARY"' >> $BASH_ENV
208-
HOME_SED_=$(echo $HOME | sed -e 's/\//\\\//g')
209-
echo 'export HOME_SED=$HOME_SED_' >> $BASH_ENV
210-
- run:
211-
name: install pre dependencies
212-
command: |
213-
apt-get update -yqq
214-
apt-get install git -y
215-
- run:
216-
name: Initializing git repo for boost
217-
command: |
218-
echo BOOST=$BOOST BOOST_REMOVE=$BOOST_REMOVE BOOST_LIBRARY=$BOOST_LIBRARY BOOST_BRANCH=$BOOST_BRANCH PWD=$PWD
219-
mkdir $BOOST
220-
cd $BOOST
221-
git clone --single-branch --branch $BOOST_BRANCH https://github.com/boostorg/boost.git
222-
cd boost
223-
git submodule update --init --merge
224-
rm -rf $BOOST_REMOVE
225-
mv $HOME/project $BOOST_REMOVE
226-
- run:
227-
name: Bootstrapping boost-build
228-
command: |
229-
cd $BOOST/boost && ./bootstrap.sh && ./b2 headers
230-
- run:
231-
name: Building specfun cpp_bin_float Tests
232-
command: |
233-
cd $BOOST/boost/libs/multiprecision/test && ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxstd=17 cxxstd-dialect=gnu specfun_cpp_bin_float
234-
specfun_float128:
235-
environment:
236-
- BOOST_LIBRARY=multiprecision
237-
- CXX_STANDARD=gnu++17
238-
docker:
239-
- image: gcc:9
240-
steps:
241-
- checkout
242-
- run:
243-
name: Setting up Environment
244-
command: |
245-
echo 'export BOOST="$HOME/boost-local"' >> $BASH_ENV
246-
if [ $CIRCLE_BRANCH = "master" ]; then
247-
echo 'export BOOST_BRANCH="master"' >> $BASH_ENV;
248-
else
249-
echo 'export BOOST_BRANCH="develop"' >> $BASH_ENV;
250-
fi
251-
echo 'export BOOST_REMOVE="$BOOST/boost/libs/$BOOST_LIBRARY"' >> $BASH_ENV
252-
HOME_SED_=$(echo $HOME | sed -e 's/\//\\\//g')
253-
echo 'export HOME_SED=$HOME_SED_' >> $BASH_ENV
254-
- run:
255-
name: install pre dependencies
256-
command: |
257-
apt-get update -yqq
258-
apt-get install git -y
259-
- run:
260-
name: Initializing git repo for boost
261-
command: |
262-
echo BOOST=$BOOST BOOST_REMOVE=$BOOST_REMOVE BOOST_LIBRARY=$BOOST_LIBRARY BOOST_BRANCH=$BOOST_BRANCH PWD=$PWD
263-
mkdir $BOOST
264-
cd $BOOST
265-
git clone --single-branch --branch $BOOST_BRANCH https://github.com/boostorg/boost.git
266-
cd boost
267-
git submodule update --init --merge
268-
rm -rf $BOOST_REMOVE
269-
mv $HOME/project $BOOST_REMOVE
270-
- run:
271-
name: Bootstrapping boost-build
272-
command: |
273-
cd $BOOST/boost && ./bootstrap.sh && ./b2 headers
274-
- run:
275-
name: Building specfun float128 Tests
276-
command: |
277-
cd $BOOST/boost/libs/multiprecision/test && ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxstd=17 cxxstd-dialect=gnu specfun_float128
27858
workflows:
27959
version: 2
28060
build_and_test:
28161
jobs:
28262
- inspect
283-
- specfun_mpfr
284-
- specfun_gmp
285-
- specfun_cpp_dec_float
286-
- specfun_float128

.github/workflows/multiprecision.yml

Lines changed: 61 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,67 @@ jobs:
8282
- name: b2 config
8383
run: cat bin.v2/config.log
8484
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 ]
95+
steps:
96+
- uses: actions/checkout@v4
97+
with:
98+
fetch-depth: '0'
99+
- name: Set TOOLSET
100+
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
101+
- name: Add repository
102+
continue-on-error: true
103+
id: addrepo
104+
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
105+
- name: Retry Add Repo
106+
continue-on-error: true
107+
id: retry1
108+
if: steps.addrepo.outcome=='failure'
109+
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
110+
- name: Retry Add Repo 2
111+
continue-on-error: true
112+
id: retry2
113+
if: steps.retry1.outcome=='failure'
114+
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
115+
- name: Install packages
116+
run: sudo apt install g++-12 clang-14 libgmp-dev libmpfr-dev libtommath-dev libeigen3-dev libmpfi-dev libmpc-dev
117+
- name: Checkout main boost
118+
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
119+
- name: Update tools/boostdep
120+
run: git submodule update --init tools/boostdep
121+
working-directory: ../boost-root
122+
- name: Copy files
123+
run: cp -r $GITHUB_WORKSPACE/* libs/multiprecision
124+
working-directory: ../boost-root
125+
- name: Install deps
126+
run: python tools/boostdep/depinst/depinst.py multiprecision
127+
working-directory: ../boost-root
128+
- name: Bootstrap
129+
run: ./bootstrap.sh
130+
working-directory: ../boost-root
131+
- name: Generate headers
132+
run: ./b2 headers
133+
working-directory: ../boost-root
134+
- name: Generate user config
135+
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=gnu++17 ;" > ~/user-config.jam'
136+
working-directory: ../boost-root
137+
- name: Config Info
138+
run: ../../../b2 print_config_info print_math_info toolset=$TOOLSET
139+
working-directory: ../boost-root/libs/config/test
140+
- name: Test
141+
run: ../../../b2 -j2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES define=BOOST_MP_SF_CONCEPT_TESTS
142+
working-directory: ../boost-root/libs/multiprecision/test
143+
- name: b2 config
144+
run: cat bin.v2/config.log
145+
working-directory: ../boost-root/
85146
ubuntu-focal:
86147
runs-on: ubuntu-20.04
87148
defaults:
@@ -435,49 +496,6 @@ jobs:
435496
- name: b2 config
436497
run: cat bin.v2/config.log
437498
working-directory: ../boost-root/
438-
windows_msvc_14_0:
439-
runs-on: windows-2019
440-
defaults:
441-
run:
442-
shell: cmd
443-
env:
444-
ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }}
445-
strategy:
446-
fail-fast: false
447-
matrix:
448-
toolset: [ msvc-14.0 ]
449-
standard: [ 14, latest ]
450-
suite: [ github_ci_block_1, github_ci_block_2 ]
451-
steps:
452-
- uses: actions/checkout@v4
453-
with:
454-
fetch-depth: '0'
455-
- name: Checkout main boost
456-
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
457-
- name: Update tools/boostdep
458-
run: git submodule update --init tools/boostdep
459-
working-directory: ../boost-root
460-
- name: Copy files
461-
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\multiprecision
462-
working-directory: ../boost-root
463-
- name: Install deps
464-
run: python tools/boostdep/depinst/depinst.py multiprecision
465-
working-directory: ../boost-root
466-
- name: Bootstrap
467-
run: bootstrap
468-
working-directory: ../boost-root
469-
- name: Generate headers
470-
run: b2 headers
471-
working-directory: ../boost-root
472-
- name: Config Info
473-
run: ..\..\..\b2 print_config_info print_math_info %ARGS%
474-
working-directory: ../boost-root/libs/config/test
475-
- name: Test
476-
run: ..\..\..\b2 -j2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }}
477-
working-directory: ../boost-root/libs/multiprecision/test
478-
- name: b2 config
479-
run: cat bin.v2/config.log
480-
working-directory: ../boost-root/
481499
windows_msvc_14_2:
482500
runs-on: windows-2019
483501
defaults:

config/Jamfile.v2

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ mp-run-simple has_mpc.cpp mpc mpfr gmp : : :
7070
mp-run-simple has_tommath.cpp tommath : : :
7171
<include>$(tommath_path) : has_tommath ;
7272
mp-run-simple has_float128.cpp quadmath : : : : has_float128 ;
73+
mp-run-simple has_basic_float128.cpp quadmath : : : : has_basic_float128 ;
7374
exe has_intel_quad : has_intel_quad.cpp : <cxxflags>-Qoption,cpp,--extended_float_type ;
7475
exe has_eigen : has_eigen.cpp ;
7576
exe has_f2c : has_f2c.cpp f2c ;
@@ -83,6 +84,7 @@ explicit has_mpfr ;
8384
explicit has_mpfi ;
8485
explicit has_tommath ;
8586
explicit has_float128 ;
87+
explicit has_basic_float128 ;
8688
explicit has_intel_quad ;
8789
explicit has_mpc ;
8890
explicit has_eigen ;

config/has_basic_float128.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright John Maddock 2024.
2+
// Use, modification and distribution are subject to the
3+
// Boost Software License, Version 1.0. (See accompanying file
4+
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5+
6+
#include <boost/config.hpp>
7+
8+
#include <quadmath.h>
9+
10+
int main()
11+
{
12+
__float128 f = 0;
13+
f = sqrtq(f);
14+
15+
return 0;
16+
}

0 commit comments

Comments
 (0)