1005 Commits

Author SHA1 Message Date
Jonathan Wakely
1b11407da9 Fix spelling
Run clang-format to reformat the long lines.
2026-06-02 15:30:37 +01:00
Daniel Lemire
f0ed8cdf52 display the latest version. 2026-06-01 18:28:09 -04:00
Daniel Lemire
cfd12ebcf1 8.2.6 v8.2.6 2026-06-01 18:07:41 -04:00
Daniel Lemire
06f3e27411
Merge pull request #383 from redis-performance/pr/parallel-exhaustive
Parallelize the exhaustive float32 sweeps across hardware threads (~75-88x)
2026-06-01 18:07:01 -04:00
fcostaoliveira
b642d9202f tests: parallelize exhaustive32 and exhaustive32_64 sweeps too
Same std::thread split as exhaustive32_midpoint; preserves each test's existing
failure behavior (abort for exhaustive32, stop-flag for exhaustive32_64).
2026-06-01 21:09:46 +01:00
Daniel Lemire
ed861322d8
Merge pull request #382 from redis-performance/pr/four-digit-followup
Add a 4-digit SWAR follow-up to loop_parse_if_eight_digits (clang)
2026-06-01 15:45:15 -04:00
Daniel Lemire
0f682cd6eb
Merge pull request #381 from redis-performance/pr/integer-scan-unroll
Unroll the integer-part digit scan (straight-line for the common 1-5 digit case)
2026-06-01 13:44:06 -04:00
fcostaoliveira
b20c420964 tests: parallelize the exhaustive midpoint sweep across hardware threads 2026-06-01 13:01:10 +01:00
fcostaoliveira
7589a4fea5 Add a 4-digit SWAR follow-up to loop_parse_if_eight_digits (clang)
After the 8-digit SWAR block loop, consume a remaining 4-7 digit run in one
read4_to_u32 + parse_four_digits_unrolled step instead of byte-by-byte (reusing
the existing 4-digit helpers). The parsed result is identical; this is purely a
faster way to consume the same digits.

Gated to clang: on gcc the extra 4-digit check regresses inputs whose remainder
is < 4 digits (e.g. the 17-digit fraction of uniform [0,1] -> -3% on 'random'),
because the check becomes pure overhead there; clang does not show that.

m8g.metal-24xl (Graviton4), -O3 -march=native, simple_fastfloat_benchmark,
from_chars->double, clang 18, base vs patch back-to-back (2 samples):
  canada.txt +11.7%, mesh.txt +7.4%, random ~flat. No regression.
2026-06-01 11:55:50 +01:00
fcostaoliveira
b64d014e2f Unroll the integer-part digit scan (straight-line for the common 1-5 digit case)
parse_number_string scans the integer part one byte at a time in a while loop,
while the fraction already uses the 8-digit SWAR loop. Most integer parts are
1-5 digits, so the loop back-edge dominates. Peel the first five iterations into
nested ifs, falling through to the original while for longer runs. Semantics are
identical (i = 10*i + digit, advancing p); no behavior change.

AWS m8g.metal-24xl (Graviton4), -O3 -march=native, simple_fastfloat_benchmark,
from_chars->double. base vs patch measured back-to-back, mean of 2 runs:
  canada: gcc +3.1%, clang +2.8%
  mesh:   gcc +5.4%, clang +5.1%
  random: ~flat (1-digit integer part)
No regression; gcc and clang agree.

Alternatives benchmarked and rejected: reusing loop_parse_if_eight_digits for the
integer part regressed 5-8% (integer parts are too short for 8-digit SWAR setup);
a counted for(k<5) loop matched on gcc but clang optimized it worse (canada -0.9%).
The explicit peel is the only form solidly positive on both compilers.
2026-06-01 09:55:08 +01:00
Daniel Lemire
7790aa6231 gh pages 2026-05-27 13:11:22 -04:00
Daniel Lemire
ee866c2b92 Merge branch 'main' of github.com:fastfloat/fast_float 2026-05-27 12:43:52 -04:00
Daniel Lemire
baffc57197 new site 2026-05-27 12:43:38 -04:00
Daniel Lemire
3644f5137c
Update README.md to remove and modify content
Removed references to Redis and Valkey, and updated the description of the fast_float library.
2026-05-27 12:13:56 -04:00
Daniel Lemire
05087a303d 8.2.5 v8.2.5 2026-04-16 14:39:03 -04:00
Daniel Lemire
b2b1e203ba removing msys 32-bit 2026-04-16 14:38:27 -04:00
Daniel Lemire
b57ec064ad
Merge pull request #379 from mlippautz/patch-1
Replace std::min with ternary operators to avoid <algorithm> dependency
2026-04-16 14:37:13 -04:00
Michael Lippautz
001c04cc8a Remove <algorithm> include and replace std::min with ternary operators
Replaces uses of std::min with ternary operators in ascii_number.h, digit_comparison.h, and float_common.h to remove the dependency on the <algorithm> header in those files.
2026-04-16 17:17:19 +00:00
Michael Lippautz
b063de82c7
Include <algorithm> in float_common.h
`fastfloat_strncasecmp` relies on `std::min`.
2026-04-16 09:51:58 +02:00
Daniel Lemire
d7ad33a80e
Merge pull request #377 from BYVoid/fix-bazel-bzlmod
Fix Bazel build with bzlmod
2026-03-27 09:37:23 -04:00
Carbo
2027a39ba0 Update MODULE.bazel version to 8.2.4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 14:42:55 +09:00
Carbo
9817d5ddaa Fix Bazel build with bzlmod by loading cc_library rule
With bzlmod, native rules like cc_library are no longer implicitly available
and must be explicitly loaded from rules_cc. Add the rules_cc dependency to
MODULE.bazel and the corresponding load statement to BUILD.bazel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 14:39:16 +09:00
Daniel Lemire
7124634005
Merge pull request #375 from fastfloat/dependabot/github_actions/github-actions-c571d227b7
Bump the github-actions group across 1 directory with 3 updates
2026-03-16 10:02:24 -04:00
dependabot[bot]
419695eba6
Bump the github-actions group across 1 directory with 3 updates
Bumps the github-actions group with 3 updates in the / directory: [actions/upload-artifact](https://github.com/actions/upload-artifact), [actions/setup-node](https://github.com/actions/setup-node) and [jidicula/clang-format-action](https://github.com/jidicula/clang-format-action).


Updates `actions/upload-artifact` from 6 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

Updates `actions/setup-node` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](6044e13b5d...53b83947a5)

Updates `jidicula/clang-format-action` from 4.16.0 to 4.17.0
- [Release notes](https://github.com/jidicula/clang-format-action/releases)
- [Commits](6cd220de46...3a18028048)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/setup-node
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: jidicula/clang-format-action
  dependency-version: 4.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 00:08:44 +00:00
Daniel Lemire
18e55e48a8 lint 2026-03-10 17:06:04 -04:00
Daniel Lemire
eb9ab42c0a 8.2.4 v8.2.4 2026-03-10 12:10:12 -04:00
Daniel Lemire
50c19fad17 init 2026-03-10 11:53:45 -04:00
Daniel Lemire
3f42ad2272
Merge pull request #374 from kolemannix/bench_inline
A few inlines
2026-03-10 11:52:28 -04:00
Daniel Lemire
00fb4f4b1e
Merge pull request #372 from kolemannix/ffc_h_port
Mention C under other languages
2026-03-09 16:27:51 -04:00
Koleman Nix
2606bcdf2f A few inlines 2026-03-07 15:36:09 -05:00
Koleman Nix
b83fdd79ce consistency 2026-03-07 14:23:07 -05:00
Koleman Nix
a18b614b0e Mention C under other languages 2026-03-07 14:20:13 -05:00
Daniel Lemire
8514abe2e2
Update README with note for C users
Added a note for C users to consider ffc.h for high-performance parsing.
2026-03-05 21:59:09 -05:00
Daniel Lemire
9f30728ce9
Merge pull request #368 from x1sc0/main
fix warning C4702: unreachable code
2026-02-23 17:27:16 -05:00
Xisco Fauli
3c6a64b87d fix warning C4702: unreachable code 2026-02-06 11:28:34 +01:00
Daniel Lemire
221a4920db Merge branch 'main' of github.com:fastfloat/fast_float 2026-02-04 12:13:47 -05:00
Daniel Lemire
a110aa1392 adding bug report template 2026-02-04 12:13:25 -05:00
Daniel Lemire
8d9f627710
Merge pull request #366 from 976520/main
Add more boundary test cases for double and float parsing
2026-02-04 10:55:44 -05:00
재욱
3e2b5d3dc3 refactor verification calls for double and float limits 2026-02-04 15:36:31 +09:00
재욱
f43d6711bc Add additional verification cases for double and float limits 2026-02-04 15:27:46 +09:00
Daniel Lemire
01ce95dfe4 v8.2.3 v8.2.3 2026-02-03 11:27:40 -05:00
Daniel Lemire
d5717d4a80
Merge pull request #365 from nyoma-diamond/fix-permissive-flag
Fix overzealous build-time  `/permissive-` propagating to compile-time (cross-compilation bug)
2026-02-03 11:26:49 -05:00
N'yoma Diamond
707fccb445
compile-time generator expression fixes overzealous /permissive- compiler option usage 2026-02-02 16:44:39 +00:00
Daniel Lemire
36a2b14eed
Merge pull request #361 from fastfloat/dependabot/github_actions/github-actions-c132dce648
Bump the github-actions group with 2 updates
2026-02-02 11:19:55 -05:00
dependabot[bot]
95295d1398
Bump the github-actions group with 2 updates
Bumps the github-actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [actions/setup-node](https://github.com/actions/setup-node).


Updates `actions/checkout` from 5.0.1 to 6.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5.0.1...v6.0.1)

Updates `actions/setup-node` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](395ad32622...6044e13b5d)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-02 00:10:32 +00:00
Daniel Lemire
c5256521ae
Merge pull request #363 from pitrou/patch-1
Clarify behavior for underflow
2026-01-28 13:53:54 -05:00
Antoine Pitrou
cb299bdecc
Clarify behavior for underflow
In https://github.com/fastfloat/fast_float/pull/189 the behavior on underflow was changed to better match the standard's recommendations, but the README does not mention underflow explicitly.
2026-01-28 10:55:48 +01:00
Daniel Lemire
2e4ed7d6fd
Merge pull request #362 from sleepingeight/surya/fix-opt-cmp
fix early return error in fastfloat_strncasecmp
2026-01-21 10:19:49 -05:00
sleepingieght
4fa83ccff4 fix early return error in fastfloat_strncasecmp 2026-01-21 19:21:06 +05:30
Daniel Lemire
71ab1cce81
Fix error message to display input instead of result 2026-01-19 20:36:29 -05:00