Skip to content

fix(ci): make the JSON gate strict, and make the one file it refuses legal - #3395

Open
gHashTag wants to merge 2 commits into
masterfrom
json-strict-and-inf
Open

fix(ci): make the JSON gate strict, and make the one file it refuses legal#3395
gHashTag wants to merge 2 commits into
masterfrom
json-strict-and-inf

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Refs #3337 — the fifth finding, left open by #3389.

(The first version of this body said "Closes the fifth finding of #3337", which the tightened check-linked-issue refused on its first live use: the pattern wants the keyword immediately before the number. The gate was right, and it caught its author.)

validate accepted bare Infinity. CPython documents it as "an extension to the JSON specification"; RFC 8259 has no such literal. The independent check is another language — node -e JSON.parse(...) refused the file this gate passed.

Exactly one tracked file carried it in value position. (My first count said 20; 19 of those have the word inside strings and always parsed.)

The encoding was not chosen — it was read off the corpus

evidence
conformance files writing these values as JSON strings 23
files using the bare literal 1
"inf" vs "Infinity" across the vectors 37 vs 2
tools/wp18_selftest_gate.py own fixtures "input_f64": "inf", "decoded_f64": "nan"

Nothing is lost. Every affected row already carried the same value as ..._hex0x7FF0000000000000 is +infinity in IEEE754 — so the authoritative bits were already in the file in a legal form, and the bare literal was a redundant convenience field.

Verified end to end

  • the file now parses strictly under CPython and under node
  • its sha256 is pinned in INDEX_all_formats.json and README.md; both updated, and the old hash appears nowhere afterwards — checked
  • tools/wp18_selftest_gate.py exits 0 with the same 30 PASS before and after
  • check_json_parses.py: 2078 tracked files, none unparseable, self-check passes

This is deliberately not on auto-merge

It re-stamps a hash on a conformance artifact — and gf16 is the one format the repository notes as having an FPGA oracle behind it. The encoding question was settled by evidence and I acted on it. Whether a measurement record may be re-stamped is a different question, and it is yours.

If you would rather not re-stamp: the alternative is to leave the file alone and revert the parse_constant hunk in tools/check_json_parses.py, which returns the gate to accepting a literal that JSON.parse refuses. The defect is then recorded rather than fixed, which is where #3389 left it.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-07 13:57:32 UTC

Summary

Status Count
Total Open PRs 16
PRs with Failing Checks 15
PRs with All Checks Green 1
READY 1
FAILING 15
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=745cf51f9c7e != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-07 14:05:59 UTC

Summary

Status Count
Total Open PRs 15
PRs with Failing Checks 13
PRs with All Checks Green 2
READY 1
FAILING 13
PENDING 0
NO CHECKS YET 0

These columns do not partition: 1 + 13 + 0 + 0 = 14, and there are 15 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=745cf51f9c7e != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

This was referenced Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant