cleanup: sync with FRESCO and refresh -O3 benchmarks#12
Merged
Conversation
Sync src/fast_float_module.F90 with the FRESCO upstream (src/core/io/fast_float_module.F90), byte-for-byte: - Add iso_fortran_env standard-kind re-exports. - PRESET_FORTRAN now also enables FMT_ALLOW_PLUS, matching the default Fortran free-format read which accepts a leading '+' sign. - Integer parsing (parse_i64/parse_i32) accepts a parse_options argument: with FMT_SKIP_WS leading whitespace is skipped, with FMT_ALLOW_PLUS a leading '+' is accepted. Add a focused test for the new integer-opts path via PRESET_FORTRAN. Re-run benchmarks on the latest revision with -O3 only (no -flto), replace the result tables in README.md and doc/mainpage.md sorted by descending Mfloat/s, label fastfloat as "fastfloat (C++)" for clarity alongside the C entries, and normalize the touched files to LF line endings.
perazz
force-pushed
the
cleanup/fresco-sync-and-benches
branch
from
May 27, 2026 07:39
1256064 to
2a90e89
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
src/fast_float_module.F90with the FRESCO upstreamfast_float_module.F90. Adds theiso_fortran_envstandard-kind re-exports, updatesPRESET_FORTRANto also enableFMT_ALLOW_PLUS(so it matches the default Fortran free-format read, which accepts a leading+), and addsFMT_SKIP_WS/FMT_ALLOW_PLUSsupport toparse_i64/parse_i32.pure/stdx without/withopts) instead of FRESCO's singleoptional :: odummy. This is functionally equivalent for callers but works around a gfortran-15.x miscompile that returnspresent(o) == .true.inside a non-elemental wrapper when the caller did not supplyo, leading to a bad dereference.-O3only (no-flto). Replace the result tables inREADME.mdanddoc/mainpage.md, sorted by descending Mfloat/s, and normalize the touched files to LF line endings.Test plan
fpm test check --profile release— 23/23 pass (includes a new integer-opts test exercisingFMT_SKIP_WS+FMT_ALLOW_PLUSviaPRESET_FORTRAN)../run_benchmarks.sh 10— completes end-to-end, numbers used to populate the docs.