Repository navigation
Conversation
- unquoted-strings/026: `a = 1.2.3x`, the run 1.2.3 must be parsed as a number and is not one - unquoted-strings/027: an unquoted UUID, the same (lightbend/config#480) typesafe/config and pyhocon read both as strings (java: lenient). zig-hocon took text after the run as a way out and fails both: 469/471. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CbBo1aotFTDLY2gery7qYD
`checkNumber` let any word that starts with a digit fall back to text once something followed the run, so `1.2.3x`, `01x`, a UUID and `2.13.x` were strings. Text after the run now needs a number in front of it; a unit that starts with `e` or `E` lends the run its first letter, so `5EB` and `5exabytes` stay the number 5 and the unit (size-in-bytes-format/003–004). `1e5.x` is an error now as well: its run `1e5.` is no number. zig-hocon passes all 471 cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CbBo1aotFTDLY2gery7qYD
lejmr
force-pushed
the
conformance/upstream-pearls
branch
from
October 24, 2026 21:18
1fdb9b4 to
95c1622
Compare
lejmr
force-pushed
the
fix/number-run-then-letters
branch
from
October 24, 2026 21:18
967f183 to
1eceb1f
Compare
This branch has not been deployed
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.
Stacked on #29 (and #28 under it); retarget to
mainonce they are in.unquoted-strings.13: "The initial number character, plus any valid-in-JSON number characters that follow it, must be parsed as a number value." The suite reads this as an error for
a = 1.2.3(025) anda = 1e(022). zig-hocon followed it only when nothing came after the run:1.2.3xand an unquoted UUID were strings, as in typesafe/config and pyhocon (lightbend/config#480).a = 1.2.3x"1.2.3x""1.2.3x"id = 92806961-7548-48f0-943c-8fb861bb642fThe catch is units: read strictly,
5EBand5exabyteswould be errors too (their run is5E), andsize-in-bytes-format/003–004need them to be the number 5 and the unit. So the rule insrc/utils/number.zigis: text may follow the run only when the run is a number, or a number plus onee/Ethat starts the unit. Consequences worth a look:1.2.3x,01x,2024-01-01T10, a UUID,scala = 2.13.x, and1e5.x, which had an.okrow insrc/Ast.zig(its run1e5.is no number; the row is now.bad, with the reason)10.0bar,10ms,5EB,5exabytes,-1.5Ei,1e+5x1exstays a string: it is the same shape as5exabytepython/MIGRATING.mdextends the IP-address note to UUIDs and versions, with a row in the table. Caret test insrc/root.zig. zig-hocon passes all 471.🤖 Generated with Claude Code
https://claude.ai/code/session_01CbBo1aotFTDLY2gery7qYD