Repository navigation
cobolrt rule catalogue: an ID, IBM reference, options, register and calibration per runtime rule (Part of #4711) - #5086
Merged
Conversation
…ent-insensitive runtime compare Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s new refusal classified Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Owner
Author
|
Owner decision (2026-10-14): the edit to 🤖 Generated with Claude Code |
Owner
Author
|
No description provided. |
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.
Part of #4711 (epic #4710, step 1).
What
docs/language_status/cobolrt_rules.json. It has one entry per semantic rule ofdet/cobolrt: 143 rules in 12 families, covering all 28 runtime files. Each rule has:RT-<FAMILY>-<NAME>;ibm: nullwith a note, which is only allowed on a rule that is not MATCHED;uncalibrated, because nothing is z/OS-measured yet (oracle policy: IBM is the reference, GnuCOBOL the instrument — audit register entries + z/OS calibration oracle #4702).// [rule ID]on the line above its declaration. This is a comment only.tests/tools/cobolrt_rules.py --check, run bytests/cobol_mainframe/test_cobolrt_rules.py. It fails when:plumbinglist. A new runtime method can't land unclassified: this caught det: UNSTRING numeric operands and bad sign byte MOVE-to-X refused by name; NATIONAL already refused (Part of #5032) #5073'srefuseUndefinedSignduring this PR;docs/language_status/cobolrt_rules.mdis rendered from the catalogue. It is git-ignored and published togeneratedbygenerated-docs.yml, the same pattern as ci/docs: stop committing generated aggregate docs in PRs (oracle_assumptions.md et al.): render post-merge to the generated branch #5057. Each register entry's status is shown live from the register, not copied.det_port.py check: a carriedcobolrt/*.javafile is now compared asjava_code, i.e. without comments, with whitespace outside literals collapsed. A string-, char- and text-block-aware lexer does this. Before this change, a comment inCobol.javaflagged every port that namesCobolas changed. The port's own code andgenerated/are still compared byte for byte.Families
Totals: 80 MATCHED, 22 DIFFERS, 10 REFUSED, 31 ASSUMED.
No behaviour change (evidence)
det_port.py checkagainst origin/main: 105/105 ports unchanged. With the old byte-for-byte runtime compare, the same output would have flagged 105/105 ports: every port namesCobol, and every runtime file now carries a marker.cobolrtat origin/main and at HEAD withjavac -g:none(__PACKAGE__replaced). The 47 classes are byte-identical.batch/andcics/were left out because they need the generated project'sCobolFiles/CicsTask.java_code-identical to origin/main, i.e. the code with comments removed.pr_gates --fast: 6/6 pass;pr_gates --ratchets: 7/7 pass, 0 skipped;audit_check.py: all clear;test_generated_docs.py: 63 pass, run with plainpytestfrom/tmp.det_port.pyis a det-sweep input, so this PR's det-sweep runs in full once. Evidence records that use a runtime class go stale ongenerator, which is advisory and not inBLOCKING; the nightly evidence refresh picks them up. The evidence fingerprints were left alone on purpose, because changing them would re-stale every record.Cross-repo
None.
🤖 Generated with Claude Code