Summary:
X-link: https://github.com/facebookincubator/zstrong/pull/1228
ubuntu 24.04 fast float is too old and causes folly build to fail, so exclude it from system packages and build from source.
ubuntu 25.04 plucky is due to get an updated version so not removing the deb mapping entirely: https://launchpad.net/ubuntu/plucky/+source/fast-float
Reviewed By: bigfootjon
Differential Revision: D71213548
fbshipit-source-id: b1fd7c28360a476c766da1099e56fd2aa5df3d55
Summary:
X-link: https://github.com/facebookincubator/zstrong/pull/1216
`str_to_floating_fast_float_from_chars` can be simplified using the new upstream option `allow_leading_plus`. It does mean that we also support parsing `+nan` and `+infinity` which we previously didn't.
Mapping to `Inf` is also handled by the parsing logic, so this custom branch can be removed.
Reviewed By: Gownta
Differential Revision: D70392258
fbshipit-source-id: 62972a6cadd1547d8ff0a3162510ae5e979d459f
Summary:
This benchmarks various functions that convert decimal values in string representation to IEEE-754 double representation.
These benchmarks `std::strtof`, `std::strtof` with a copy (needed for non-c-strings), `std::strtofl` with the C locale (for locale-indepent processing), `std::from_chars`, libdouble-conversion, and libfast_float.
The functions are benchmarked on different inputs. There is input that is hardcoded values in decimal and exponentional notation. There is randomly generated values in the double space range. There is also inputs for single and double digit ints. As well as percentages.
Note that `std::from_chars`, which on platform010/libstdc++ v11 uses `strtof` + `uselocale` [0]. libstdc++ v12 uses fast float[2].
0: 932fbc868a
1: 490e23032b (diff-d3c32d9c9c566f7f3888d150c6448428ea194170146a1a166917ba45b1252187)
Reviewed By: yfeldblum, Orvid
Differential Revision: D61356955
fbshipit-source-id: 6ec21b602b08505d946551dda49a35402bee7dae