Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
787667d
Update version
mborland Feb 26, 2026
ba49223
Duplicate fuzzing files for additional operations
mborland Feb 26, 2026
72848df
Fuzz add, sub, mul
mborland Feb 26, 2026
79cc4bb
Add fuzzing of no intrin path
mborland Feb 26, 2026
7d4a377
Merge pull request #331 from cppalliance/330
mborland Feb 26, 2026
218a04f
Attempt remove old workaround
mborland Feb 26, 2026
1283680
Update link to docs
mborland Feb 26, 2026
750c4fb
Merge pull request #332 from cppalliance/workaround
mborland Feb 26, 2026
f8da0e2
Update apple runners
mborland Feb 26, 2026
fddb00e
Improve the overview
mborland Feb 26, 2026
1e9524b
Small update to README
mborland Feb 26, 2026
6a01a55
Merge pull request #336 from cppalliance/335
mborland Feb 26, 2026
0a7e1ef
Merge pull request #333 from cppalliance/ci
mborland Feb 26, 2026
4e5adc1
Add bit test
mborland Feb 26, 2026
54ef382
Test and fix export of div
mborland Feb 26, 2026
8cbbbc6
Add additional module tests
mborland Mar 2, 2026
f7dc6f2
Merge pull request #339 from cppalliance/ci
mborland Mar 2, 2026
8b70c47
Make conversions between lib types explicit
mborland Mar 2, 2026
4cd88ad
Fix instances of potential sign conversion
mborland Mar 2, 2026
fdcd1f1
Implement mixed type comparisons when sign compare is defined
mborland Mar 2, 2026
3b945da
Add testing of mixed type compare when allowed
mborland Mar 2, 2026
01bf86e
Bug fix and logic improvement
mborland Mar 2, 2026
861e2c5
Rename test file
mborland Mar 2, 2026
50d664d
Add mixed type operations
mborland Mar 2, 2026
3c03ec1
Add sign conversion testing
mborland Mar 2, 2026
b95a722
Fix conversion error
mborland Mar 2, 2026
b0b6f79
Ignore GCC warnings
mborland Mar 2, 2026
113be1b
Various windows fail fixes
mborland Mar 2, 2026
dd01ce0
More MSVC warning fixes
mborland Mar 3, 2026
be9ad82
Add dependabot workflow
mborland Mar 3, 2026
3cbe143
Bump @antora/lunr-extension in /doc in the all-dependencies group
dependabot[bot] Mar 3, 2026
c40f8b6
Merge pull request #341 from cppalliance/dependabot/npm_and_yarn/doc/…
mborland Mar 3, 2026
ada3435
Merge pull request #340 from cppalliance/337
mborland Mar 3, 2026
c25ad0e
Bump minimatch from 3.1.2 to 3.1.5 in /doc
dependabot[bot] Mar 3, 2026
bb5900f
Add header listing to api reference
mborland Mar 3, 2026
835abee
Update outdated not on alignment
mborland Mar 3, 2026
fd461e9
Merge pull request #342 from cppalliance/dependabot/npm_and_yarn/doc/…
mborland Mar 3, 2026
1cfe6c7
Fix xref consistency
mborland Mar 3, 2026
3de870d
Add natvis file as best as we can
mborland Mar 3, 2026
08619ef
Add natvis to printers documentation
mborland Mar 3, 2026
05213ce
Consistency
mborland Mar 3, 2026
cf4f510
Add description of mixed type comparisons
mborland Mar 3, 2026
2beb66d
Add description of mixed type arithmetic operators
mborland Mar 3, 2026
b9e0150
Add random header compile test
mborland Mar 4, 2026
18cd42a
Add header of overloads for boost::random::traits
mborland Mar 4, 2026
9453488
Update docs on boost random usage
mborland Mar 4, 2026
d19304d
Add random int128_t generation to the docs
mborland Mar 4, 2026
020dd79
Add MSVC 2026 runner
mborland Mar 4, 2026
da9acfe
Merge pull request #344 from cppalliance/343
mborland Mar 4, 2026
0132df5
Merge pull request #345 from cppalliance/win2026
mborland Mar 4, 2026
b414b64
Update docs to show explicit construction between types
mborland Mar 9, 2026
c699e36
Add CUDA pipeline
mborland Mar 9, 2026
68f3ec5
Add managed pointer file
mborland Mar 9, 2026
bd4ced5
Add stopwatch header
mborland Mar 9, 2026
6a3e977
Add NVCC testing of addition
mborland Mar 9, 2026
61bd1b9
Add CUDA specific jamfile
mborland Mar 9, 2026
7269dd3
Add host device macro
mborland Mar 9, 2026
0f64e24
Bulk implementation of CUDA markers
mborland Mar 9, 2026
f931eae
Add HOST_DEVICE macro to automatic configuration page
mborland Mar 9, 2026
ba811a7
Decorate docs
mborland Mar 9, 2026
3c034f2
Add CUDA testing path to test/CML
mborland Mar 9, 2026
5fbe7c4
Fix warning #20012-D
mborland Mar 9, 2026
8b1f2f4
Fix test distribution type
mborland Mar 9, 2026
7d64bf9
Fix sign conversion error
mborland Mar 9, 2026
a0cc80d
Allow sign conversion
mborland Mar 9, 2026
39b0bf6
Mark numeric limits functions as HD
mborland Mar 9, 2026
e5eb386
Change supported architectures
mborland Mar 9, 2026
dfc5371
Add signed addition cuda test
mborland Mar 10, 2026
f494396
Add subtraction testing
mborland Mar 10, 2026
8a71afd
Expand overview section
mborland Mar 10, 2026
1228d4f
Fixed redundant check warnings
mborland Mar 10, 2026
2fe8cb0
Add HD annotations to signed numeric limits
mborland Mar 10, 2026
362e98e
Add boost.random support header
mborland Mar 10, 2026
b06b6b6
Add mul and div CUDA tests
mborland Mar 10, 2026
3c9951b
Move static tables with NVCC
mborland Mar 10, 2026
57a0d50
Disable use of long double on device
mborland Mar 10, 2026
610187a
Fix NVCC warnings #186-D
mborland Mar 10, 2026
e23092a
Avoid using host compiler intrinsic on device
mborland Mar 10, 2026
4ea81be
Use C++17 on device to handle a bunch of warnings
mborland Mar 10, 2026
a2fc9de
Add testing of mod
mborland Mar 10, 2026
7ce948b
Improve div and mod testing
mborland Mar 10, 2026
5598488
Merge pull request #346 from cppalliance/269
mborland Mar 10, 2026
684eb8f
Add asciidoc pagination
mborland Mar 11, 2026
bf29811
Add CUDA testing of bitwise operations
mborland Mar 11, 2026
fa9531d
Fix syntax in Jamfile
mborland Mar 11, 2026
9981c44
Merge pull request #350 from cppalliance/348
mborland Mar 11, 2026
34e8598
Add cuda testing of <bit> functions
mborland Mar 11, 2026
6922814
Make CLZ cuda compatible
mborland Mar 11, 2026
674a3d7
Make CTZ CUDA compatible
mborland Mar 11, 2026
9d09403
Have NVCC use non-intrinsic popcount and byteswap paths
mborland Mar 11, 2026
08c33bc
Fix return value consistency and warning #186-D
mborland Mar 11, 2026
053828d
Merge pull request #355 from cppalliance/351
mborland Mar 11, 2026
119bde6
Add CUDA testing of cstdlib functions
mborland Mar 11, 2026
0540148
Fix outdated documentation
mborland Mar 11, 2026
850cb34
Merge pull request #356 from cppalliance/353
mborland Mar 11, 2026
690a7b5
Add CUDA testing of all comparison operators
mborland Mar 12, 2026
35e178e
Merge pull request #359 from cppalliance/357
mborland Mar 12, 2026
3a36acc
Add CUDA testing of conversion functions
mborland Mar 13, 2026
d10021a
Add sign conversion define
mborland Mar 13, 2026
e9e25cc
Merge pull request #360 from cppalliance/conversion
mborland Mar 13, 2026
1d786e3
Add CUDA testing of <numeric> functions
mborland Mar 11, 2026
0796f36
Improve diagnostics
mborland Mar 11, 2026
a1e0575
Implement conversion operators between types
mborland Mar 12, 2026
39e4314
Remove forward declarations
mborland Mar 13, 2026
f188a38
Avoid undefined rollover
mborland Mar 13, 2026
2d1fd23
Improve algorithms
mborland Mar 13, 2026
3a8b5c3
Expand testing ranges
mborland Mar 13, 2026
41d2303
Update deprecated actions
mborland Mar 13, 2026
705630c
Further avoidance of UB
mborland Mar 13, 2026
032e797
Merge pull request #358 from cppalliance/354
mborland Mar 13, 2026
f467aed
Make charconv functions CUDA compatible
mborland Mar 17, 2026
6112b0d
Add testing of CUDA charconv functions
mborland Mar 17, 2026
f83ac16
Add missing dependency
mborland Mar 17, 2026
636258e
Specialize get_max_value template
mborland Mar 17, 2026
9dd22a1
Add testing of all valid bases for charconv
mborland Mar 17, 2026
9237d1e
Merge pull request #361 from cppalliance/cudaconv
mborland Mar 17, 2026
f07cd36
Add testing of literals with CUDA devices
mborland Mar 18, 2026
5f2e85c
Move uchar values array when on device
mborland Mar 18, 2026
1c1a6cc
Fix NVCC warnings
mborland Mar 18, 2026
5b3f1cf
Merge pull request #362 from cppalliance/cuda_literals
mborland Mar 18, 2026
2ea99ac
Always point to develop
mborland Mar 22, 2026
a812152
Macro CUDA detection and usage less fragile
mborland Mar 22, 2026
11bab28
Add CUDA related macros to the configuration and api references
mborland Mar 22, 2026
eba51c1
Fix CML missing compile definitions for CUDA
mborland Mar 22, 2026
bd1ccfe
Add automatic macro definition for CUDA in Charconv
mborland Mar 22, 2026
89bad60
Merge pull request #364 from cppalliance/cudacc
mborland Mar 22, 2026
37de754
Test C++17,20,23 on CUDA for incompatibilities
mborland Mar 23, 2026
9758b35
Disable constant evaluation paths on device
mborland Mar 23, 2026
f645abe
Update versions of CI tools
mborland Mar 23, 2026
7a0141c
Merge pull request #366 from cppalliance/365
mborland Mar 23, 2026
f3b89d5
Replace deprecated find CUDA module
mborland Mar 23, 2026
ac4998e
Merge pull request #368 from cppalliance/367
mborland Mar 23, 2026
6b4f7a5
Remove unneeded CMake option
mborland Mar 24, 2026
da44c61
Fix and add additional testing of ostream values
mborland Mar 24, 2026
8150b07
Only append base when the flags say so
mborland Mar 24, 2026
5517b6b
Improve streaming docs
mborland Mar 24, 2026
064e208
Merge pull request #371 from cppalliance/370
mborland Mar 24, 2026
33b80b2
Add CUDA example
mborland Mar 25, 2026
15ed8f4
Fix warnings and errors
mborland Mar 25, 2026
637be29
Allow sign conversion with boost.random
mborland Mar 25, 2026
967deb2
Cleanup semantics
mborland Mar 25, 2026
4ef4fa4
Add completion statement
mborland Mar 25, 2026
fac932e
Add to examples and nav
mborland Mar 25, 2026
6f2b8d2
Merge pull request #372 from cppalliance/cuda_example
mborland Mar 25, 2026
f9cb2ae
Bump picomatch in /doc
dependabot[bot] Mar 26, 2026
66e8e69
Merge pull request #373 from cppalliance/dependabot/npm_and_yarn/doc/…
mborland Mar 26, 2026
2fbfe68
Fix general documentation errors
mborland Mar 26, 2026
f4d48d0
Fix duplicated benchmark data
mborland Mar 26, 2026
61469ac
Merge pull request #374 from cppalliance/doc_review
mborland Mar 26, 2026
9e741f5
Bump convict from 6.2.4 to 6.2.5 in /doc
dependabot[bot] Mar 26, 2026
e0cb7bd
Merge pull request #375 from cppalliance/dependabot/npm_and_yarn/doc/…
mborland Mar 26, 2026
a6462fb
Bump handlebars from 4.7.8 to 4.7.9 in /doc
dependabot[bot] Mar 27, 2026
775ec68
Merge pull request #376 from cppalliance/dependabot/npm_and_yarn/doc/…
mborland Mar 27, 2026
5d44bdc
Add reproducer test set
mborland Mar 27, 2026
67b894d
Add check for abs(min)
mborland Mar 27, 2026
dfc0f96
Properly cast the high word
mborland Mar 27, 2026
fb7a4b1
Fix UBSAN error
mborland Mar 27, 2026
65545f9
Similar corrections for modulo
mborland Mar 27, 2026
cf10f2b
Fix copy paste error
mborland Mar 27, 2026
e80e7f1
Consolidate the other bugs
mborland Mar 27, 2026
3ffebe0
Workaround for old clang
mborland Mar 27, 2026
e3df03a
Merge pull request #378 from cppalliance/377
mborland Mar 27, 2026
edd235e
Flip direction
mborland Mar 31, 2026
491bd26
Remove useless cast
mborland Mar 31, 2026
d725c68
Ignore useless cast warning since it's only useless on 32-bit
mborland Mar 31, 2026
f3884ce
Clang does not have -Wuseless-cast
mborland Mar 31, 2026
234907d
Merge pull request #380 from cppalliance/379
mborland Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .drone.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -416,4 +416,10 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
"cppalliance/dronevs2022:1",
{ TOOLSET: 'msvc-14.3', CXXSTD: '14,17,20,latest', ADDRMD: '32,64' },
),

windows_pipeline(
"Windows VS2026 msvc-14.5",
"cppalliance/dronevs2026:1",
{ TOOLSET: 'msvc-14.5', CXXSTD: '14,17,20,latest', ADDRMD: '32,64' },
),
]
15 changes: 15 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2025 Matt Borland
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)

version: 2
updates:
- package-ecosystem: "npm"
directory: "/doc"
schedule:
interval: "weekly"
groups:
all-dependencies:
# Groups all updates into a single PR
patterns:
- "*"
73 changes: 65 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -298,12 +298,12 @@ jobs:
source_keys:
- "https://apt.llvm.org/llvm-snapshot.gpg.key"

- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-14
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-15
- toolset: clang
cxxstd: "03,11,14,17,20,2b,2c"
os: macos-26

timeout-minutes: 180
runs-on: ${{matrix.os}}
Expand Down Expand Up @@ -620,8 +620,8 @@ jobs:
include:
- os: ubuntu-22.04
- os: ubuntu-24.04
- os: macos-14
- os: macos-15
- os: macos-26

runs-on: ${{matrix.os}}

Expand Down Expand Up @@ -666,8 +666,8 @@ jobs:
fail-fast: false
matrix:
include:
- os: macos-14
- os: macos-15
- os: macos-26

runs-on: ${{matrix.os}}

Expand Down Expand Up @@ -724,8 +724,8 @@ jobs:
include:
- os: ubuntu-22.04
- os: ubuntu-24.04
- os: macos-14
- os: macos-15
- os: macos-26

runs-on: ${{matrix.os}}

Expand Down Expand Up @@ -780,8 +780,8 @@ jobs:
include:
- os: ubuntu-22.04
- os: ubuntu-24.04
- os: macos-14
- os: macos-15
- os: macos-26

runs-on: ${{matrix.os}}

Expand Down Expand Up @@ -952,8 +952,8 @@ jobs:
matrix:
include:
- os: ubuntu-24.04
- os: macos-14
- os: macos-15
- os: macos-26

runs-on: ${{matrix.os}}

Expand Down Expand Up @@ -1146,3 +1146,60 @@ jobs:
cd ~/pkgconfig_test
g++ main.cpp $(pkg-config --cflags --libs boost_int128) -o test_pkgconfig
./test_pkgconfig

cuda-cmake-test:
strategy:
fail-fast: false

runs-on: gpu-runner-1

steps:
- uses: Jimver/cuda-toolkit@v0.2.30
id: cuda-toolkit
with:
cuda: '12.8.0'
method: 'network'
sub-packages: '["nvcc"]'

- name: Output CUDA information
run: |
echo "Installed cuda version is: ${{steps.cuda-toolkit.outputs.cuda}}"+
echo "Cuda install location: ${{steps.cuda-toolkit.outputs.CUDA_PATH}}"
nvcc -V
- uses: actions/checkout@v5

- name: Install Packages
run: |
sudo apt-get install -y cmake make
- name: Setup Boost
run: |
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
LIBRARY=${GITHUB_REPOSITORY#*/}
echo LIBRARY: $LIBRARY
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
echo GITHUB_REF: $GITHUB_REF
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
REF=${REF#refs/heads/}
echo REF: $REF
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
echo BOOST_BRANCH: $BOOST_BRANCH
cd ..
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
mkdir -p libs/$LIBRARY
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
git submodule update --init tools/boostdep
python3 tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
- name: Test C++17/20/23
run: |
for std in 17 20 23; do
echo "======== Testing C++${std} ========"
cd ../boost-root
rm -rf __build__
mkdir __build__ && cd __build__
cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DBUILD_TESTING=ON -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DBOOST_INT128_ENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES="75;86" -DCMAKE_CUDA_STANDARD=${std} ..
cmake --build . --target tests -j $(nproc)
ctest --output-on-failure --no-tests=error
cd $GITHUB_WORKSPACE
done
6 changes: 3 additions & 3 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,21 +80,21 @@ jobs:
fi
git config --global pack.threads 0

- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
# For coverage builds fetch the whole history, else only 1 commit using a 'fake ternary'
fetch-depth: ${{ matrix.coverage && '0' || '1' }}

- name: Cache ccache
uses: actions/cache@v3
uses: actions/cache@v4
if: env.B2_USE_CCACHE
with:
path: ~/.ccache
key: ${{matrix.os}}-${{matrix.container}}-${{matrix.compiler}}-${{github.sha}}
restore-keys: ${{matrix.os}}-${{matrix.container}}-${{matrix.compiler}}-

- name: Fetch Boost.CI
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: boostorg/boost-ci
ref: master
Expand Down
34 changes: 32 additions & 2 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,22 @@ jobs:
echo 'compiling test/fuzzing/test_fuzzing_div_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer test/fuzzing/test_fuzzing_div_versus_wide_int.cpp -o test_fuzzing_div_versus_wide_int
echo "run test_fuzzing_div_versus_wide_int"
./test_fuzzing_div_versus_wide_int -max_total_time=900 -max_len=32 -verbosity=0 -close_fd_mask=3
./test_fuzzing_div_versus_wide_int -max_total_time=600 -max_len=32 -verbosity=0 -close_fd_mask=3

echo 'compiling test/fuzzing/test_fuzzing_add_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer test/fuzzing/test_fuzzing_add_versus_wide_int.cpp -o test_fuzzing_add_versus_wide_int
echo "run test_fuzzing_add_versus_wide_int"
./test_fuzzing_add_versus_wide_int -max_total_time=300 -max_len=32 -verbosity=0 -close_fd_mask=3

echo 'compiling test/fuzzing/test_fuzzing_sub_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer test/fuzzing/test_fuzzing_sub_versus_wide_int.cpp -o test_fuzzing_sub_versus_wide_int
echo "run test_fuzzing_sub_versus_wide_int"
./test_fuzzing_sub_versus_wide_int -max_total_time=300 -max_len=32 -verbosity=0 -close_fd_mask=3

echo 'compiling test/fuzzing/test_fuzzing_mul_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer test/fuzzing/test_fuzzing_mul_versus_wide_int.cpp -o test_fuzzing_mul_versus_wide_int
echo "run test_fuzzing_mul_versus_wide_int"
./test_fuzzing_mul_versus_wide_int -max_total_time=300 -max_len=32 -verbosity=0 -close_fd_mask=3

clang-fuzzing-versus-wide-integer-no-builtin:
runs-on: ubuntu-latest
Expand All @@ -68,4 +83,19 @@ jobs:
echo 'compiling test/fuzzing/test_fuzzing_div_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer -DBOOST_INT128_NO_BUILTIN_INT128=1 test/fuzzing/test_fuzzing_div_versus_wide_int.cpp -o test_fuzzing_div_versus_wide_int
echo "run test_fuzzing_div_versus_wide_int"
./test_fuzzing_div_versus_wide_int -max_total_time=900 -max_len=32 -verbosity=0 -close_fd_mask=3
./test_fuzzing_div_versus_wide_int -max_total_time=600 -max_len=32 -verbosity=0 -close_fd_mask=3

echo 'compiling test/fuzzing/test_fuzzing_add_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer -DBOOST_INT128_NO_BUILTIN_INT128=1 test/fuzzing/test_fuzzing_add_versus_wide_int.cpp -o test_fuzzing_add_versus_wide_int
echo "run test_fuzzing_add_versus_wide_int"
./test_fuzzing_add_versus_wide_int -max_total_time=300 -max_len=32 -verbosity=0 -close_fd_mask=3

echo 'compiling test/fuzzing/test_fuzzing_sub_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer -DBOOST_INT128_NO_BUILTIN_INT128=1 test/fuzzing/test_fuzzing_sub_versus_wide_int.cpp -o test_fuzzing_sub_versus_wide_int
echo "run test_fuzzing_sub_versus_wide_int"
./test_fuzzing_sub_versus_wide_int -max_total_time=300 -max_len=32 -verbosity=0 -close_fd_mask=3

echo 'compiling test/fuzzing/test_fuzzing_mul_versus_wide_int.cpp'
${{ matrix.compiler }} -std=c++20 -g -O2 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=fuzzer -I./include -I${{runner.workspace}}/wide-integer -DBOOST_INT128_NO_BUILTIN_INT128=1 test/fuzzing/test_fuzzing_mul_versus_wide_int.cpp -o test_fuzzing_mul_versus_wide_int
echo "run test_fuzzing_mul_versus_wide_int"
./test_fuzzing_mul_versus_wide_int -max_total_time=300 -max_len=32 -verbosity=0 -close_fd_mask=3
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.10...3.20)

# Set version explicitly if not part of Boost superproject
if(NOT BOOST_SUPERPROJECT_VERSION)
set(BOOST_INT128_VERSION 1.6.0)
set(BOOST_INT128_VERSION 1.6.1)
else()
set(BOOST_INT128_VERSION ${BOOST_SUPERPROJECT_VERSION})
endif()
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ int128 is under active development and is not an official boost library.

This library is header only. It contains no other dependencies.
Simply `#include` it and use it.
With C++20 and greater you can instead `import boost.int128`.

## CMake

Expand Down Expand Up @@ -64,13 +65,13 @@ struct int128_t;

These types operate like built-in integer types.
They have their own implementations of the Standard-Library functions
(e.g. like those found in `<limits>`, `<iostream>`, `<bit>` etc.).
(e.g., like those found in `<limits>`, `<iostream>`, `<bit>` etc.).

The entire library can be conveniently included with `#include <boost/int128.hpp>`

# Full Documentation

The complete documentation can be found at: https://master.int128.cpp.al
The complete documentation can be found at: https://develop.int128.cpp.al

## References

Expand Down
3 changes: 3 additions & 0 deletions doc/antora.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: ROOT
version: ~
title: Boost.int128
asciidoc:
attributes:
page-pagination: ''
nav:
- modules/ROOT/nav.adoc
start_page: overview.adoc
2 changes: 1 addition & 1 deletion doc/int128-playbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ content:
sources:
- url: ..
start_path: doc
branches: HEAD
branches: develop
output:
dir: html
ui:
Expand Down
4 changes: 3 additions & 1 deletion doc/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
** xref:examples.adoc#examples_rollover[Rollover Behavior]
** xref:examples.adoc#examples_bit[`<bit>` support]
** xref:examples.adoc#examples_numeric[`<numeric>` support (Saturating Arithmetic)]
** xref:examples.adoc#examples_numeric[`<numeric>` support (Numeric Logarithms)]
** xref:examples.adoc#examples_numeric_algorithms[`<numeric>` support (Numeric Algorithms)]
** xref:examples.adoc#examples_mixed_sign[Mixed Signedness Arithmetic]
** xref:examples.adoc#examples_to_string[String Conversion (to_string)]
** xref:examples.adoc#examples_boost_math_random[Boost Math and Random Integration]
** xref:examples.adoc#examples_boost_charconv[Boost.Charconv Integration]
** xref:examples.adoc#examples_cstdlib[`<cstdlib>` support (Combined div and mod)]
** xref:examples.adoc#examples_cuda[Use of the library in a CUDA kernel]
* xref:api_reference.adoc[]
** xref:api_reference.adoc#api_namespaces[Namespaces]
** xref:api_reference.adoc#api_types[Types]
Expand All @@ -29,6 +30,7 @@
** xref:api_reference.adoc#api_macros[Macros]
*** xref:api_reference.adoc#api_macro_literals[Literals]
*** xref:api_reference.adoc#api_macro_configuration[Configuration]
** xref:api_reference.adoc#api_headers[Headers]
* xref:uint128_t.adoc[]
** xref:uint128_t.adoc#u128_alignment[Alignment]
** xref:uint128_t.adoc#u128_operator_behavior[Operator Behavior]
Expand Down
64 changes: 62 additions & 2 deletions doc/modules/ROOT/pages/api_reference.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ https://www.boost.org/LICENSE_1_0.txt

| xref:literals.adoc[`boost::int128::literals`]
| User-defined literals for 128-bit integers

| xref:charconv.adoc[`boost::charconv`]
| `to_chars` and `from_chars` overloads for 128-bit integers (requires Boost.Charconv)
|===

[#api_types]
Expand Down Expand Up @@ -146,7 +149,7 @@ Listed by analogous STL header.
|===
| Function | Description

| `abs`
| xref:int128_t.adoc#i128_math_operators[`abs`]
| Absolute value
|===

Expand Down Expand Up @@ -307,6 +310,9 @@ Listed by analogous STL header.

| xref:config.adoc#disable_exceptions[`BOOST_INT128_DISABLE_EXCEPTIONS`]
| Disables exception throwing

| xref:config.adoc#enable_cuda[`BOOST_INT128_ENABLE_CUDA`]
| Enables CUDA support allowing the library types and functions to be run on both host and device
|===

==== Automatic Configuration
Expand All @@ -323,4 +329,58 @@ Listed by analogous STL header.

| xref:config.adoc#automatic_config[`BOOST_INT128_ENDIAN_BIG_BYTE`]
| Defined on big-endian systems
|===

| xref:config.adoc#host_device[`BOOST_INT128_HOST_DEVICE`]
| Expands to `pass:[__host__ __device__]` under NVCC for CUDA support
|===

[#api_headers]
== Headers

[cols="1,2", options="header"]
|===
| Header | Contents

| `<boost/int128.hpp>`
| Convenience header including the entire library

| xref:bit.adoc[`<boost/int128/bit.hpp>`]
| Bit manipulation functions

| xref:charconv.adoc[`<boost/int128/charconv.hpp>`]
| Character conversion functions

| `<boost/int128/climits.hpp>`
| Min and max macros

| xref:cstdlib.adoc[`<boost/int128/cstdlib.hpp>`]
| Combined division and modulo function

| xref:format.adoc#fmt_format[`<boost/int128/fmt_format.hpp>`]
| Formatting integration for pass:[{fmt}]

| xref:format.adoc#std_format[`<boost/int128/format.hpp>`]
| Formatting integration for pass:[C++20] `<format>`

| `<boost/int128/int128.hpp>`
| The xref:uint128_t.adoc[`uint128_t`] and xref:int128_t.adoc[`int128_t`] types

| xref:stream.adoc[`<boost/int128/iostream.hpp>`]
| Iostream overloads for `int128_t` and `uint128_t`

| `<boost/int128/limits.hpp>`
| Overloads for `std::numeric_limits` for `int128_t` and `uint128_t`

| xref:literals.adoc[`<boost/int128/literals.hpp>`]
| User-defined literals for `int128_t` and `uint128_t`

| xref:numeric.adoc[`<boost/int128/numeric.hpp>`]
| Numeric algorithms (gcd, lcm, midpoint)

| xref:string.adoc[`<boost/int128/string.hpp>`]
| `to_string` overloads

| `<boost/int128/random.hpp>`
| Required for usage of Boost.Random

|===
Loading
Loading