Daniel Lemire
48fc5404d4
compatibility fix
2025-09-18 07:44:05 -06:00
IRainman
10970dbbae
# cleanup
2025-09-17 00:52:26 +03:00
IRainman
e3aa99448a
# fix for stackvec constructor.
2025-09-16 21:45:58 +03:00
IRainman
af1f8e3ac2
Merge branch 'main' of https://github.com/fastfloat/fast_float
2025-09-16 00:58:58 +03:00
InvalidUsernameException
9d81c71aef
Do not mis-parse certain wide-character emojis as integer
...
When calling ch_to_digit() with a UTF-16 or UTF-32 code unit, it simply
truncates away any data stored in the non-low byte(s) of the code unit.
It then uses a lookup table to determine whether the low byte
corresponds to an ASCII digit. This is incorrect because as soon as any
bit outside the low byte is set, the number will never correspond to a
ASCII digit anymore.
To fix this, we produce a mask that is all zeroes if any bit outside the
low byte is set in the code unit, all ones otherwise. Anding this mask
with the original code unit forces the table lookup to return the
sentinel value from the zero-index if any high bit was set and causes
the code unit not to be parsed as integer.
This bug was discovered when loading Mastodon posts inside the Ladybird
browser where some of Mastodon's JavaScript would trigger the code path
that erroneously parsed the emoji as integer. It had the visible effect
that some digits inside the posts would get rendered as one of the
emojis that parsed to that digit. For more details see this issue:
https://github.com/LadybirdBrowser/ladybird/issues/6205
The emojis in the test case are simply all the emojis used on Mastodon
that caused the bug. They can be found here:
06803422da/app/javascript/mastodon/features/emoji/emoji_map.json
2025-09-15 23:12:28 +02:00
WenLei
6677924083
float_common.h: Support RISC-V
2025-09-11 11:11:30 +08:00
Pavel Novikov
0a230326ab
now finally got the anti-ambiguity overloads right, right?
2025-09-06 02:22:43 +03:00
Pavel Novikov
7ae62ee0d5
finally got the anti-ambiguity overloads right?
2025-09-06 02:10:55 +03:00
Pavel Novikov
e12463583f
added lacking overloads to avoid potential ambiguity
2025-09-06 00:12:41 +03:00
Pavel Novikov
20a7383442
renamed the function, cleaned up return type
2025-09-05 13:36:23 +03:00
Daniel Lemire
42db9ac1de
Merge branch 'main' into P2497R0
2025-09-03 12:04:36 -04:00
Pavel Novikov
6be07d66a8
inlining Clinger's fast path because why not,
...
and it seems to bring performance to the level before the changes somewhat
2025-09-03 16:59:40 +03:00
Daniel Lemire
c0582c27f5
typos in the comments
2025-09-02 17:29:12 -04:00
Pavel Novikov
a134561e4b
added missing inline specifiers
2025-09-02 23:03:38 +03:00
Pavel Novikov
7b8f04500a
implemented multiplication of integer by power of 10
2025-09-02 13:20:36 +03:00
Daniel Lemire
81b8306c5f
implementation of https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2497r0.html
2025-05-19 18:08:36 -04:00
IRainman
5ae2fba79d
cleanup for parse_number_string
2025-05-10 19:59:22 +03:00
IRainman
437a80ccfd
fix for type usage in parse_int_string
2025-05-08 18:19:45 +03:00
IRainman
978441a5bb
additional FASTFLOAT_HAS_BIT_CAST improve for older standards.
2025-05-07 23:19:18 +03:00
IRainman
a550415314
additional fix for bfloat16_t. Sorry, I can't compile it's locally.
2025-05-07 22:55:48 +03:00
IRainman
7bac32408e
fix for the parse_number_string
2025-05-07 22:14:55 +03:00
IRainman
f14d482767
fix for the parse_number_string
2025-05-07 21:59:53 +03:00
IRainman
88fff01513
fix for the parse_number_string
2025-05-07 21:51:43 +03:00
IRainman
3ee80c2da3
fix for the parse_number_string
2025-05-07 21:43:26 +03:00
IRainman
6b22957188
fix for the parse_number_string
2025-05-07 20:18:57 +03:00
IRainman
f7d5037a4f
fix for the parse_number_string
...
small improvements for the FASTFLOAT_ONLY_POSITIVE_C_NUMBER_WO_INF_NAN
2025-05-07 19:31:56 +03:00
IRainman
23a9c3f54d
review of the parse_number_string function: now it's much faster, safer and easy to understand.
2025-05-07 18:02:44 +03:00
IRainman
4b94a612cf
type usage fix
2025-05-07 00:44:20 +03:00
IRainman
2f8ff9a6eb
compilation fix
2025-05-06 23:40:29 +03:00
IRainman
568dfef204
compilation fix
2025-05-06 23:21:59 +03:00
IRainman
036ba0d153
compilation fix
2025-05-06 23:03:56 +03:00
IRainman
1ec5f0880c
compilation fix
2025-05-06 22:53:10 +03:00
IRainman
6f789de5d2
compilation fix.
2025-05-06 22:32:11 +03:00
IRainman
e446899538
compilation fix.
2025-05-06 22:19:50 +03:00
IRainman
a3ccc1f7b1
compilation fix
2025-05-06 22:05:06 +03:00
IRainman
a4c573e8ab
compilation fix
2025-05-06 21:54:40 +03:00
IRainman
3f9e488979
format, fuck.
2025-05-06 21:09:33 +03:00
IRainman
e5f189754f
compilation fixes.
2025-05-06 21:05:05 +03:00
IRainman
99d769db5b
clang-format
2025-05-06 18:15:43 +03:00
IRainman
d5c05e51af
additional type usage fixes and constexpr.
2025-05-06 17:44:31 +03:00
IRainman
afbb803aa4
compilation fixes for std::bfloat16_t and std::float16_t. Sorry for this, my compilers don't supports it.
...
additional type usage fixes and constexpr.
2025-05-06 16:53:30 +03:00
IRainman
a8c5bd9a38
warning fix.
2025-05-05 20:24:16 +03:00
IRainman
1febc3a070
Fix compilation for older standards
2025-05-05 20:19:46 +03:00
IRainman
0ba4e20bc4
lint
2025-05-05 19:49:53 +03:00
IRainman
5356317356
Fix compilation for older standards
2025-05-05 19:44:30 +03:00
IRainman
103f22056b
Final functions call optimization.
2025-05-05 19:07:55 +03:00
IRainman
8721491941
Finally: after type refactoring is done give compiler opportunity to select best type for performance.
2025-05-05 18:42:32 +03:00
IRainman
c99930b2a0
added additional macro FASTFLOAT_ONLY_ROUNDS_TO_NEAREST_SUPPORTED for performance improve.
2025-04-30 00:56:02 +03:00
IRainman
17ffdffdd9
* additional types cleanup for speedup and reduce cache pressure.
2025-04-12 19:16:25 +03:00
IRainman
0a18d6b329
# format.
2025-04-12 17:17:04 +03:00
IRainman
ba1344c030
* carefully work with types in the library.
...
* fix for some types errors.
* fix small amount of not optimized code.
* add more comments to the code.
* unified of function binary_format::max_mantissa_fast_path() because it's do the same.
2025-04-12 17:06:38 +03:00
IRainman
69fbbff062
try additional part...
2025-04-12 00:47:18 +03:00
IRainman
b0bae17b10
* added chars_format_t for performance reason.
2025-04-11 23:49:27 +03:00
IRainman
f3db77a07c
try reordering again.
2025-04-11 23:21:26 +03:00
IRainman
1aed8ee6dd
try reordering again.
2025-04-11 23:10:26 +03:00
IRainman
0daee75dec
# format
2025-04-11 22:56:15 +03:00
IRainman
563648f76d
* fix errors in the parse_number_string.
2025-04-11 22:52:18 +03:00
IRainman
e71bfff4a3
additional improve for debug runtime.
2025-04-11 18:05:08 +03:00
IRainman
f8625b6416
fix warnings.
2025-04-10 18:45:05 +03:00
IRainman
8e1fda5d08
fixes and cleanup for the parse_number_string function.
...
exponent value is always less than in16_t.
original main:
Tests:
time is: 44278ms.
size of my tests 389.0k
size of my program 164.0k
my main:
Tests:
time is: 42015ms.
size of my tests 389.0k
size of my program 164.0k
my main with FASTFLOAT_ONLY_POSITIVE_C_NUMBER_WO_INF_NAN
Tests:
time is: 41282ms.
size of my tests 386.5k
size of my program 161.5k
After this I'll try it on my partner Linux machine with the original tests and compare much better.
2025-04-10 17:18:08 +03:00
IRainman
bbf4193339
cleanup code generation for parse_mantissa.
2025-04-09 21:44:30 +03:00
IRainman
c762936589
template interface cleanup for min_safe_u64 and max_digits_u64.
2025-04-09 15:55:54 +03:00
IRainman
d32ae04b1b
reduce size of from_chars_result_t to 4 bytes. Cleanup for usage FASTFLOAT_ONLY_POSITIVE_C_NUMBER_WO_INF_NAN.
2025-04-09 15:41:29 +03:00
IRainman
a081ebe6ce
reduce size of from_chars_result_t to 4 bytes. Cleanup for usage FASTFLOAT_ONLY_POSITIVE_C_NUMBER_WO_INF_NAN.
2025-04-09 15:27:55 +03:00
IRainman
f1b7f493aa
after all sized checks is done I return the minimum registers size possible for the counter. Because the library only support 32 and 64 bit platform we only need 32 bit as a small counter.
2025-04-08 18:43:12 +03:00
IRainman
97bfec6ea3
style fix.
2025-04-08 15:01:25 +03:00
IRainman
27f02654fe
style cleanup.
2025-04-08 04:06:30 +03:00
IRainman
5c610807de
improvements of memory layout of parsed_number_string_t.
...
fix for FORTRAN parsing (needs to be merge to main)
improvement in the debug build.
code cleanup.
2025-04-08 04:04:26 +03:00
IRainman
b121f53316
reduce register pressure.
2025-04-08 03:55:12 +03:00
IRainman
a133b72fa8
FASTFLOAT_ASSUME
2025-04-08 03:24:11 +03:00
IRainman
b261492ae7
reduce register pressure.
2025-04-08 01:22:14 +03:00
IRainman
4f0615b4b4
Reduce register pressure and cleanup interface for standard.
2025-04-07 23:21:29 +03:00
IRainman
1651c2b0f8
Readded FASTFLOAT_CONSTEVAL, but not used currently. Cleanup for FASTFLOAT_ASSUME.
2025-04-07 23:10:38 +03:00
IRainman
ee620a029d
reduce registers pressure.
2025-03-28 20:29:25 +03:00
IRainman
6aea2fb2e5
initialization cleanup.
2025-03-28 20:27:39 +03:00
IRainman
afb54a595e
Disable FASTFLOAT_ASSUME by default.
2025-03-28 20:15:19 +03:00
IRainman
91e6c4d440
.
2025-03-28 19:39:10 +03:00
IRainman
ed871096ad
Remove FASTFLOAT_CONSTEVAL20 that I was added before and cleanup diff.
2025-03-28 18:57:37 +03:00
IRainman
fc9f61efc9
Cleanup initialization of the adjusted_mantissa.
2025-03-28 18:55:57 +03:00
IRainman
8ebc89e1b5
Reduce registers pressure.
2025-03-28 18:31:01 +03:00
IRainman
1e3a135b8d
reduce register pressure.
2025-03-24 11:45:33 +03:00
IRainman
c598a994e6
fix a warning.
2025-03-24 11:15:24 +03:00
IRainman
0188112c8f
compilation fix in some old compilers.
2025-03-13 00:37:46 +03:00
IRainman
929e98182e
lint
2025-03-12 21:13:20 +03:00
IRainman
2db26df2b8
Remove consexpr/consteval from code that probably assumed to run in the runtime and not be optimized (strange crutch actually).
2025-03-12 20:35:28 +03:00
IRainman
27c0cd581c
lint
2025-03-12 20:23:05 +03:00
IRainman
f3c60527d5
more constexpr.
2025-03-12 20:15:29 +03:00
IRainman
3dd3712782
lint
2025-03-12 20:11:11 +03:00
IRainman
07ab87ca2b
compilation fix in some cases.
2025-03-12 20:05:34 +03:00
IRainman
b869816c39
Merge branch 'main' of https://github.com/IRainman/fast_float into fastfloat-main
2025-03-12 19:04:01 +03:00
IRainman
e84f289337
FASTFLOAT_IF_CONSTEXPR17
...
fix compilation when FASTFLOAT_ONLY_POSITIVE_C_NUMBER_WO_INF_NAN isn't enabled.
2025-03-12 18:45:48 +03:00
IRainman
1899647146
GCC compilation fix.
2025-03-12 17:56:01 +03:00
IRainman
3dd9a98926
more const
2025-03-12 17:44:08 +03:00
HedgehogInTheCPP
cfd0963705
Merge branch 'main' into main
2025-03-12 17:16:03 +03:00
IRainman
681346fde1
Merge branch 'main' of https://github.com/fastfloat/fast_float into fastfloat-main
2025-03-12 17:00:35 +03:00
Daniel Lemire
50a80a73ab
v8.0.2
2025-03-11 09:51:53 -04:00
Daniel Lemire
1bf7010153
v8.0.1
2025-03-10 09:04:05 -04:00
Daniel Lemire
c6732cd28b
lint
2025-03-10 09:02:38 -04:00
IRainman
6c499fda5c
FASTFLOAT_ASSUME review.
2025-03-10 05:34:45 +03:00
Daniel Lemire
b29208f93d
adding FASTFLOAT_IF_CONSTEXPR17
2025-03-09 17:10:55 -04:00