Skip to content

det: EXEC DLI SCHD PSB / TERM under CICS, DIBSTAT supplied (Part of #5278) - #5383

Merged
squid-protocol merged 6 commits into
mainfrom
churn/5278-20261017T1657Z
Oct 17, 2026
Merged

squid-protocol merged 6 commits into
mainfrom
churn/5278-20261017T1657Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #5278 (slice 1: SCHD / TERM / DIBSTAT, as the brief's split says).

What

  • det/dli.py + gen.py + program.py: under CICS, EXEC DLI SCHD PSB(name | 'lit' | (area)) [NODHABEND] and EXEC DLI TERM translate to DetDli.schedule / terminate; the answer is moved to DIBSTAT (the program gets a minimal DIB item, FILLER + DIBSTAT).
  • DetDli.java: schedule (blank; TC if already scheduled with NODHABEND; refuses without it) and terminate (refuses with nothing scheduled). buildPcbs() extracted from enter().
  • Every other EXEC DLI verb (GU, GN, REPL, ISRT, DLET ...), SCHD/TERM forms with other options, a non-DISPLAY PSB area, and EXEC DLI outside CICS stay holes by name (I5). Register I5.md updated.
  • On real COPAUA0C the SCHD / TERM / DIBSTAT holes are gone; GU, REPL, ISRT x2, INITIALIZE REPLACING (C17) and 3x KEYLENGTH remain.

Class table

class mechanism here
EXEC DLI program-control (SCHD, TERM) det translator + DetDli done
EXEC DLI segment commands translator + DetDli + harness remaining

6 hand-written files (exception: the Java runtime twin, the translator trio, the test and the register page are one mechanism).

Evidence level

Translated only (no harness case: the oracle has no EXEC DLI). Unit translation tests, a JDK-compiled runtime test of schedule/terminate/TC. The PSB name is not checked against psb.cfg (it carries no PSB name); the loaded/scheduled flags are per JVM.

Gates

pr_gates --fast 6/6; --ratchets ports, port-surface, estate, fact-crosscheck, completeness, ground-truth, time pass; ruff/mypy audits no new findings. Golden masters not touched (no parsing change). Note: local ruff 0.16.0 vs CI 0.16.10.

Remaining slices

Oracle side (ggdli.c / equivalence_cics: EXEC DLI, DIB, PCB-by-number); segment commands GU/REPL/ISRT with SEGMENT/WHERE/FROM/SEGLENGTH; C17 INITIALIZE REPLACING; KEYLENGTH holes; COPAUA0C equivalence case (DB + MQ scenarios); register/ledger/det-sweep pins.

Sibling gaps

MQINQ/MQSET (no burned program uses them; frontier #4892); batch MQ (frontier); COPAUS0C / COPAUS1C / CBPAUP0C (same EXEC DLI mechanism, burned CardDemo); DBUNLDGS (GSAM PCBs, different mechanism).

Lessons for agents

  • A test COBOL line over column 72 is silently truncated and surfaces as "PROCEDURE DIVISION does not parse", not a hole.
  • X-Ray flags a dense regex literal in a .py file; build it from parts.

Cross-repo

None.

🤖 Generated with Claude Code

squid-protocol and others added 2 commits October 17, 2026 18:18
…ed (Part of #5278)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol marked this pull request as ready for review October 17, 2026 22:29
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 17, 2026 22:33
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5383 @ 420b9c5: 1 failed check(s)

== Small audits (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39075093580/job/117520479835
repro: no local equivalent; read the check page
errors:
##[error]Process completed with exit code 1.
log tail:
{
echo "## ⚠️ This PR modifies a golden-crucible fixture"
echo ""
echo "Files changed ($(echo "$CHANGED" | wc -l) golden-master part(s)):"
echo '' echo "$CHANGED" | head -n 100 echo ''
echo ""
echo "These files should only ever change via `tests/tools/update_golden_master.py`,"
echo "and the PR description should explain why GitGalaxy's output was expected to"
echo "change. Reviewers: confirm the description covers this before approving."
echo "For the semantic diff: `python tests/tools/bless_scope.py --from-head tests/golden_master_audit`."
} >> "$GITHUB_STEP_SUMMARY"
shell: /usr/bin/bash -e {0}
env:
pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
BASE_REF: main
##[endgroup]
No golden master fixture changes in this PR.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/c7ca44c7-e174-4d41-b6dd-601d2444be5f' 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
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-protocol squid-protocol added the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 17, 2026

def command(gen: Any, text: str, ind: str) -> list[str]:
"""One EXEC DLI command of a CICS program: SCHD PSB(...) [NODHABEND] and TERM, DIBSTAT answered."""
from gitgalaxy.tools.cobol_to_java.det.gen import Untranslatable, jstr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol squid-protocol removed the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5383 @ 1f338b8: 1 failed check(s)

== ground-truth part 1/2 (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39076125319/job/117525431199
repro: python -m pytest -q tests/cobol_mainframe/test_cobolrt_rules.py::test_the_catalogue_matches_the_runtime tests/cobol_mainframe/test_java_subprocess_utf8.py::test_no_java_subprocess_in_tests_decodes_with_locale_charset
failing tests: tests/cobol_mainframe/test_cobolrt_rules.py::test_the_catalogue_matches_the_runtime tests/cobol_mainframe/test_java_subprocess_utf8.py::test_no_java_subprocess_in_tests_decodes_with_locale_charset
errors:
fail-on-cache-miss: false
E AssertionError: assert ['dli/DetDli....alogue entry'] == []
tests/cobol_mainframe/test_cobolrt_rules.py:88: AssertionError
E AssertionError: tests/cobol_mainframe/test_det_dli.py:451: java missing -Dfile.encoding=UTF-8
tests/cobol_mainframe/test_java_subprocess_utf8.py:197: AssertionError
FAILED tests/cobol_mainframe/test_cobolrt_rules.py::test_the_catalogue_matches_the_runtime - AssertionError: assert ['dli/DetDli....alogue entry'] == []
FAILED tests/cobol_mainframe/test_java_subprocess_utf8.py::test_no_java_subprocess_in_tests_decodes_with_locale_charset - AssertionError: tests/cobol_mainframe/test_det_dli.py:451: java missing -Dfile.encoding=UTF-8
##[error]Process completed with exit code 1.
log tail:
archive: true
env:
GITGALAXY_LICENSE_KEY: COMMUNITY_FREE_TIER
GITGALAXY_MAINFRAME_CORPORA: /home/runner/work/gitgalaxy/gitgalaxy/.mainframe_corpora
PYTHONUTF8: 1
pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/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 83615
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 6ee5a3c383d847bc688b3282c2b8c940be7c2c247839e94889fead2fc349b21c
Finalizing artifact upload
Artifact test-times-ground-truth-part-1 successfully finalized. Artifact ID 12117308773
Artifact test-times-ground-truth-part-1 has been successfully uploaded! Final size is 83615 bytes. Artifact ID is 12117308773
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39076125319/artifacts/12117308773
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/762f39a7-41f3-45f3-baac-40992451cf51' 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-protocol squid-protocol added the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 17, 2026
@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol squid-protocol removed the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol merged commit 22b7d6f into main Oct 17, 2026
49 checks passed
@squid-protocol
squid-protocol deleted the churn/5278-20261017T1657Z branch October 17, 2026 23:37
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.

2 participants