Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1108 commits
Select commit Hold shift + click to select a range
5b3aa00
Update decimal64_t / and % non-finite value handling
mborland Nov 20, 2025
ad2db3c
Update decimal128_t / and % non-finite value handling
mborland Nov 20, 2025
40f21d5
Update decimal_fast32_t / and % non-finite values handling
mborland Nov 20, 2025
ee6316d
Update decimal_fast64_t / and % handling
mborland Nov 20, 2025
5881278
Updater decimal_fast128_t / and % handling
mborland Nov 20, 2025
7a727a7
Merge pull request #1255 from cppalliance/1254
mborland Nov 20, 2025
3afb4d8
Add 64-bit test set of addition and subtraction using downward round
mborland Nov 20, 2025
46760e6
Fix calculation of resultant significand with downward rounding
mborland Nov 20, 2025
4f82944
Remove branch from return condition
mborland Nov 20, 2025
1872d59
Add 32 bit testing
mborland Nov 20, 2025
a67a8ba
Add 128-bit test set
mborland Nov 20, 2025
c43a171
Apply similar fix to 128-bit addition path
mborland Nov 20, 2025
bed71c5
Test addition in both directions
mborland Nov 20, 2025
b6ef45f
Fix regression in the not pure power of 10 case
mborland Nov 20, 2025
d0f6bf5
Add test against add/sub of zero with downwards rounding
mborland Nov 20, 2025
28a8554
Fix zero operand case
mborland Nov 20, 2025
953271a
Re-add lost condition
mborland Nov 20, 2025
204d0eb
Merge pull request #1256 from cppalliance/downward
mborland Nov 21, 2025
ce58f98
Add testing of upward rounding edge cases
mborland Nov 21, 2025
9775e79
Add positive side testing values
mborland Nov 21, 2025
6610b54
Add directional rounding based on sign
mborland Nov 21, 2025
efc3b23
Add addition and subtraction of zero tests
mborland Nov 21, 2025
72b1e56
Add power of 10 function
mborland Nov 21, 2025
ce5cea3
Simplifications
mborland Nov 21, 2025
f94991b
Detect pure powers of ten to avoid losing digit
mborland Nov 21, 2025
928d242
Add fast64 testing
mborland Nov 21, 2025
5c68410
Add 32-bit testing
mborland Nov 21, 2025
4813757
Add 128-bit testing
mborland Nov 21, 2025
7946a42
Apply similar logic to 128-bit add/sub path
mborland Nov 21, 2025
556518d
Fix case of differing signs
mborland Nov 21, 2025
51113cc
Merge pull request #1258 from cppalliance/upward
mborland Nov 21, 2025
a7704d2
Don't change sign of nans
mborland Nov 21, 2025
15341dd
Merge pull request #1259 from cppalliance/abs
mborland Nov 21, 2025
593bfb4
Update name since the lib is official now
mborland Dec 3, 2025
7f442a1
Add unary arithmetic operator behavior
mborland Dec 3, 2025
2db7193
Add addition behavior
mborland Dec 3, 2025
9be7d4e
Add subtraction behavior
mborland Dec 3, 2025
19dfe2e
Add multiplication behavior
mborland Dec 3, 2025
94f374c
Add division behavior
mborland Dec 3, 2025
2bb9ddd
Add comparison operators behavior
mborland Dec 3, 2025
7e3fe7a
Add xref for behavior of individual operators
mborland Dec 3, 2025
675c4f8
Fix indentation level
mborland Dec 3, 2025
de07d0a
Merge pull request #1261 from cppalliance/api_ref
mborland Dec 3, 2025
9162ea1
Add constructor behavior notes
mborland Dec 3, 2025
d454dcb
Add behavior of conversion to integral type
mborland Dec 3, 2025
38a23b3
Add the behavior of increment and decrement operators
mborland Dec 3, 2025
45e748f
Xref for compound operations
mborland Dec 3, 2025
27a1964
Lump conversion to double with from double
mborland Dec 3, 2025
b3e988d
Explain decimal32_t specific operators
mborland Dec 3, 2025
01ba342
Fix return value of postfix
mborland Dec 3, 2025
8587443
Fix incorrect test values
mborland Dec 3, 2025
5b42457
Merge pull request #1262 from cppalliance/type_ref
mborland Dec 3, 2025
ddd4043
Merge pull request #1263 from cppalliance/inc_dec
mborland Dec 3, 2025
6ec1509
Add behavior of decimal64_t members
mborland Dec 4, 2025
80661b8
Add behavior or decimal128_t members
mborland Dec 4, 2025
90a163d
Merge pull request #1264 from cppalliance/behave
mborland Dec 4, 2025
812e1e7
Add limitations section
mborland Dec 4, 2025
c76d539
Merge pull request #1266 from cppalliance/fast
mborland Dec 4, 2025
2975dce
Fix mismatched export
mborland Dec 4, 2025
754cdba
Merge pull request #1268 from cppalliance/fix_module
mborland Dec 4, 2025
0d9e47d
Add gitignore for text files in examples folder
mborland Dec 4, 2025
d4876c4
Add example of reading and writing decimal values to file
mborland Dec 4, 2025
c158847
Inline example in docs with expected output
mborland Dec 4, 2025
e9e6709
Add to nav bar
mborland Dec 4, 2025
54346a2
Update clang runners
mborland Dec 5, 2025
ed41fe3
Improve tab naming
mborland Dec 5, 2025
f43cee2
Merge pull request #1267 from cppalliance/file
mborland Dec 5, 2025
2814d27
Add note on subnormals
mborland Dec 5, 2025
4917e18
Fix typo
mborland Dec 5, 2025
a2e3beb
Add member operator behavior for decimal_fast32_t
mborland Dec 5, 2025
9d0f158
Document missing conversion operators
mborland Dec 5, 2025
bba379f
Document decimal_fast64_t member operator behavior
mborland Dec 5, 2025
1ca4ec4
Fix copy-paste error
mborland Dec 5, 2025
11d4c45
Add member operator behavior
mborland Dec 5, 2025
2bc8e5f
Merge pull request #1269 from cppalliance/more_fast
mborland Dec 5, 2025
f3d60b7
Add and document missing conversion operators
mborland Dec 5, 2025
ab23b3a
Add xref for the behavior of non-member operators
mborland Dec 5, 2025
ed4e152
Add non-member operators page
mborland Dec 5, 2025
77514d2
Add fast types operator behavior page
mborland Dec 5, 2025
9082532
Update cross-references to use new page
mborland Dec 5, 2025
85edee6
Add fast type specific promotion note
mborland Dec 5, 2025
3e800ce
Add generic impl of conversion from string
mborland Dec 5, 2025
4672ae4
Add driver functions
mborland Dec 5, 2025
3878cd8
Add functionality testing
mborland Dec 5, 2025
970ae03
Add testing of overflow path
mborland Dec 5, 2025
40c6a45
Check for infinity along with r.ec value
mborland Dec 5, 2025
ce00fe0
Add testing of invalid path
mborland Dec 5, 2025
0d0bd12
Add documentation of new string conversion functions
mborland Dec 5, 2025
fe3bbd6
Merge pull request #1271 from cppalliance/non-member
mborland Dec 5, 2025
fefc51c
Merge pull request #1272 from cppalliance/from_string
mborland Dec 8, 2025
097bf7e
Add simple addition comparison example
mborland Dec 8, 2025
6c87e27
Inline arithmetic example in documentation page
mborland Dec 8, 2025
883b289
Make style consistent
mborland Dec 8, 2025
75bf096
Merge pull request #1273 from cppalliance/examples
mborland Dec 8, 2025
0b8e96e
Update uint128_t
mborland Dec 8, 2025
2e4a8bd
Update int128_t
mborland Dec 8, 2025
912d0a5
Inline helper function
mborland Dec 8, 2025
326c57f
Merge pull request #1277 from cppalliance/inline
mborland Dec 8, 2025
dbe89fa
Merge pull request #1276 from cppalliance/1274
mborland Dec 8, 2025
b5789e1
Adjust indentation level
mborland Dec 8, 2025
d1daf4d
Add reproducer test set
mborland Dec 8, 2025
f9441b9
Use larger offset since it's allowable
mborland Dec 8, 2025
90c291e
Test subtraction path
mborland Dec 8, 2025
3dfe776
Disable test for known failures
mborland Dec 9, 2025
07a7cdf
Merge pull request #1275 from cppalliance/1260
mborland Dec 9, 2025
c20c4b1
Add initial draft of decimal32_t lldb printer
mborland Dec 9, 2025
a094f8e
Add non-finite values handling
mborland Dec 9, 2025
1431d36
Add payload handling
mborland Dec 9, 2025
91051ef
Print values without fraction as integers instead of with trailing .0
mborland Dec 9, 2025
34f6dc4
Improve sign and payload handling
mborland Dec 10, 2025
8ffda03
Add example with variety of values
mborland Dec 10, 2025
0d08900
Preserve cohort
mborland Dec 10, 2025
0b9db3a
Add debugger doc page
mborland Dec 10, 2025
d9f5231
Make decoding reusable for LLDB and GDB
mborland Dec 10, 2025
5c23ca5
Add printing of decimal64_t
mborland Dec 10, 2025
95d6e1f
Fix decimal64_t pattern
mborland Dec 10, 2025
9a4b6bc
Add decimal128_t decoding methods and printer
mborland Dec 10, 2025
c559030
Match function signature to the others
mborland Dec 10, 2025
aec22fc
Allow all types to be shown in example
mborland Dec 10, 2025
173defb
The bits of decimal128_t are synthetic
mborland Dec 10, 2025
a94d415
Avoid division and manipulate the string directly instead
mborland Dec 10, 2025
3184243
Add fast type synthetic provider
mborland Dec 10, 2025
739965e
Add generic fast type decoder
mborland Dec 10, 2025
e888d75
Reduce code duplication
mborland Dec 10, 2025
995293e
Add decimal_fast32_t to example
mborland Dec 10, 2025
85d2443
Add decimal_fast32_t pretty printer
mborland Dec 10, 2025
577fcc9
Fix import error
mborland Dec 10, 2025
243d40b
Refactor
mborland Dec 10, 2025
4235462
Fix negative nan typo
mborland Dec 10, 2025
32c8cac
Add proper handling of non-finite decimal_fast32_t values
mborland Dec 10, 2025
265ff0a
Add decimal_fast64_t pretty printer
mborland Dec 10, 2025
ff94486
Add decimal_fast128_t pretty printer
mborland Dec 10, 2025
03f5936
Improve output and explanation in documentation
mborland Dec 10, 2025
428a8b6
Fix missing return
mborland Dec 10, 2025
2c2d170
Always print a minimum of 2 digits of exponent
mborland Dec 10, 2025
e2b34c0
Update images
mborland Dec 10, 2025
a7b4eb4
Improve comments
mborland Dec 10, 2025
e5fe052
Merge pull request #1279 from cppalliance/pretty_printers
mborland Dec 10, 2025
ef0add3
Rename LLDB printer for consistency
mborland Dec 11, 2025
aba5d4b
Update doc page
mborland Dec 11, 2025
3704993
Add GDB pretty printer module
mborland Dec 11, 2025
898fa9a
Fix paths
mborland Dec 11, 2025
f18e27b
Merge pull request #1281 from cppalliance/gdb
mborland Dec 11, 2025
9e7163f
Ignore gdb pyc files
mborland Dec 15, 2025
eb197c4
Fix missing detail folder
mborland Dec 15, 2025
b1a41b9
Fix autoload command in docs
mborland Dec 15, 2025
c68aa53
Merge pull request #1282 from cppalliance/gdb
mborland Dec 15, 2025
95608e1
Make rounding mode consistent with other benchmarks
mborland Dec 16, 2025
da6bf71
Improve generation of random decimal128s
mborland Dec 16, 2025
ee1974a
Fix typedef
mborland Dec 16, 2025
c280f19
Add Intel libbid with GCC compiler benchmarks
mborland Dec 16, 2025
fc8e8d7
Merge pull request #1283 from cppalliance/gcc_bid
mborland Dec 16, 2025
4f83ea0
Add MSVC based benchmarks of Intel libbid on x64 (#1284)
mborland Dec 16, 2025
3958fbd
Add example on binary floating point conversions
mborland Dec 16, 2025
e7b62e1
Add conversions example to main examples page
mborland Dec 16, 2025
1dab453
Add to nav bar
mborland Dec 16, 2025
529c490
Merge pull request #1285 from cppalliance/conversions
mborland Dec 17, 2025
f39522c
Add example of integer conversions
mborland Dec 17, 2025
0387a42
Add integral conversion example to doc page
mborland Dec 17, 2025
88b45d6
Add cross reference to conversions
mborland Dec 17, 2025
3e210da
Fix MSVC warning
mborland Dec 17, 2025
de4451a
Update expected output
mborland Dec 17, 2025
e2574eb
Merge pull request #1286 from cppalliance/integral_conversion
mborland Dec 17, 2025
33e6291
Remove workaround
mborland Jan 7, 2026
2952aa3
Fix strict aliasing violations
mborland Jan 7, 2026
9489bbd
Merge pull request #1289 from cppalliance/1260_2
mborland Jan 8, 2026
5c877ad
Test and fix -Wextra-semi
mborland Jan 9, 2026
75af050
Test and fix -Wuseless-cast
mborland Jan 9, 2026
d154ecd
Test and fix GCC -Wpadded and MSVC 4324
mborland Jan 9, 2026
db0d6a2
-Wpadded breaks testing suite
mborland Jan 9, 2026
dd8c000
32-bit useless casts
mborland Jan 9, 2026
2ca8a6e
Edit jamfile
mborland Jan 9, 2026
c87ac20
Fix mixed platform disagreement
mborland Jan 9, 2026
5d73132
Reduced trials cast
mborland Jan 9, 2026
a33260d
Merge pull request #1293 from cppalliance/1291
mborland Jan 10, 2026
5068716
Add expanded reproducer test set
mborland Jan 12, 2026
c0067b0
Fix conditional logic
mborland Jan 12, 2026
b6954c2
Add additional edge case test value
mborland Jan 12, 2026
88a0966
Merge pull request #1295 from cppalliance/1294
mborland Jan 12, 2026
2c27725
Add simplified u256 add impl
mborland Dec 17, 2025
31deee4
Add intrinsic powered impl
mborland Dec 17, 2025
8f7c92b
Add second u256 addition impl
mborland Dec 17, 2025
5294424
Add i256_sub method
mborland Dec 17, 2025
35b21fa
Add signed 256 x 256 addition
mborland Dec 17, 2025
e9620b1
Add intrinsic powered sub
mborland Dec 17, 2025
b38025a
Add second intrin powered sub
mborland Dec 17, 2025
0d4fd38
Add new decimal128_t addition impl with new paths
mborland Dec 17, 2025
d7a5bd1
Add compound mul operator
mborland Dec 17, 2025
cf2da34
Add operator u256 > u128
mborland Dec 17, 2025
238ac78
Add pretty printer for u256
mborland Dec 17, 2025
5a7b55d
Add proper constructor for uint128_t
mborland Dec 17, 2025
1b7801d
Add handling of double negative path
mborland Dec 17, 2025
cfe2a44
Add potential fast path for non-normalized addition and subtraction
mborland Dec 17, 2025
068849b
Fix 256 bit powers of 10
mborland Dec 17, 2025
e9bac59
Add additional testing of pre generated powers of ten
mborland Dec 17, 2025
d419085
Add additional test case
mborland Dec 17, 2025
cf8f156
Use new addition method
mborland Dec 17, 2025
544c25a
Fix pow10 generation
mborland Dec 17, 2025
8f356c7
More tests
mborland Dec 17, 2025
76a03de
Fix missing sub borrow instrinsic
mborland Dec 17, 2025
b5f0865
Fix missing variable
mborland Dec 17, 2025
a20dbc2
Explicitly construct u256 for u128
mborland Jan 12, 2026
4f30023
Expand the significands prior to addition
mborland Jan 12, 2026
c2f5652
Add cheaper accessor function
mborland Jan 12, 2026
9ac3a41
Explicitly test for zero
mborland Jan 12, 2026
d113ffe
Test seemingly trivial value
mborland Jan 12, 2026
6b0cac8
Fix subtraction word order
mborland Jan 12, 2026
ffcaafd
Improve use of intrinsics
mborland Jan 12, 2026
57e593e
Remove unneeded functions
mborland Jan 12, 2026
6a8dbde
Ignore impossible sign conversion warning
mborland Jan 12, 2026
f8a8e6f
Test existence of builtin
mborland Jan 12, 2026
464e3fb
Remove unused function
mborland Jan 12, 2026
fa8b2d6
Add detection of i386 intrin
mborland Jan 13, 2026
aae9a8c
Fix macros being detected
mborland Jan 13, 2026
ad01581
Implement subcll workaround for i386
mborland Jan 13, 2026
9dc581a
Add GDB printer for u256 internal type
mborland Jan 13, 2026
df7d977
Add testing failure from 32 bit platforms
mborland Jan 13, 2026
7237e34
Fix byte order
mborland Jan 13, 2026
627d376
Add special handling for u256 divided by a single word
mborland Jan 13, 2026
87fc521
Remove branch testing for zero
mborland Jan 13, 2026
cd3cc9c
Use and test new impl with decimal_fast128_t
mborland Jan 13, 2026
6fc97f9
Implement and test subtraction
mborland Jan 13, 2026
3e923c5
Use new function for mixed type add and sub
mborland Jan 13, 2026
72c5c5a
Use new function for fast math mixed types
mborland Jan 13, 2026
0659137
Fix mixed nans handling
mborland Jan 13, 2026
653aa3c
Ignore GCC 7 warning
mborland Jan 13, 2026
1def358
Merge pull request #1288 from cppalliance/i256
mborland Jan 14, 2026
3cea463
Remove use of bitwise operations from internals
mborland Jan 13, 2026
0a6c81e
Remove decimal32 bitwise operators and testing
mborland Jan 13, 2026
6a6be02
Remove decimal64 bitwise operators and testing
mborland Jan 13, 2026
b2bcd48
Remove decimal128 bitwise operators and testing
mborland Jan 13, 2026
40e0570
Fix method of clearing bits
mborland Jan 14, 2026
827663a
Add comparison of u256 and std::uint64_t
mborland Jan 14, 2026
6e808ed
Use new d128 addition impl in d64 fma
mborland Jan 14, 2026
21f218e
Remove now unused d128 addition impl
mborland Jan 14, 2026
e55a5b4
Replace d32 binary masks with hex
mborland Jan 14, 2026
c825cf2
Replace d64 binary masks with hex
mborland Jan 14, 2026
98f73b8
Replace d128 masks with hex
mborland Jan 14, 2026
2fcf4cb
Replace binary decoding masks with hex
mborland Jan 14, 2026
dd64915
Replace binary constants in numeric limits
mborland Jan 14, 2026
2222b4a
Replace binary dpd decoding masks
mborland Jan 14, 2026
7fab6c1
Merge pull request #1296 from cppalliance/remove_bin_ops
mborland Jan 14, 2026
b850c63
Merge pull request #1297 from cppalliance/cruft
mborland Jan 14, 2026
322ffce
Merge pull request #1298 from cppalliance/1205
mborland Jan 14, 2026
1ad0e0f
Clear sign before reading payload
mborland Jan 14, 2026
ff6b6bc
Handle payloads and signaling nans correctly
mborland Jan 14, 2026
8a51f2b
Add test set
mborland Jan 14, 2026
f73f34b
Apply fmax non-finite handling to fmin
mborland Jan 14, 2026
ead1547
Add similar fmin tests
mborland Jan 14, 2026
a1f81d9
Merge pull request #1300 from cppalliance/1299
mborland Jan 14, 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
  •  
  •  
  •  
8 changes: 7 additions & 1 deletion .drone.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ local linux_pipeline(name, image, environment, packages = "", sources = [], arch
commands:
[
'set -e',
'wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -',
'echo $DRONE_STAGE_MACHINE',
'uname -a',
'curl -sSL --retry 5 https://apt.llvm.org/llvm-snapshot.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/llvm-snapshot.gpg',
] +
(if sources != [] then [ ('apt-add-repository "' + source + '"') for source in sources ] else []) +
(if packages != "" then [ 'apt-get update', 'apt-get -y install ' + packages ] else []) +
Expand Down Expand Up @@ -68,6 +70,9 @@ local macos_pipeline(name, environment, xcode_version = "12.2", osx_version = "c
environment: environment + { "DEVELOPER_DIR": "/Applications/Xcode-" + xcode_version + ".app/Contents/Developer" },
commands:
[
'echo $DRONE_STAGE_MACHINE',
'sw_vers',
'uname -a',
'export LIBRARY=' + library,
'./.drone/drone.sh',
]
Expand All @@ -94,6 +99,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
environment: environment,
commands:
[
'echo $env:DRONE_STAGE_MACHINE',
'cmd /C .drone\\\\drone.bat ' + library,
]
}
Expand Down
2 changes: 0 additions & 2 deletions .drone/drone.bat
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
set LIBRARY=%1
set DRONE_BUILD_DIR=%CD%

echo $env:DRONE_STAGE_MACHINE

set BOOST_BRANCH=develop
if "%DRONE_BRANCH%" == "master" set BOOST_BRANCH=master
cd ..
Expand Down
2 changes: 0 additions & 2 deletions .drone/drone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

set -ex
export PATH=~/.local/bin:/usr/local/bin:$PATH
uname -a
echo $DRONE_STAGE_MACHINE

DRONE_BUILD_DIR=$(pwd)

Expand Down
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:
- "*"
184 changes: 131 additions & 53 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ jobs:
linkflags: -stdlib=libc++
- toolset: clang
compiler: clang++-16
cxxstd: "03,11,14,17,20,2b"
cxxstd: "03,11,14,17,20"
os: ubuntu-latest
container: ubuntu:22.04
install:
Expand Down Expand Up @@ -286,10 +286,27 @@ jobs:
- "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main"
source_keys:
- "https://apt.llvm.org/llvm-snapshot.gpg.key"

- toolset: clang
compiler: clang++-20
cxxstd: "03,11,14,17,20,2b"
os: macos-13
os: ubuntu-24.04
install:
- clang-20
sources:
- "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-20 main"
source_keys:
- "https://apt.llvm.org/llvm-snapshot.gpg.key"
- toolset: clang
compiler: clang++-21
cxxstd: "03,11,14,17,20,2b"
os: ubuntu-24.04
install:
- clang-21
sources:
- "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main"
source_keys:
- "https://apt.llvm.org/llvm-snapshot.gpg.key"

- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-14
Expand Down Expand Up @@ -392,6 +409,8 @@ jobs:
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y ${{join(matrix.install, ' ')}} locales libfmt-dev
sudo locale-gen de_DE.UTF-8
sudo locale-gen en_US.UTF-8
sudo locale-gen fr_FR.UTF-8
sudo update-locale
- name: Setup GCC Toolchain
if: matrix.gcc_toolchain
Expand Down Expand Up @@ -532,6 +551,10 @@ jobs:
cxxstd: "03,11,14,17" # 20 has ICE
addrmd: "64"
os: windows-latest
- toolset: msvc-14.3
cxxstd: "14,17,20,latest"
addrmd: "64"
os: windows-11-arm

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

Expand Down Expand Up @@ -572,7 +595,6 @@ jobs:
matrix:
include:
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15

Expand Down Expand Up @@ -620,7 +642,6 @@ jobs:
matrix:
include:
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15

Expand Down Expand Up @@ -678,7 +699,6 @@ jobs:
matrix:
include:
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15

Expand Down Expand Up @@ -728,13 +748,70 @@ jobs:
cd ../boost-root/__build__
ctest --output-on-failure --no-tests=error

posix-cmake-test-dectest:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
- os: macos-14
- os: macos-15

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

steps:
- uses: actions/checkout@v4

- name: Install packages
if: matrix.install
run: sudo apt install ${{matrix.install}}

- 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
cd libs/$LIBRARY/test
git clone https://github.com/cppalliance/decimal-dectest
cd ../../../
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY

- name: Configure
run: |
cd ../boost-root
mkdir __build__ && cd __build__
cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DBUILD_TESTING=ON -DBUILD_DECTEST_TESTING=ON ..

- name: Build tests
run: |
cd ../boost-root/__build__
cmake --build . --target tests

- name: Run tests
run: |
cd ../boost-root/__build__
ctest --output-on-failure --no-tests=error

posix-standalone-test:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15

Expand Down Expand Up @@ -930,52 +1007,53 @@ jobs:
g++ main.cpp $(pkg-config --cflags --libs boost_decimal) -o test_pkgconfig
./test_pkgconfig

MSYS2:
defaults:
run:
shell: msys2 {0}
strategy:
fail-fast: false
matrix:
include:
- { sys: MINGW32, compiler: gcc, cxxstd: '03,11,17,20' }
- { sys: MINGW64, compiler: gcc, cxxstd: '03,11,17,20' }

runs-on: windows-latest

steps:
- uses: actions/checkout@v4

- name: Setup MSYS2 environment
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: git python
pacboy: gcc:p cmake:p ninja:p

- name: Fetch Boost.CI
uses: actions/checkout@v4
with:
repository: boostorg/boost-ci
ref: master
path: boost-ci-cloned
- name: Get CI scripts folder
run: |
# Copy ci folder if not testing Boost.CI
[[ "$GITHUB_REPOSITORY" =~ "boost-ci" ]] || cp -r boost-ci-cloned/ci .
rm -rf boost-ci-cloned

- name: Setup Boost
env:
B2_COMPILER: ${{matrix.compiler}}
B2_CXXSTD: ${{matrix.cxxstd}}
B2_SANITIZE: ${{matrix.sanitize}}
B2_STDLIB: ${{matrix.stdlib}}
run: ci/github/install.sh

- name: Run tests
run: ci/build.sh
# Symlink in docs folder breaks these runs
# MSYS2:
# defaults:
# run:
# shell: msys2 {0}
# strategy:
# fail-fast: false
# matrix:
# include:
# - { sys: MINGW32, compiler: gcc, cxxstd: '03,11,17,20' }
# - { sys: MINGW64, compiler: gcc, cxxstd: '03,11,17,20' }
#
# runs-on: windows-latest
#
# steps:
# - uses: actions/checkout@v4
#
# - name: Setup MSYS2 environment
# uses: msys2/setup-msys2@v2
# with:
# msystem: ${{matrix.sys}}
# update: true
# install: git python
# pacboy: gcc:p cmake:p ninja:p
#
# - name: Fetch Boost.CI
# uses: actions/checkout@v4
# with:
# repository: boostorg/boost-ci
# ref: master
# path: boost-ci-cloned
# - name: Get CI scripts folder
# run: |
# # Copy ci folder if not testing Boost.CI
# [[ "$GITHUB_REPOSITORY" =~ "boost-ci" ]] || cp -r boost-ci-cloned/ci .
# rm -rf boost-ci-cloned
#
# - name: Setup Boost
# env:
# B2_COMPILER: ${{matrix.compiler}}
# B2_CXXSTD: ${{matrix.cxxstd}}
# B2_SANITIZE: ${{matrix.sanitize}}
# B2_STDLIB: ${{matrix.stdlib}}
# run: ci/github/install.sh
#
# - name: Run tests
# run: ci/build.sh

intel:
runs-on: ubuntu-latest
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
# Copyright Matt Borland 2023 - 2024.
# Copyright Christopher Kormanyos 2023 - 2024.
# Distributed under the Boost Software License,
Expand All @@ -17,14 +17,14 @@ on:
types: [opened, synchronize, reopened]
jobs:
gcc-gcov-native:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
standard: [ c++20 ]
standard: [ c++2a ]
compiler: [ g++ ]
steps:
- uses: actions/checkout@v4
Expand All @@ -50,6 +50,7 @@ jobs:
git submodule update --init libs/static_assert
git submodule update --init libs/test
git submodule update --init libs/random
git submodule update --init libs/charconv
./bootstrap.sh
./b2 headers
- name: gcc-gcov-native
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,14 @@ test/tidy/err/
test/tidy/tmp/
cmake-build-debug/
test/metal/bin/
test/decimal-dectest/

# Modules
*.gcm
gcm.cache/

# Mac option
*.DS_Store

# Pretty Printers
*.pyc
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_DECIMAL_VERSION 5.2.0)
set(BOOST_DECIMAL_VERSION 6.0.0)
else()
set(BOOST_DECIMAL_VERSION ${BOOST_SUPERPROJECT_VERSION})
endif()
Expand Down
Loading