Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
f824d4a
Implemented large v1 and v2 approximation
JacobHass8 Jun 30, 2026
2709fb2
Add M nearest-neighbour Chatterjee correlation (#990)
Jul 1, 2026
b2173d6
Fixed the complement
JacobHass8 Jul 1, 2026
8ee12a5
Merge pull request #1414 from su-senka/feature/chatterjee-mnn
mborland Jul 2, 2026
348a583
Add C++20 module infrastructure and foundation components
mborland Jul 15, 2026
f9861a7
Guard std includes for module builds across all headers
mborland Jul 15, 2026
2a1c7af
Export the special functions for the boost.math module
mborland Jul 15, 2026
5ee0d77
Export the statistical distributions for the boost.math module
mborland Jul 15, 2026
8a5dcf9
Export ccmath for the boost.math module
mborland Jul 15, 2026
cf76357
Export the public tools for the boost.math module
mborland Jul 15, 2026
88d19ef
Export quadrature and the modern interpolators for the boost.math module
mborland Jul 15, 2026
39b0970
Export statistics and optimization for the boost.math module
mborland Jul 15, 2026
18f8fb7
Export differentiation and the algebra types for the boost.math module
mborland Jul 15, 2026
0fd6b77
Add documentation of module support
mborland Jul 15, 2026
f431389
Clarify that the module is consumable from C++20
mborland Jul 15, 2026
ff56f1c
Remove accidental commit test folder
mborland Jul 15, 2026
4014fa4
Silence the reserved module identifier warning in module builds
mborland Jul 15, 2026
5e49f1c
Add a GCC module test to CI
mborland Jul 15, 2026
5b18f2c
Fix doc inspection failure
mborland Jul 15, 2026
74fc0c0
Keep cstdfloat out of the module purview
mborland Jul 15, 2026
3986feb
Change module file extension and add extern "C++"
mborland Jul 16, 2026
e5b102e
Update references to file extension
mborland Jul 16, 2026
70ec7a7
Add CPPM to allowable extensions
mborland Jul 16, 2026
d89dc67
Remove workaround that doesn't work with modules
mborland Jul 16, 2026
3614727
Add MSVC modules testing
mborland Jul 16, 2026
f096e4a
Ignore clang warnings
mborland Jul 16, 2026
03b38db
Remove anonymous namespace breaking module linkage
mborland Jul 16, 2026
0246361
Attempt fix MSVC problem
mborland Jul 16, 2026
0270056
Fix John's initial issue
mborland Jul 17, 2026
2492498
Inline constexpr variable templates
mborland Jul 17, 2026
b76b7c4
Add tests for functions previously causing module linkage issues
mborland Jul 17, 2026
4734d46
Update math_unit_test to allow use with modules
mborland Jul 17, 2026
704eeb8
Adjust tests so they are compatible with GCC modules
mborland Jul 17, 2026
3c103c0
Add additional import std
mborland Jul 17, 2026
6936446
DOC: correct first_four_moments
fbourgey Jul 19, 2026
f085dbe
Reduce consumers only to Clang
mborland Jul 20, 2026
5793a6d
Add reproducer test set
mborland Jul 20, 2026
1b27fc1
Fix bad asserts and missing overload
mborland Jul 20, 2026
b8e7a75
Add missing header
mborland Jul 20, 2026
dd6daa7
Create our own sortable iterator check
mborland Jul 20, 2026
5e24631
Exclude more headers
mborland Jul 20, 2026
2bd122e
Remove boost.core from module tested file
mborland Jul 20, 2026
b9f0a3b
Update tests and test harness with removed STL includes
mborland Jul 20, 2026
7555cca
Fully qualify integer type names
mborland Jul 20, 2026
2e9ae18
More specialty header removal
mborland Jul 20, 2026
30fbc97
Fix missing name for clang
mborland Jul 20, 2026
47f379c
Fir re- and missing definitions
mborland Jul 20, 2026
14f8fad
Significantly increase testing coverage
mborland Jul 20, 2026
b430a9f
Merge pull request #1426 from boostorg/1419
mborland Jul 21, 2026
25784ee
Add compile failure reproducer
mborland Jul 20, 2026
3718e21
Static assert that we need at least a forward iterator
mborland Jul 20, 2026
109df52
Merge remote-tracking branch 'origin/develop' into module
mborland Jul 21, 2026
e6513cf
Fix merge conflict
mborland Jul 21, 2026
bff4171
Fix unescaped character warning from b2
mborland Jul 21, 2026
b28311b
Merge pull request #1427 from boostorg/1421
mborland Jul 21, 2026
46474a5
Merge pull request #1428 from boostorg/1409
mborland Jul 21, 2026
8172577
Merge pull request #1407 from JacobHass8/f-find-df
mborland Jul 23, 2026
5814eef
Merge pull request #1422 from boostorg/module
mborland Aug 5, 2026
c3656f9
Correct ibeta when it's an arcsine distribution.
jzmaddock Aug 10, 2026
bf29a02
Update boost version number
mborland Aug 13, 2026
b4848f9
Non Central T: track cancellation errors,
jzmaddock Aug 13, 2026
811faf7
Correct unrelated failures:
jzmaddock Aug 13, 2026
654e964
Merge pull request #1434 from boostorg/issue1430
jzmaddock Aug 14, 2026
babef76
Correct conceptual error.
jzmaddock Aug 14, 2026
0aa84df
Add LCOV markup for spurious missed line.
jzmaddock Aug 14, 2026
64a8d75
Merge pull request #1432 from boostorg/issue1429
jzmaddock Aug 14, 2026
c37dd12
Fix student's T for quantile of very small values.
jzmaddock Aug 25, 2026
364cd3b
Students T: Add more test coverage.
jzmaddock Aug 26, 2026
2c96742
Make implicit integer to Real conversions explicit
mborland Aug 26, 2026
d9fc176
Merge pull request #1437 from boostorg/issue1436
jzmaddock Aug 26, 2026
9b192b0
Merge pull request #1439 from boostorg/implicit_conversions
mborland Aug 26, 2026
1b4a40b
Van den Bos quadrature
NAThompson Aug 28, 2026
ba13494
Harden van den Bos unit-square quadrature
NAThompson Aug 29, 2026
d5dde37
Only include iomanip when needed
mborland Aug 31, 2026
52b09a0
Remove naked throws for exception-free enviornments
mborland Aug 31, 2026
3281a01
Fix inevitable 0 as nullptr warning
mborland Aug 31, 2026
3a70b09
Replace typedefs with using statements in C++17 format
mborland Aug 31, 2026
fb5b042
More const
mborland Aug 31, 2026
077e187
Fix copyright in header
mborland Aug 31, 2026
1187ea2
Fix JSO CI breakage
NAThompson Sep 1, 2026
06cd7bc
Make sure nans are rejected as bounds.
NAThompson Sep 1, 2026
e29b9a4
Fix complex pow for negative real and zero imaginary part
NAThompson Sep 1, 2026
3c1c431
Fix pchip integration with circular buffer
NAThompson Sep 1, 2026
74e3386
Add deprecation message to pointer, order constructor
mborland Apr 6, 2023
60280d1
Merge pull request #1444 from boostorg/nan_compare_1010
mborland Sep 1, 2026
c1acadb
Merge pull request #1447 from boostorg/complex_979
mborland Sep 1, 2026
156df0b
Merge pull request #974 from mborland/156
mborland Sep 1, 2026
547866e
Don't let iteration count wrap
NAThompson Sep 1, 2026
ae087ba
Fix hang in 1F1 (#1446)
NAThompson Sep 3, 2026
a53a98b
Add coverage to Daubechies wavelet and scaling functions.
NAThompson Sep 4, 2026
c6d79d9
Cleanup Jamfile for minimax
NAThompson Sep 2, 2026
080a089
DOC: fix typos polygamma
fbourgey Jul 19, 2026
5a6c106
Fix Daubechies derivative scaling and complete coverage
NAThompson Sep 5, 2026
4ee4993
Support explicit zero and norm across quadrature integrators
NAThompson Sep 5, 2026
28bf4d5
Better documentation for simple_continued_fraction
NAThompson Sep 5, 2026
5fa3f2c
Correct TOMS 748 root bracketing docs
mpwaser Jul 9, 2026
4505d45
Add more nodes to whittaker-shannon interpolant at higher precision
NAThompson Sep 5, 2026
3fad9e5
Clear remaining -Wdocumentation warnings
karpovantonme Aug 5, 2026
73e77f7
Fix skew normal by exp-sinh quadrature
NAThompson Sep 1, 2026
8709ad0
Avoid moderate cancellation in skew-normal tails
NAThompson Sep 5, 2026
c69941b
Fix underflow in BesselK
NAThompson Sep 1, 2026
8371ce0
Improve denorm cases
mborland Sep 6, 2026
3aad472
Submit failing unit test for Issue 1463.
NAThompson Sep 16, 2026
0337ee3
cdf(x) + complement(cdf(x)) == 1
NAThompson Sep 16, 2026
ec2917e
Fix hangs and precision loss in the Jacobi theta functions
evanmiller Sep 16, 2026
72385a8
Test the Laplace transforms of the theta functions at fixed z
evanmiller Sep 17, 2026
2a8e6f5
Reduce number of CI tasks by dropping C++14.
NAThompson Sep 17, 2026
0fa40f7
Green up CI
NAThompson Sep 18, 2026
dde3200
Support hexfloat in cstdfloat_iostream.hpp
NAThompson Sep 19, 2026
5e7615c
Form the Jacobi theta exponents without amplified rounding
evanmiller Sep 17, 2026
6a6d851
Benchmark the theta evaluation regimes; fix expression-template types
evanmiller Sep 17, 2026
423578a
Move the theta helpers into detail and always use std::fma for built-…
evanmiller Sep 17, 2026
841ee39
Only trust std::fma for the product errors where it is actually fused
evanmiller Sep 18, 2026
927258a
Fix the argument reduction for large z and extend the split pi
evanmiller Sep 18, 2026
7a5caf3
Probe fma for every type, not just the built-in ones
evanmiller Sep 19, 2026
f57fc1d
Fix second variance accumulator in parallel correlation
Robertboy18 Sep 20, 2026
1e061f2
Add CITATION.cff
NAThompson Sep 20, 2026
0dbde87
Remove old clang workarounds for autodiff
NAThompson Sep 19, 2026
f3a10b2
Trim CI
NAThompson Sep 20, 2026
32161a7
Initial symplectic integrator
JacobHass8 Jun 20, 2026
f5fd6e0
Generalized to floats
JacobHass8 Jun 21, 2026
f3a57ca
Added driver function
JacobHass8 Jun 21, 2026
ae97c4c
Added error handling and default arguments
JacobHass8 Jun 22, 2026
bc87cd0
Initial testing
JacobHass8 Jun 22, 2026
14f9f27
Added SHO test
JacobHass8 Jun 23, 2026
a185a46
Switched to map functionality
JacobHass8 Jun 23, 2026
17bafa1
Added documentation
JacobHass8 Jun 25, 2026
22889d0
Fixed typo
JacobHass8 Jun 25, 2026
2671fd8
Updated docs and max function
JacobHass8 Jun 26, 2026
9147075
Changed functions to only accept vectors
JacobHass8 Jun 26, 2026
538c8ee
Completely eliminated valarrays
JacobHass8 Jun 27, 2026
e3b7ecf
Added a couple more tests
JacobHass8 Jul 5, 2026
3c7829f
Changed function namespaces
JacobHass8 Jul 5, 2026
6c4e14d
Added SRKN from paper
JacobHass8 Jul 6, 2026
dd5d0c7
Added simple pendulum test
JacobHass8 Jul 6, 2026
4d36e62
Changed template to RandomAccessContainer
JacobHass8 Jul 7, 2026
85cd504
Added singleton support
JacobHass8 Jul 12, 2026
e2c96e9
Added higher order method
JacobHass8 Jul 12, 2026
bb8dc03
Added higher order method (previous commit was wrong file)
JacobHass8 Jul 12, 2026
e71a516
Added order 11 tests
JacobHass8 Jul 12, 2026
ceb3c31
Fixed hh test derivatives
JacobHass8 Jul 12, 2026
9df0fe2
Fixed void_t bug
JacobHass8 Jul 14, 2026
5dfe229
Added float and long double tests
JacobHass8 Jul 14, 2026
dabf402
Updated documentation
JacobHass8 Jul 15, 2026
ab0d506
Added multiprecision support
JacobHass8 Jul 15, 2026
c189a3e
Relaxed tolerances
JacobHass8 Jul 16, 2026
18808a5
Added a multiprecision test
JacobHass8 Jul 17, 2026
6c84324
First round of review comments
JacobHass8 Aug 5, 2026
ac797ea
Avoided copying input
JacobHass8 Aug 5, 2026
3ae9e51
Switched to enum class
JacobHass8 Aug 7, 2026
3d751a1
Added boost export
JacobHass8 Aug 7, 2026
0482545
Changed function signature
JacobHass8 Aug 7, 2026
259c264
Updated documentation and namespaces
JacobHass8 Aug 15, 2026
036cb10
Added missed export
JacobHass8 Aug 15, 2026
3d5e70b
Responded to review comments
JacobHass8 Aug 18, 2026
8370b33
Supressed microsoft warnings
JacobHass8 Aug 18, 2026
45648ce
Fixed windows errors
JacobHass8 Aug 18, 2026
14b528a
Review comments
JacobHass8 Aug 24, 2026
1a29196
Added size initialization
JacobHass8 Aug 24, 2026
fa237b9
Made initialization more robust
JacobHass8 Aug 27, 2026
701e413
Added cubic spline
JacobHass8 Sep 3, 2026
117ab37
First hack at controlled step sizes
JacobHass8 Sep 4, 2026
700a928
First hack at adaptive timesteps
JacobHass8 Sep 18, 2026
f8f5404
Second pass at adaptive steps with vectors
JacobHass8 Sep 19, 2026
3ce19a6
Added some adaptive timstep checks
JacobHass8 Sep 19, 2026
ff2c189
Fixed windows errors
JacobHass8 Sep 19, 2026
1be607b
Added adaptive tests
JacobHass8 Sep 20, 2026
0b1ced5
Updated documentation
JacobHass8 Sep 20, 2026
97e423f
Improve precision and speed of the Kolmogorov-Smirnov distribution
evanmiller Sep 17, 2026
ac7849e
Evaluate the upper tail of the Kolmogorov-Smirnov CDF from the nome
evanmiller Sep 17, 2026
b48ed55
Take the quantile functors' logarithms where std::log is in scope
evanmiller Sep 19, 2026
a40dbfd
Fix the reference-value test on glibc and in standalone mode
evanmiller Sep 20, 2026
f0fb939
Give the reference values to 40 digits for a 113-bit long double
evanmiller Sep 21, 2026
a001cc8
Return the Kolmogorov-Smirnov constants by value
evanmiller Sep 21, 2026
b232de2
Prime Number Functions (#400)
mborland Sep 21, 2026
eb9b57f
Fix noncentral t degrees-of-freedom domain checking (#1467)
NAThompson Sep 23, 2026
fb58a2c
Remove CXX03 and CXX11 workarounds (#1479)
NAThompson Sep 23, 2026
a099f29
Report failure when Newton/Halley walk onto a bound with no root (#1480)
NAThompson Sep 23, 2026
631bd42
Make discrete quantiles round-trip with the cdf (#1481)
NAThompson Sep 23, 2026
101adaf
feat: use policy-based error handling in interpolators (#1245)
fpelliccioni Sep 23, 2026
e707a02
Fix CI: all current build failures on develop (#1482)
NAThompson Sep 23, 2026
4ad0a6a
simple_continued_fraction: fix printing, assignment and canonical for…
NAThompson Sep 24, 2026
c8be559
polynomial: integer % scalar returns the coefficient-wise remainder (…
NAThompson Sep 24, 2026
e5d5bc0
autodiff: constrain fvar's converting constructor (fixes #424, supers…
NAThompson Sep 24, 2026
e99bff4
Add the `pow1p` function (#1183)
mborland Sep 24, 2026
c45326a
Add 3-arg hypot (#914)
mborland Sep 24, 2026
5b2530b
Fix conditions that disable real_concept test in test_next.cpp (#1360)
mbs-c Sep 24, 2026
d46a152
Fix CI: autodiff float32_t under C++23, pow1p on SYCL (#1486)
NAThompson Sep 25, 2026
fe7d6fc
Speed up float_distance for IEEE float, double and binary128 (superse…
NAThompson Sep 25, 2026
5ed172a
Fix discrete quantile hang beyond 1/epsilon and trim CI (#1489)
NAThompson Sep 26, 2026
9ee7fb7
ellint_rj: 1.7x faster via the series of R_C for small E_n (#1490)
NAThompson Sep 26, 2026
50793de
Von Mises Distribution (#818)
mborland Sep 26, 2026
9e96c8b
Fix catastrophic cancellation error in poisson logpdf when k and mu a…
rahulb0802 Sep 26, 2026
ef3def3
Hypergeometric PDF: non-integer x, and Loader's method above N = 170 …
NAThompson Sep 26, 2026
f3a4362
Fix bezier async evaluation (#1493)
agiust Sep 26, 2026
45060a4
Non-central F and beta: correct CDF for huge denominator degrees of f…
NAThompson Sep 26, 2026
4a1cd90
Use asymptotic expressions for left limits in degree of freedom finde…
dschmitz89 Oct 1, 2026
72eae27
Gauss-Hermite Quadrature (#1461)
JacobHass8 Oct 1, 2026
2aec284
Fix overflow and cancellation in inverse Gaussian CDFs (#1496)
Boulea7 Oct 1, 2026
5c5a6e6
Improve monotonicty detection in degree of freedom finders for fisher…
dschmitz89 Oct 2, 2026
603968e
CI: run the CUDA tests on a simulated GPU (#1503)
saqibkh Oct 2, 2026
51fde38
Add User Configurable Top-Level Namespace (#1504)
mborland Oct 3, 2026
0cb2b4c
Add lbeta (#1498)
NAThompson Oct 3, 2026
34eb840
Add libeta and libetac, the logarithms of ibeta and ibetac (#1500)
NAThompson Oct 3, 2026
4971557
Add ligamma and ligamma_lower, the logarithms of tgamma(a, x) and tga…
NAThompson Oct 3, 2026
a15476e
README: Fix typo (#1510)
valdaarhun Oct 4, 2026
56bec1a
Gauss Hermite Clean Up (#1502)
JacobHass8 Oct 4, 2026
a13bcb0
Add 2D ulps plots (#1513)
NAThompson Oct 9, 2026
9025af9
Fix ibeta_inv / ibeta bugs (#1512)
NAThompson Oct 9, 2026
1ca4fe3
Fix Laplace logpdf: location and scale were swapped (#1516)
agiust Oct 9, 2026
14b170d
Fix two uninitialized reads: complex range checks and evaluation_cond…
NAThompson Oct 10, 2026
08dbf53
Draw the function under ulps plots (#1521)
NAThompson Oct 10, 2026
2a7156e
Run the CI tests with FMA at -O2 (#1515)
NAThompson Oct 10, 2026
69e1645
Fix ligamma where tgamma(a, x) is near 1 (#1518)
NAThompson Oct 10, 2026
c899254
Evaluate tgamma1pm1 for multiprecision types with a Taylor series (#1…
NAThompson Oct 10, 2026
651cd73
Raise an error when most digits of hypergeometric_pFq are lost to can…
NAThompson Oct 10, 2026
0cf2069
Evaluate heuman_lambda's delta^2 and RJ argument without cancellation…
NAThompson Oct 10, 2026
b120108
Keep ulps plot labels distinct and apart (#1533)
NAThompson Oct 10, 2026
4fdb5fb
Evaluate the Airy functions near zero with their Maclaurin series (#1…
NAThompson Oct 10, 2026
1523055
Compute the left tail of the non-central t cdf by quadrature when its…
NAThompson Oct 10, 2026
91760d1
Shorten CI: shard the CUDA job and test fewer suites on s390x (#1534)
NAThompson Oct 10, 2026
5a732e3
Avoid premature underflow in the binomial sum of ibeta (#1530)
NAThompson Oct 10, 2026
fdc58af
Fix the accuracy issues found by the ulps triage (#1547)
NAThompson Oct 11, 2026
c46a90c
Fix clang warnings (#1548)
NAThompson Oct 11, 2026
399b906
Quiet b2 output in CI (#1549)
NAThompson Oct 11, 2026
7f611fc
Rename foo_test files to test_foo (#1550)
NAThompson Oct 11, 2026
0aa599b
Drop the expected-failure autodiff special function tests (#1551)
NAThompson Oct 11, 2026
f1d9756
Actually build the clang-win CI jobs with clang-cl (#1552)
NAThompson Oct 11, 2026
4432adf
Speed up the slowest wavelet tests (#1553)
NAThompson Oct 11, 2026
7853ee7
Port the slowest-compiling Boost.Test files to math_unit_test.hpp (#1…
NAThompson Oct 11, 2026
72079a1
Rasterize the ulps plots' data and sample them on a grid (#1557)
NAThompson Oct 11, 2026
2e0caf1
Build every CI job with the same floating-point contraction (#1560)
NAThompson Oct 11, 2026
e86f989
Improve ibeta accuracy for small parameters and near the mean (#1556)
NAThompson Oct 11, 2026
29b1163
Keep ibeta monotonic under -ffp-contract=fast and fix develop's CI (#…
NAThompson Oct 11, 2026
f818178
Run the no-Lanczos igamma spot check only for types that use that pat…
NAThompson Oct 11, 2026
e123a3b
Stop promoting double and round discrete quantiles up by default (#1554)
NAThompson Oct 12, 2026
a4f2d48
Add a dev-only nanobind Python layer and the beta distribution's entr…
NAThompson Oct 12, 2026
98194df
Keep lgamma_p finite where P underflows, and add ulps plots to the Py…
NAThompson Oct 12, 2026
19e18cd
Drop lexical_cast from the beta entropy test so it builds standalone …
NAThompson Oct 12, 2026
b6a592b
Add a fast Fourier transform, and use it instead of FFTW (#1558)
NAThompson Oct 12, 2026
e2282a7
Add entropy to the remaining distributions, and build the compile tes…
NAThompson Oct 12, 2026
f575de2
Add the quadrature routines to the nanobind layer (#1571)
NAThompson Oct 12, 2026
60b4ed1
Polynomial roots (#1452)
NAThompson Oct 12, 2026
75d7bb3
Use the log incomplete gamma and beta functions for logcdf (#1570)
NAThompson Oct 12, 2026
4e7ca95
Add the derivative-free optimizers to the nanobind layer (#1572)
NAThompson Oct 12, 2026
6156cba
Add the generalized extreme value distribution, and port test_negativ…
NAThompson Oct 13, 2026
1f514cb
Send exact -infinity in log functions to the overflow policy (#1574)
NAThompson Oct 13, 2026
1d8224c
Draw the Python layer's ulps plots with the C++ ulps_plot and ulps_he…
NAThompson Oct 14, 2026
a6849b5
Consolidate the compensated arithmetic into one header (#1576)
NAThompson Oct 14, 2026
4a6ce78
Fix redefinition of policy<> when float and double are both unpromote…
NAThompson Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
62 changes: 0 additions & 62 deletions .circleci/config.yml

This file was deleted.

49 changes: 17 additions & 32 deletions .drone.star
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,10 @@ def main(ctx):
gcc13_things_to_test = [ "special_fun", "distribution_tests", "mp", "misc", "interpolators", "quadrature", "autodiff", "long-running-tests", "float128_tests", "concepts", "new_floats" ]
sanitizer_test = [ "special_fun", "distribution_tests", "misc", "interpolators", "quadrature", "float128_tests" ]
reverse_mode_autodiff_test = [ "test_reverse_mode_autodiff", "autodiff-long-running-tests", "gradient_based_optimizers" ]
gnu_5_stds = [ "gnu++14", "c++14" ]
gnu_6_stds = [ "gnu++14", "c++14", "gnu++17", "c++17" ]
clang_6_stds = [ "c++14", "c++17" ]
gnu_9_stds = [ "gnu++14", "c++14", "gnu++17", "c++17", "gnu++2a", "c++2a" ]
clang_10_stds = [ "c++14", "c++17", "c++2a" ]
gnu_non_native = [ "gnu++17" ]
cxx17_stds = [ "c++17" ]
gnu_cxx17_stds = [ "gnu++17" ]
non_native_stds = [ "c++17" ]
s390x_things_to_test = [ "special_fun", "distribution_tests" ]
gcc13_stds = [ "c++23" ]

result = []
Expand All @@ -35,43 +33,30 @@ def main(ctx):
#
result.append(linux_cxx("Ubuntu Clang-18 C++20 ASAN" + " " + suite, "clang++-18", packages="clang-18", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-18', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '<cxxflags>-fsanitize=address <linkflags>-fsanitize=address <cxxflags>-DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu Clang-18 C++20 USAN" + " " + suite, "clang++-18", packages="clang-18", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-18', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '<cxxflags>-fsanitize=undefined <linkflags>-fsanitize=undefined <cxxflags>-DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu Clang-18 C++20 TSAN" + " " + suite, "clang++-18", packages="clang-18", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-18', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '<cxxflags>-fsanitize=thread <linkflags>-fsanitize=thread <cxxflags>-DBOOST_CI_SANITIZER_BUILD' }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu Clang-18 C++20 ISAN" + " " + suite, "clang++-18", packages="clang-18", privileged=True, buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-18', 'CXXSTD': 'gnu++20', 'TEST_SUITE': suite, 'OPTIONS': '<cxxflags>-fsanitize=integer <linkflags>-fsanitize=integer' }, globalenv=globalenv))

for suite in things_to_test:
for cxx in gnu_5_stds:
result.append(linux_cxx("Ubuntu g++-5 " + cxx + " " + suite, "g++-5", packages="g++-5", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-5', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for cxx in gnu_6_stds:
result.append(linux_cxx("Ubuntu g++-6 " + cxx + " " + suite, "g++-6", packages="g++-6", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-6', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu g++-7 " + cxx + " " + suite, "g++-7", packages="g++-7", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-7', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu g++-8 " + cxx + " " + suite, "g++-8", packages="g++-8", buildtype="boost", image="cppalliance/droneubuntu2004:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-8', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
# Minimum supported C++17 compilers.
for cxx in cxx17_stds:
result.append(linux_cxx("Ubuntu g++-9 " + cxx + " " + suite, "g++-9", packages="g++-9", buildtype="boost", image="cppalliance/droneubuntu2004:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-9', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for cxx in clang_6_stds:
result.append(linux_cxx("Ubuntu clang++-6 " + cxx + " " + suite, "clang++-6.0", packages="clang-6.0", llvm_os="bionic", llvm_ver="6.0", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-6.0', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu clang++-7 " + cxx + " " + suite, "clang++-7", packages="clang-7", llvm_os="bionic", llvm_ver="7", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-7', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu clang++-8 " + cxx + " " + suite, "clang++-8", packages="clang-8", llvm_os="bionic", llvm_ver="8", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-8', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu clang++-9 " + cxx + " " + suite, "clang++-9", packages="clang-9", llvm_os="focal", llvm_ver="9", buildtype="boost", image="cppalliance/droneubuntu2004:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-9', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for cxx in gnu_9_stds:
result.append(linux_cxx("Ubuntu g++-10 " + cxx + " " + suite, "g++-10", packages="g++-10", buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-10', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu g++-11 " + cxx + " " + suite, "g++-11", packages="g++-11", buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-11', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))

# Keep one GNU-mode GCC configuration across the full suite. This
# exercises GNU extensions used by the __float128/libquadmath path.
for cxx in gnu_cxx17_stds:
result.append(linux_cxx("Ubuntu g++-12 " + cxx + " " + suite, "g++-12", packages="g++-12", buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-12', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu clang++-14 " + cxx + " " + suite, "clang++-14", packages="clang-14", llvm_os="jammy", llvm_ver="14", buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-14', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu clang++-15 " + cxx + " " + suite, "clang++-15", packages="clang-15", llvm_os="jammy", llvm_ver="15", buildtype="boost", image="cppalliance/droneubuntu2204:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-15', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for cxx in clang_10_stds:
result.append(linux_cxx("Ubuntu clang++-10 " + cxx + " " + suite, "clang++-10", packages="clang-10", llvm_os="xenial", llvm_ver="10", buildtype="boost", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-10', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for cxx in gnu_non_native:
result.append(linux_cxx("Ubuntu g++ s390s " + cxx + " " + suite, "g++", packages="g++", buildtype="boost", image="cppalliance/droneubuntu2404:multiarch", arch="s390x", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for cxx in gnu_non_native:

# Keep architecture coverage, but do it once in the minimum language mode.
for cxx in non_native_stds:
# The s390x runners are few and shared with all of Boost, so their queue sets the length of the
# whole build: test only the suites that big-endian and IEEE quad long double matter most for.
if suite in s390x_things_to_test:
result.append(linux_cxx("Ubuntu g++ s390s " + cxx + " " + suite, "g++", packages="g++", buildtype="boost", image="cppalliance/droneubuntu2404:multiarch", arch="s390x", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu g++ ARM64" + cxx + " " + suite, "g++", packages="g++", buildtype="boost", image="cppalliance/droneubuntu2404:multiarch", arch="arm64", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for cxx in gnu_non_native:
result.append(osx_cxx("M1 Clang " + cxx + " " + suite, "clang++", buildscript="drone", buildtype="boost", xcode_version="14.1", environment={'TOOLSET': 'clang', 'CXXSTD': cxx, 'TEST_SUITE': suite, 'DEFINE': 'BOOST_MATH_NO_REAL_CONCEPT_TESTS,BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS,BOOST_MATH_MULTI_ARCH_CI_RUN', }, globalenv=globalenv))
for suite in gcc13_things_to_test:
for cxx in gcc13_stds:
result.append(linux_cxx("Ubuntu g++-13 " + cxx + " " + suite, "g++-13", packages="g++-13", buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-13', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu g++-14 " + cxx + " " + suite, "g++-14", packages="g++-14", buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-14', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
for suite in reverse_mode_autodiff_test:
for cxx in gcc13_stds:
result.append(linux_cxx("Ubuntu g++-13 " + cxx + " " + suite, "g++-13", packages="g++-13", buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-13', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))
result.append(linux_cxx("Ubuntu g++-14 " + cxx + " " + suite, "g++-14", packages="g++-14", buildtype="boost", image="cppalliance/droneubuntu2404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-14', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv))

return result
Expand Down
2 changes: 1 addition & 1 deletion .drone/boost.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ echo '==================================> SCRIPT'

echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD $OPTIONS ;" > ~/user-config.jam
(cd libs/config/test && ../../../b2 print_config_info print_math_info toolset=$TOOLSET)
(cd libs/math/test && ../../../b2 -j3 toolset=$TOOLSET $TEST_SUITE)
(cd libs/math/test && ../../../b2 -d0 -j3 toolset=$TOOLSET $TEST_SUITE)

echo '==================================> AFTER_SUCCESS'

Expand Down
13 changes: 11 additions & 2 deletions .drone/drone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,18 @@ echo '==================================> BEFORE_SCRIPT'

echo '==================================> SCRIPT'

echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD $OPTIONS ;" > ~/user-config.jam
# Contract a*b + c into fused multiply-add, across expressions, as every CI job does: gcc's ISO
# -std=c++NN modes otherwise mean -ffp-contract=off. -O2 rather than b2's default of -O0: it is what
# users build with, and gcc does not fuse below it. FMA is in the base aarch64 and s390x instruction
# sets; x86 needs it switched on, where the CPU has it. The x86 runners without it (kh1 and kh2)
# have no FMA instruction to contract into, so they build without fused operations.
FMA_FLAGS="<cxxflags>-ffp-contract=fast <cxxflags>-O2"
if [ "$(uname -m)" = x86_64 ] && grep -qw fma /proc/cpuinfo; then FMA_FLAGS="<cxxflags>-mfma $FMA_FLAGS"; fi
echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD $OPTIONS $FMA_FLAGS ;" > ~/user-config.jam
(cd libs/config/test && ../../../b2 print_config_info print_math_info toolset=$TOOLSET)
(cd libs/math/test && ../../../b2 -j3 toolset=$TOOLSET $TEST_SUITE)
# inlining=on: b2's debug variant adds -fno-inline, which is not how users optimize, and clang
# needs over 6 GB for one multiprecision test that way.
(cd libs/math/test && ../../../b2 -d0 -j3 toolset=$TOOLSET inlining=on $TEST_SUITE)

echo '==================================> AFTER_SUCCESS'

Expand Down
Loading
Loading