Skip to content

det: JSON GENERATE SUPPRESS ... WHEN / EVERY (Part of #7524) - #7905

Merged
squid-shepherd[bot] merged 3 commits into
mainfrom
churn/7524-20261106T1209Z
Nov 6, 2026
Merged

squid-shepherd[bot] merged 3 commits into
mainfrom
churn/7524-20261106T1209Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #7524. Checklist: partial [c:bb8e1760] -- CONVERTING, NAME OMITTED, DEPENDING ON, JSON-CODE after exception left

What

JSON GENERATE SUPPRESS item WHEN {ZERO|SPACE|LOW-VALUE|HIGH-VALUE} [OR ...] and SUPPRESS EVERY [NUMERIC|NONNUMERIC] WHEN ..., translated from IBM's Enterprise COBOL 6.3 definition. A group left with no member is dropped; the source group itself is always written ({"A":{}}). Oracle-unbacked: GnuCOBOL has no JSON statement, so register X76 stays ASSUMED with no L2+ claim.

Assumptions (in X76): ZERO on an alphanumeric item is a comparison with ZEROS (every char 0); SPACE/LOW-VALUE/HIGH-VALUE compare bytes (SPACE is the code page's blank); a number equal to zero is suppressed by ZERO, so invalid data in it is a runtime Hole (C11) and negative zero stays a Hole.

Refused by name (IBM's page is silent): an item inside an OCCURS table, a group named with WHEN, a usage the figurative does not select. JSON PARSE still refuses WHEN/EVERY.

Gates

  • pr_gates --fast: 9/9. pr_gates --ratchets: 9 pass. audit_check.py: all clear. det_port.py check: 270/270 unchanged.
  • test_det_json_generate.py + test_det_json_parse.py: 53 passed. No golden bless needed (det translator only).

Files

Seven files, over the usual five: cobolrt_rules.json (catalogue must list the two new runtime helpers or test_the_catalogue_matches_the_runtime fails) and test_det_source_4462.py (its JSON GENERATE hole case used SUPPRESS WHEN, now modelled; it uses WITH ENCODING instead).

Class / Sibling gaps

Still holes by name for JSON GENERATE: CONVERTING, NAME OMITTED, OCCURS DEPENDING ON, JSON-CODE value after an exception, elementary-item source. JSON PARSE: SUPPRESS WHEN, CONVERTING, JSON-CODE/STATUS. XML GENERATE/PARSE siblings. SUPPRESS WHEN inside tables is refused pending an IBM ruling. No burned program uses JSON, so none of these gate a proof.

Lessons for agents

  • A new runtime helper method in a cobolrt/*.java file needs a catalogue entry or a plumbing name in docs/language_status/cobolrt_rules.json, or test_cobolrt_rules fails.
  • Modelling a previously held statement shape breaks test_det_source_4462 hole cases that used it as the example.

Cross-repo

None.

🤖 Generated with Claude Code

SUPPRESS item WHEN {ZERO|SPACE|LOW-VALUE|HIGH-VALUE} [OR ...] and
SUPPRESS EVERY [NUMERIC|NONNUMERIC] WHEN ... are translated from IBM's
definition; a group left with no member goes too, the source group is
always written. Table items, a group target and a usage the figurative
does not select are refused by name. Oracle-unbacked (register X76).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd
squid-shepherd Bot marked this pull request as ready for review November 6, 2026 12:52
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd
squid-shepherd Bot enabled auto-merge (squash) November 6, 2026 12:55
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-shepherd
squid-shepherd Bot disabled auto-merge November 6, 2026 13:18
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

PR #7905 @ d6d641a: 1 failed check(s)

== ground-truth part 1/2 (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/42221033645/job/127909582625
repro: python -m pytest -q tests/cobol_mainframe/test_cobolrt_api.py::test_the_manifest_is_the_sources_surface
failing tests: tests/cobol_mainframe/test_cobolrt_api.py::test_the_manifest_is_the_sources_surface
errors:
fail-on-cache-miss: false
E AssertionError: assert ['member cobo... the surface'] == []
tests/cobol_mainframe/test_cobolrt_api.py:109: AssertionError
FAILED tests/cobol_mainframe/test_cobolrt_api.py::test_the_manifest_is_the_sources_surface - AssertionError: assert ['member cobo... the surface'] == []
##[error]Process completed with exit code 1.
log tail:
env:
GITGALAXY_LICENSE_KEY: COMMUNITY_FREE_TIER
GITGALAXY_MAINFRAME_CORPORA: /home/runner/work/gitgalaxy/gitgalaxy/.mainframe_corpora
MAINFRAME_ENGINE_KEY: c55f11630bc337360bce36736ae0df878726cd20d8d0b6ae1e25fe2d00b03de0
PYTHONUTF8: 1
pythonLocation: /opt/hostedtoolcache/Python/3.12.16/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.16/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.16/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.16/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.16/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.16/x64/lib
##[endgroup]
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: test-times-ground-truth-part-1.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 161702
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 423123dc37e0a693cabdf829f453da561a60e562ac652300b0f19dc1694e3109
Finalizing artifact upload
Artifact test-times-ground-truth-part-1 successfully finalized. Artifact ID 13505390589
Artifact test-times-ground-truth-part-1 has been successfully uploaded! Final size is 161702 bytes. Artifact ID is 13505390589
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/42221033645/artifacts/13505390589
Post job cleanup.
[command]/usr/bin/git version
git version 2.56.0
Temporarily overriding HOME='/home/runner/work/_temp/719e535d-8dc7-4f77-b063-b4f4a5a5e37d' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

@squid-shepherd squid-shepherd Bot added the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd squid-shepherd Bot added the shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd squid-shepherd Bot added shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md and removed shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md labels Nov 6, 2026
@squid-shepherd squid-shepherd Bot removed the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

CI shepherd: the head of this PR (3e1e43e) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then). Until then it is a draft and runs the cheap audits only; re-adding the label marks it ready, which starts the full set on that head.

@squid-shepherd
squid-shepherd Bot marked this pull request as draft November 6, 2026 15:30
@squid-shepherd squid-shepherd Bot added shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md and removed shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md labels Nov 6, 2026
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Nov 6, 2026
@squid-protocol squid-protocol removed the shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd
squid-shepherd Bot marked this pull request as ready for review November 6, 2026 15:35
@squid-shepherd squid-shepherd Bot added the shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd
squid-shepherd Bot enabled auto-merge (squash) November 6, 2026 15:41
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd squid-shepherd Bot removed the shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd
squid-shepherd Bot merged commit 224a553 into main Nov 6, 2026
104 of 141 checks passed
@squid-shepherd
squid-shepherd Bot deleted the churn/7524-20261106T1209Z branch November 6, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant