1444 Commits

Author SHA1 Message Date
HedgehogInTheCPP
c302890112 Merge branch 'main' of https://github.com/IRainman/fast_float 2026-08-14 20:32:18 +03:00
HedgehogInTheCPP
21592bba50 cleanup unusual workflows until it's fixed in the main repository. 2026-08-14 20:32:13 +03:00
HedgehogInTheCPP
e2b6aa095d
Remove Alpine CI badge from README
Removed Alpine CI badge from README.md
2026-08-14 20:29:18 +03:00
HedgehogInTheCPP
3ba6e192ee lindt unfck 2026-08-14 15:09:38 +03:00
HedgehogInTheCPP
1870ae71e7 * cleanup. 2026-08-14 01:43:26 +03:00
HedgehogInTheCPP
d33395ac1a cleanup. 2026-08-14 01:33:14 +03:00
HedgehogInTheCPP
6d5ca40802
Enhance Alpine workflow with cache key
Added cache key for build caching in Alpine workflow.
2026-08-14 00:31:28 +03:00
HedgehogInTheCPP
a847788226 There's research on the very beginning stage.
Added improvements and modernize SSE code and enable vectorization for char.
Add more detection of x86 architecture and allow user, for example if MSVC is used set the level manually: used new macro FASTFLOAT_X86_SIMD and available only if FASTFLOAT_SSE_PATCH_REWORK is enabled.
Rename FASTFLOAT_NEON to FASTFLOAT_ARM_NEON for consistency.
2026-08-13 23:10:11 +03:00
HedgehogInTheCPP
650282da5a
Merge pull request #23 from IRainman/dependabot/github_actions/github-actions-5c183d6ffa
Bump actions/setup-node from 6.4.0 to 7.0.0 in the github-actions group across 1 directory
2026-08-12 17:55:17 +03:00
HedgehogInTheCPP
6bafea0436
Merge branch 'fastfloat:main' into main 2026-08-12 17:52:03 +03:00
dependabot[bot]
568a683ecf
Bump actions/setup-node in the github-actions group across 1 directory
Bumps the github-actions group with 1 update in the / directory: [actions/setup-node](https://github.com/actions/setup-node).


Updates `actions/setup-node` from 6.4.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](48b55a011b...8207627860)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-10 02:18:27 +00:00
Daniel Lemire
a1f63a883d
Merge pull request #404 from latent-9/docs/fix-strtod-typo
docs: fix strtod function name in README
2026-08-08 15:48:33 -04:00
latent-9
37fb7d73da
docs: fix strtod function name in README 2026-08-09 00:06:35 +12:00
IRainman
b73cda56f3 * small cleanup for the long path 2026-08-06 20:58:51 +03:00
IRainman
068e36510b lindt unfck 2026-08-02 19:52:10 +03:00
IRainman
5721996a33 Merge branch 'main' of https://github.com/fastfloat/fast_float 2026-07-19 01:08:18 +03:00
Daniel Lemire
f6df0f2917
Merge pull request #398 from redis-performance/exp062-063-combo
Enable the 4-digit SWAR follow-up on GCC + skip the rounding-mode probe for long mantissas
2026-07-13 15:13:16 -04:00
Daniel Lemire
11c390b4dc
Merge pull request #396 from fastfloat/dependabot/github_actions/github-actions-640176b5ab
Bump actions/checkout from 6 to 7 in the github-actions group across 1 directory
2026-07-13 09:09:20 -04:00
dependabot[bot]
1fa146ed1d
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] <support@github.com>
2026-07-13 00:06:02 +00:00
Daniel Lemire
ce25f0d195
Remove Stars section from README
Removed the Stars section and related chart from README.
2026-07-10 09:20:48 -04:00
IRainman
7b9159ae51 * signed/unsigned mismatch fix. 2026-07-07 16:37:17 +03:00
IRainman
e1bc8fc297 * cleanup and slightly optimize slower path. 2026-07-07 16:15:21 +03:00
IRainman
b69cd828b2 Merge branch 'main' of https://github.com/IRainman/fast_float 2026-07-07 10:30:01 +03:00
IRainman
97368a033d * cleanup and optimize more. 2026-07-07 10:29:54 +03:00
HedgehogInTheCPP
b87a72e104
Add CI badges for Visual Studio 2018 workflows 2026-07-06 23:36:03 +03:00
IRainman
8646b4fd97 # lin
t unfck
2026-07-06 23:05:18 +03:00
IRainman
5324d7c5d7 * added crutch for compilers that do not properly support constexpr if 2026-07-06 22:49:21 +03:00
IRainman
b3895bd250 # cleanup 2026-07-06 22:27:41 +03:00
IRainman
b6c92139d7 # cleanup 2026-07-06 22:12:02 +03:00
IRainman
a7a783c8c8 # compilation fix after renaming 2026-07-06 21:19:24 +03:00
IRainman
79ef21000b # cleanup 2026-07-06 20:56:27 +03:00
IRainman
d949b3551c Merge branch 'main' of https://github.com/IRainman/fast_float 2026-07-06 16:54:42 +03:00
IRainman
85c9f84fc4 * copy-past cleanup. 2026-07-06 16:54:34 +03:00
HedgehogInTheCPP
a08db83e13
Merge pull request #22 from IRainman/dependabot/github_actions/github-actions-640176b5ab
Bump actions/checkout from 6 to 7 in the github-actions group across 1 directory
2026-07-06 16:11:23 +03:00
dependabot[bot]
6859c24a55
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] <support@github.com>
2026-07-06 02:14:08 +00:00
IRainman
fa48089012 * const fixes for merged code. 2026-07-05 22:13:55 +03:00
IRainman
72d3f6c1de * type usage fix in merged code 2026-07-05 22:00:35 +03:00
IRainman
cd4aafd2f6 # alignment next step performance: original now perform my program test for 133704ms and my fork give more significant performance improve than before: 105259ms. 2026-07-05 20:49:18 +03:00
IRainman
eef7133edc Merge branch 'main' of https://github.com/fastfloat/fast_float 2026-07-05 20:14:17 +03:00
fcostaoliveira
46b2fbaabb Reconcile redis-perf/optim: content superseded by upstream #381/#382/#387
EXP-050/052/053 were upstreamed in final form via #381 (integer-scan unroll)
and #382 (4-digit follow-up, clang-gated); the #387 span-elision restructure
then rewrote the surrounding code. This merge carries the old branch history
while the tree = upstream/main (8.2.7) + EXP-062 (ungate 4-digit SWAR on gcc)
+ EXP-063 (mantissa bound before rounds_to_nearest probe).

NOTE: EXP-052's 2x unroll of loop_parse_if_eight_digits was never upstreamed
and is dropped here pending post-#387 revalidation (see EXPERIMENTS.md).
2026-07-03 14:44:24 +01:00
fcostaoliveira
5082489e35 EXP-063: test the mode-independent mantissa bound before the rounds_to_nearest probe 2026-07-03 14:34:47 +01:00
fcostaoliveira
f4f36e04f7 EXP-062: enable the 4-digit SWAR fraction follow-up on all compilers (drop __clang__ gate) 2026-07-03 14:34:47 +01:00
Daniel Lemire
8ec5d236e2
Merge pull request #395 from sahvx655-wq/is-space-signed-compare
guard is_space against negative signed code units
2026-06-18 16:33:25 -04:00
sahvx655-wq
c539b5399c guard is_space against negative signed code units 2026-06-18 19:51:56 +05:30
Daniel Lemire
34164f547b 8.2.10 v8.2.10 2026-06-14 09:52:47 -04:00
Daniel Lemire
4eec7bec38
Merge pull request #394 from fastfloat/int-overflow-simdjson-approach
Int overflow check with a faster approach
2026-06-14 09:52:09 -04:00
Daniel Lemire
fd970ab05e updating visual studio 2026-06-13 21:41:53 -04:00
Daniel Lemire
a7249f86ed replace checked re-parse with O(1) simdjson-style overflow check
The previous commit detects multi-wrap u64 overflow at the max_digits
boundary by re-parsing the digits through a checked multiply-add loop
(O(max_digits)). Replace that with the constant-time check used in
simdjson: the leading digit plus a single threshold comparison.

For a max_digits-length value, min_safe_u64(base) == base^(max_digits-1)
is the smallest such value and also the width of each leading-digit band
[d*ms, (d+1)*ms). Since that width is < 2^64, the only band that can
straddle 2^64 is d == dmax (the largest leading digit that still fits),
and there it straddles at most once, so a single threshold dmax*ms
separates wrapped from non-wrapped values. A leading digit above dmax
always overflows; below dmax always fits. dmax and the threshold derive
from the existing min_safe_u64 table, so no new tables are needed and
dmax*ms cannot itself overflow.

Add a programmatic, self-verifying test for parse_int_string overflow
detection covering bases 2..36, complementing the hand-picked strings
added earlier. Every generated input is cross-checked against an
independent trusted oracle (a plain 64-bit checked multiply-add); on
success the parsed value is also compared exactly and full consumption
of the input is asserted.

Per base it exercises:
  - an exact-boundary sweep of the 64 values straddling 2^64
    (UINT64_MAX-31 .. 2^64+31), built by walking the digit string;
  - UINT64_MAX, 2^64 and the all-max-digit value, each also with
    leading zeros;
  - random max_digits-length values across every leading digit, with
    the heaviest sampling on the lead == dmax band that straddles 2^64,
    and full coverage of lead > dmax (the multi-wrap region the naive
    min_safe check accepted by mistake);
  - max_digits-1 (never overflows) and max_digits+1 (always overflows).
A small signed (int64_t) section checks the exact INT64_MIN/INT64_MAX
limits round-trip and that INT64_MAX+1 / INT64_MIN-1 are rejected in
every base.
2026-06-13 21:34:34 -04:00
sahvx655-wq
632cc97b5b detect uint64 overflow that wraps past min_safe in parse_int_string 2026-06-13 21:21:29 -04:00
Daniel Lemire
8234a89623 8.2.9 v8.2.9 2026-06-11 20:29:24 -04:00