Repository navigation
build: move Glaze to 9.0.0 - #33
Merged
Merged
Conversation
Glaze 9 parses every fixture to the same output with the same allocations and 0.5 to 7% fewer instructions. It also rejects a body that is only a number with an empty exponent, such as `1e`, which 8.3 parsed to an empty result. Tests now cover malformed numbers at the end of the input and inside a document, on both the parser and client read paths.
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.
Moves the private Glaze dependency from 8.3.0 to 9.0.0, the current release.
spc-cpp's use of Glaze doesn't change in 9.0. It still uses
glz::generic,glz::readwithnull_terminated,format_error, and the bundledfast_float, which is byte-identical between the two versions. CMake's minimum stays 3.31.Behavior
1e,1e+,1E-) used to parse to an empty result. Now it is a parse error. The new tests fail on 8.3 and pass on 9.0:Corpus.RejectsMalformedNumberschecks malformed numbers both as the whole body and inside a feature.ClientParity.AMalformedBodyFailsWithTheParsersMessageadds1e, which covers the clients'std::stringread path.Benchmarks
Medians of 10 interleaved repetitions each, on macOS arm64:
BM_ParseTree/iem_storm_reports.jsonwent from 16.74M to 15.55M.compare.pyputs the overall time geomean at +0.4%, which is noise. TheBM_ParseDoublecontrols run unchanged code and still moved +6 to 9% between the two runs. The storm-reports parse is significantly faster (p = 0.014).parse_owned_rootis still 4 to 7% cheaper thanparse_rooton 9.0, so its comment still holds.Checks run locally
-Werror):make test,lint,lint-md,fixtures-check,test-consumers.-Werror: all 132 tests pass.tools/verify_arcgis_metadata.py(39/39 layers).Apple Clang 17 (Xcode 16.4) and Clang 19 with libstdc++ can only be checked here in CI.