From 8db9edbc1852210d60eaf5b42240e37fa2c1c969 Mon Sep 17 00:00:00 2001 From: fcostaoliveira Date: Mon, 1 Jun 2026 00:48:45 +0100 Subject: [PATCH 1/8] EXP-050: straight-line nested-if integer-part scan (ported from ffc EXP-026/028) Peel the first 5 iterations of the integer-part digit loop into nested ifs, eliminating the loop back-edge for the common 1-5 digit integer case. Identical semantics (i = 10*i + digit). Biggest win on inputs with multi-digit integer parts (mesh 3D coordinates). ARM Graviton4 (canonical MB/s, vs upstream 7790aa6 baseline): GCC: random +0.05%, canada +4.0%, mesh +34.3% (c/f 55.7->41.4) Clang: random +4.9%, canada +2.8%, mesh +5.1% Correctness: 14/14 core+supplemental pass. Co-Authored-By: Claude Opus 4.8 --- include/fast_float/ascii_number.h | 35 +++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/include/fast_float/ascii_number.h b/include/fast_float/ascii_number.h index 12c2fdd..257b43b 100644 --- a/include/fast_float/ascii_number.h +++ b/include/fast_float/ascii_number.h @@ -354,13 +354,36 @@ parse_number_string(UC const *p, UC const *pend, uint64_t i = 0; // an unsigned int avoids signed overflows (which are bad) - while ((p != pend) && is_integer(*p)) { - // a multiplication by 10 is cheaper than an arbitrary integer - // multiplication - i = 10 * i + - uint64_t(*p - - UC('0')); // might overflow, we will handle the overflow later + // Straight-line unroll of the integer-part scan: most integer parts are + // 1-5 digits, so peeling the first iterations eliminates the loop back-edge + // for the common case (ported from ffc EXP-026/028). Semantics are identical + // to the original `while` loop: i = 10*i + digit, advancing p. + if ((p != pend) && is_integer(*p)) { + i = uint64_t(*p - UC('0')); ++p; + if ((p != pend) && is_integer(*p)) { + i = 10 * i + uint64_t(*p - UC('0')); + ++p; + if ((p != pend) && is_integer(*p)) { + i = 10 * i + uint64_t(*p - UC('0')); + ++p; + if ((p != pend) && is_integer(*p)) { + i = 10 * i + uint64_t(*p - UC('0')); + ++p; + if ((p != pend) && is_integer(*p)) { + i = 10 * i + uint64_t(*p - UC('0')); + ++p; + while ((p != pend) && is_integer(*p)) { + // a multiplication by 10 is cheaper than an arbitrary integer + // multiplication + i = 10 * i + + uint64_t(*p - UC('0')); // might overflow, handled later + ++p; + } + } + } + } + } } UC const *const end_of_integer_part = p; int64_t digit_count = int64_t(end_of_integer_part - start_digits); From ee849467021be4fbef05e90913528cb100127bc1 Mon Sep 17 00:00:00 2001 From: fcostaoliveira Date: Mon, 1 Jun 2026 00:56:52 +0100 Subject: [PATCH 2/8] EXP-052: 2x unroll of char loop_parse_if_eight_digits (ported from ffc EXP-044) Clang/AArch64-gated 16-digit-per-iteration unroll of the fraction SWAR loop; eliminates the back-edge for typical 17-digit [0,1] mantissas. GCC keeps the auto-unrolled simple loop. ARM Graviton4 (canonical fast_float MB/s vs EXP-050): Clang: random +2.8% (1365.7 from 1328.8), mesh +1.7%, canada +0.5% GCC: unchanged (#else path) Correctness: 14/14 pass. Co-Authored-By: Claude Opus 4.8 --- include/fast_float/ascii_number.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/include/fast_float/ascii_number.h b/include/fast_float/ascii_number.h index 257b43b..6c79509 100644 --- a/include/fast_float/ascii_number.h +++ b/include/fast_float/ascii_number.h @@ -259,6 +259,34 @@ fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void loop_parse_if_eight_digits(char const *&p, char const *const pend, uint64_t &i) { // optimizes better than parse_if_eight_digits_unrolled() for UC = char. +#if defined(__aarch64__) && defined(__clang__) + // 2x unroll (ported from ffc EXP-044): on Clang/AArch64, consuming 16 digits + // per iteration eliminates the loop back-edge for typical fractions (e.g. the + // 17-digit mantissas of uniform [0,1] inputs) and keeps the SWAR constants + // resident. GCC auto-unrolls the simple loop well, so it keeps the original. + while ((pend - p) >= 16) { + uint64_t val1 = read8_to_u64(p); + if (!is_made_of_eight_digits_fast(val1)) { + break; + } + uint64_t val2 = read8_to_u64(p + 8); + if (!is_made_of_eight_digits_fast(val2)) { + i = i * 100000000 + parse_eight_digits_unrolled(val1); + p += 8; + return; // val2 is not a full digit block; caller's byte loop handles rest + } + i = (i * 100000000 + parse_eight_digits_unrolled(val1)) * 100000000 + + parse_eight_digits_unrolled(val2); // in rare cases overflows, that's ok + p += 16; + } + if ((pend - p) >= 8) { + uint64_t val = read8_to_u64(p); + if (is_made_of_eight_digits_fast(val)) { + i = i * 100000000 + parse_eight_digits_unrolled(val); + p += 8; + } + } +#else while ((std::distance(p, pend) >= 8) && is_made_of_eight_digits_fast(read8_to_u64(p))) { i = i * 100000000 + @@ -266,6 +294,7 @@ loop_parse_if_eight_digits(char const *&p, char const *const pend, p)); // in rare cases, this will overflow, but that's ok p += 8; } +#endif } enum class parse_error { From a30c1f3d3f42dde8c34478215edbe3ce3234b350 Mon Sep 17 00:00:00 2001 From: fcostaoliveira Date: Mon, 1 Jun 2026 01:04:30 +0100 Subject: [PATCH 3/8] EXP-053: 4-digit SWAR follow-up in loop_parse_if_eight_digits, GCC path (ffc EXP-001) After the 8-digit block loop, consume a remaining 4-7 digit run in one SWAR step (reusing fast_float's existing read4_to_u32 / is_made_of_four_digits_fast / parse_four_digits_unrolled) instead of byte-by-byte. GCC path only: on Clang the follow-up's presence bloated the 2x-unroll codegen and regressed random -6.2%. ARM Graviton4 (canonical fast_float MB/s vs EXP-052): GCC: canada +2.6% (948.1 from 924.0, i/f 248.7->229.7), random/mesh flat Clang: unchanged (EXP-052 path preserved) Correctness: 14/14 pass. Co-Authored-By: Claude Opus 4.8 --- include/fast_float/ascii_number.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/fast_float/ascii_number.h b/include/fast_float/ascii_number.h index 6c79509..371f3da 100644 --- a/include/fast_float/ascii_number.h +++ b/include/fast_float/ascii_number.h @@ -294,6 +294,17 @@ loop_parse_if_eight_digits(char const *&p, char const *const pend, p)); // in rare cases, this will overflow, but that's ok p += 8; } + // 4-digit SWAR follow-up (ported from ffc EXP-001): consume a remaining 4-7 + // digit run in one step rather than byte-by-byte. GCC path only — on Clang + // the follow-up's presence bloated the 2x-unroll codegen and regressed random. + if ((pend - p) >= 4) { + uint32_t const val4 = read4_to_u32(p); + if (is_made_of_four_digits_fast(val4)) { + i = i * 10000 + + parse_four_digits_unrolled(val4); // in rare cases overflows, that's ok + p += 4; + } + } #endif } From 3ff2c0b8945408f63b381af4f22a6167e52b486d Mon Sep 17 00:00:00 2001 From: fcostaoliveira Date: Mon, 1 Jun 2026 09:15:26 +0100 Subject: [PATCH 4/8] EXP-053: clang-format (reflow comment + expression wrap; no semantic change) Pre-clear the lint_and_format_check CI gate. clang-format-18 (CI pins 17; LLVM base style is identical for these constructs). Behavior/benchmarks unchanged. Co-Authored-By: Claude Opus 4.8 --- include/fast_float/ascii_number.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/fast_float/ascii_number.h b/include/fast_float/ascii_number.h index 371f3da..14caa0d 100644 --- a/include/fast_float/ascii_number.h +++ b/include/fast_float/ascii_number.h @@ -296,12 +296,13 @@ loop_parse_if_eight_digits(char const *&p, char const *const pend, } // 4-digit SWAR follow-up (ported from ffc EXP-001): consume a remaining 4-7 // digit run in one step rather than byte-by-byte. GCC path only — on Clang - // the follow-up's presence bloated the 2x-unroll codegen and regressed random. + // the follow-up's presence bloated the 2x-unroll codegen and regressed + // random. if ((pend - p) >= 4) { uint32_t const val4 = read4_to_u32(p); if (is_made_of_four_digits_fast(val4)) { - i = i * 10000 + - parse_four_digits_unrolled(val4); // in rare cases overflows, that's ok + i = i * 10000 + parse_four_digits_unrolled( + val4); // in rare cases overflows, that's ok p += 4; } } From f4f36e04f7c7546086624f3995b26ea81bcaf675 Mon Sep 17 00:00:00 2001 From: fcostaoliveira Date: Fri, 3 Jul 2026 14:13:44 +0100 Subject: [PATCH 5/8] EXP-062: enable the 4-digit SWAR fraction follow-up on all compilers (drop __clang__ gate) --- include/fast_float/ascii_number.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/include/fast_float/ascii_number.h b/include/fast_float/ascii_number.h index e431cbc..6fa640d 100644 --- a/include/fast_float/ascii_number.h +++ b/include/fast_float/ascii_number.h @@ -268,10 +268,9 @@ loop_parse_if_eight_digits(char const *&p, char const *const pend, } // Consume a remaining 4-7 digit run in a single SWAR step instead of // byte-by-byte (reuses the existing 4-digit helpers). The parsed result is - // identical either way. Gated to clang: on gcc the extra 4-digit check - // regresses inputs whose remainder is shorter than 4 digits (it becomes pure - // overhead there); clang does not show that. -#if defined(__clang__) + // identical either way. Historically gated to clang because gcc regressed on + // short remainders, but that verdict predates the span-elision restructure; + // with the leaner hot path the 4-digit step now wins on gcc as well. if ((pend - p) >= 4) { uint32_t const val4 = read4_to_u32(p); if (is_made_of_four_digits_fast(val4)) { @@ -280,7 +279,6 @@ loop_parse_if_eight_digits(char const *&p, char const *const pend, p += 4; } } -#endif } enum class parse_error { From 5082489e352ce4904da4d2f652760b8781cae561 Mon Sep 17 00:00:00 2001 From: fcostaoliveira Date: Fri, 3 Jul 2026 14:15:29 +0100 Subject: [PATCH 6/8] EXP-063: test the mode-independent mantissa bound before the rounds_to_nearest probe --- include/fast_float/parse_number.h | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/include/fast_float/parse_number.h b/include/fast_float/parse_number.h index 7d338f3..117ec69 100644 --- a/include/fast_float/parse_number.h +++ b/include/fast_float/parse_number.h @@ -198,7 +198,14 @@ clinger_fast_path_impl(uint64_t mantissa, int64_t exponent, bool is_negative, // We proceed optimistically, assuming that detail::rounds_to_nearest() // returns true. if (binary_format::min_exponent_fast_path() <= exponent && - exponent <= binary_format::max_exponent_fast_path()) { + exponent <= binary_format::max_exponent_fast_path() && + mantissa <= binary_format::max_mantissa_fast_path()) { + // The mantissa bound above is a necessary condition for BOTH branches + // below: the rounding-mode-dependent branch checks the tighter + // max_mantissa_fast_path(exponent) <= max_mantissa_fast_path(). Testing + // it before detail::rounds_to_nearest() spares long-mantissa inputs + // (which can never take the fast path) the volatile-float probe. + // // Unfortunately, the conventional Clinger's fast path is only possible // when the system rounds to the nearest float. // @@ -209,18 +216,16 @@ clinger_fast_path_impl(uint64_t mantissa, int64_t exponent, bool is_negative, if (!cpp20_and_in_constexpr() && detail::rounds_to_nearest()) { // We have that fegetround() == FE_TONEAREST. // Next is Clinger's fast path. - if (mantissa <= binary_format::max_mantissa_fast_path()) { - value = T(mantissa); - if (exponent < 0) { - value = value / binary_format::exact_power_of_ten(-exponent); - } else { - value = value * binary_format::exact_power_of_ten(exponent); - } - if (is_negative) { - value = -value; - } - return true; + value = T(mantissa); + if (exponent < 0) { + value = value / binary_format::exact_power_of_ten(-exponent); + } else { + value = value * binary_format::exact_power_of_ten(exponent); } + if (is_negative) { + value = -value; + } + return true; } else { // We do not have that fegetround() == FE_TONEAREST. // Next is a modified Clinger's fast path, inspired by Jakub Jelínek's From ce25f0d1956fd03b69cade00903b699bb24121c8 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 10 Jul 2026 09:20:48 -0400 Subject: [PATCH 7/8] Remove Stars section from README Removed the Stars section and related chart from README. --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index d52fefe..4e251e8 100644 --- a/README.md +++ b/README.md @@ -613,11 +613,6 @@ long digits. The library includes code adapted from Google Wuffs (written by Nigel Tao) which was originally published under the Apache 2.0 license. -## Stars - - -[![Star History Chart](https://api.star-history.com/svg?repos=fastfloat/fast_float&type=Date)](https://www.star-history.com/#fastfloat/fast_float&Date) - ## License From 1fa146ed1d0e31d85803b07ca02db19695530adf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 00:06:02 +0000 Subject: [PATCH 8/8] Bump actions/checkout in the github-actions group across 1 directory Bumps the github-actions group with 1 update in the / directory: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/alpine.yml | 2 +- .github/workflows/amalgamate-ubuntu24.yml | 2 +- .github/workflows/emscripten.yml | 4 ++-- .github/workflows/lint_and_format_check.yml | 2 +- .github/workflows/msys2-clang.yml | 2 +- .github/workflows/msys2.yml | 2 +- .github/workflows/on-release.yml | 2 +- .github/workflows/pages.yml | 2 +- .github/workflows/risc.yml | 2 +- .github/workflows/s390x.yml | 2 +- .github/workflows/ubuntu22-clang.yml | 2 +- .github/workflows/ubuntu22-gcc12.yml | 2 +- .github/workflows/ubuntu22-sanitize.yml | 2 +- .github/workflows/ubuntu22.yml | 2 +- .github/workflows/ubuntu24-cxx20.yml | 2 +- .github/workflows/ubuntu24.yml | 2 +- .github/workflows/vs17-arm-ci.yml | 2 +- .github/workflows/vs17-ci.yml | 2 +- .github/workflows/vs17-clang-ci.yml | 2 +- .github/workflows/vs17-cxx20.yml | 2 +- 20 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/alpine.yml b/.github/workflows/alpine.yml index 7917a05..2e8d988 100644 --- a/.github/workflows/alpine.yml +++ b/.github/workflows/alpine.yml @@ -18,7 +18,7 @@ jobs: - riscv64 steps: - name: Checkout repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v7 - name: Install latest Alpine Linux for ${{ matrix.arch }} uses: jirutka/setup-alpine@v1 diff --git a/.github/workflows/amalgamate-ubuntu24.yml b/.github/workflows/amalgamate-ubuntu24.yml index 6d2d29e..a7982d4 100644 --- a/.github/workflows/amalgamate-ubuntu24.yml +++ b/.github/workflows/amalgamate-ubuntu24.yml @@ -6,7 +6,7 @@ jobs: ubuntu-build: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Compile with amalgamation run: | mkdir build && diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 04d2cce..ff7b7a5 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -4,13 +4,13 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v4.2.2 + - uses: actions/checkout@e8d4307400f9427dba7cb98e488d6ab85f1cec5f # v4.2.2 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 - name: Verify run: emcc -v - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v3.6.0 + uses: actions/checkout@e8d4307400f9427dba7cb98e488d6ab85f1cec5f # v3.6.0 - name: Configure run: emcmake cmake -B build - name: Build # We build but do not test diff --git a/.github/workflows/lint_and_format_check.yml b/.github/workflows/lint_and_format_check.yml index 05913e9..d307cd7 100644 --- a/.github/workflows/lint_and_format_check.yml +++ b/.github/workflows/lint_and_format_check.yml @@ -24,7 +24,7 @@ jobs: lint-and-format: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v4.1.7 + - uses: actions/checkout@e8d4307400f9427dba7cb98e488d6ab85f1cec5f # v4.1.7 - name: Run clang-format uses: jidicula/clang-format-action@654a770daa28443dd111d133e4083e21c1075674 # v4.18.0 diff --git a/.github/workflows/msys2-clang.yml b/.github/workflows/msys2-clang.yml index c6f8747..bc29a06 100644 --- a/.github/workflows/msys2-clang.yml +++ b/.github/workflows/msys2-clang.yml @@ -20,7 +20,7 @@ jobs: CMAKE_GENERATOR: Ninja steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - uses: msys2/setup-msys2@v2 with: update: true diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 6274913..5aee072 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -23,7 +23,7 @@ jobs: CMAKE_GENERATOR: Ninja steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - uses: msys2/setup-msys2@v2 with: update: true diff --git a/.github/workflows/on-release.yml b/.github/workflows/on-release.yml index a68df4e..7427df4 100644 --- a/.github/workflows/on-release.yml +++ b/.github/workflows/on-release.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Amalgamate fast_float.h run: | diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 2bbc472..b0eede9 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -26,7 +26,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 fetch-tags: true diff --git a/.github/workflows/risc.yml b/.github/workflows/risc.yml index 6609cff..2437da8 100644 --- a/.github/workflows/risc.yml +++ b/.github/workflows/risc.yml @@ -6,7 +6,7 @@ jobs: build: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Install packages run: | sudo apt-get update -q -y diff --git a/.github/workflows/s390x.yml b/.github/workflows/s390x.yml index db7a03d..fde0c25 100644 --- a/.github/workflows/s390x.yml +++ b/.github/workflows/s390x.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - uses: uraimo/run-on-arch-action@v3 name: Test id: runcmd diff --git a/.github/workflows/ubuntu22-clang.yml b/.github/workflows/ubuntu22-clang.yml index 4d7f49f..5f29203 100644 --- a/.github/workflows/ubuntu22-clang.yml +++ b/.github/workflows/ubuntu22-clang.yml @@ -6,7 +6,7 @@ jobs: ubuntu-build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Install clang++-14 run: sudo apt-get install -y clang++-14 - name: Use cmake diff --git a/.github/workflows/ubuntu22-gcc12.yml b/.github/workflows/ubuntu22-gcc12.yml index a32033c..49ddf94 100644 --- a/.github/workflows/ubuntu22-gcc12.yml +++ b/.github/workflows/ubuntu22-gcc12.yml @@ -6,7 +6,7 @@ jobs: ubuntu-build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Use cmake run: | mkdir build && diff --git a/.github/workflows/ubuntu22-sanitize.yml b/.github/workflows/ubuntu22-sanitize.yml index b7f9660..cd1f126 100644 --- a/.github/workflows/ubuntu22-sanitize.yml +++ b/.github/workflows/ubuntu22-sanitize.yml @@ -6,7 +6,7 @@ jobs: ubuntu-build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Use cmake run: | mkdir build && diff --git a/.github/workflows/ubuntu22.yml b/.github/workflows/ubuntu22.yml index 09dac2b..dd00d3b 100644 --- a/.github/workflows/ubuntu22.yml +++ b/.github/workflows/ubuntu22.yml @@ -6,7 +6,7 @@ jobs: ubuntu-build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Use cmake run: | mkdir build && diff --git a/.github/workflows/ubuntu24-cxx20.yml b/.github/workflows/ubuntu24-cxx20.yml index 1d451c9..18c770e 100644 --- a/.github/workflows/ubuntu24-cxx20.yml +++ b/.github/workflows/ubuntu24-cxx20.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Use cmake run: | mkdir build && diff --git a/.github/workflows/ubuntu24.yml b/.github/workflows/ubuntu24.yml index 09c82c8..cb382b9 100644 --- a/.github/workflows/ubuntu24.yml +++ b/.github/workflows/ubuntu24.yml @@ -6,7 +6,7 @@ jobs: ubuntu-build: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v7 - name: Use cmake run: | set -xe diff --git a/.github/workflows/vs17-arm-ci.yml b/.github/workflows/vs17-arm-ci.yml index e1c6f77..0a483a9 100644 --- a/.github/workflows/vs17-arm-ci.yml +++ b/.github/workflows/vs17-arm-ci.yml @@ -14,7 +14,7 @@ jobs: - {gen: Visual Studio 18 2026, arch: ARM64, cfg: Debug} steps: - name: checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v7 - name: configure run: | cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_TEST=ON diff --git a/.github/workflows/vs17-ci.yml b/.github/workflows/vs17-ci.yml index cdee064..948bab7 100644 --- a/.github/workflows/vs17-ci.yml +++ b/.github/workflows/vs17-ci.yml @@ -16,7 +16,7 @@ jobs: - {gen: Visual Studio 18 2026, arch: x64, cfg: Debug} steps: - name: checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v7 - name: configure run: | cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=ON -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination diff --git a/.github/workflows/vs17-clang-ci.yml b/.github/workflows/vs17-clang-ci.yml index 27fc268..f462d7b 100644 --- a/.github/workflows/vs17-clang-ci.yml +++ b/.github/workflows/vs17-clang-ci.yml @@ -16,7 +16,7 @@ jobs: - {gen: Visual Studio 18 2026, arch: x64, cfg: Debug} steps: - name: checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v7 - name: Configure run: | cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_BENCHMARKS=ON -T ClangCL -DFASTFLOAT_TEST=ON diff --git a/.github/workflows/vs17-cxx20.yml b/.github/workflows/vs17-cxx20.yml index bc9e11e..6139a5e 100644 --- a/.github/workflows/vs17-cxx20.yml +++ b/.github/workflows/vs17-cxx20.yml @@ -16,7 +16,7 @@ jobs: - {gen: Visual Studio 18 2026, arch: x64, cfg: Debug} steps: - name: checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v7 - name: configure run: >- cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}}