Repository navigation
det + forge: CICS programs nothing starts are CICS; SET pointer TO NULL -- whole 96 -> 98 (Part of #4270) - #4738
Merged
Merged
Conversation
… pointer TO NULL (Part of #4270) - is_cics_program also takes a LINKAGE DFHCOMMAREA (the COMMAREA name the CICS translator uses) or an EXEC CICS handler / ABEND the engine extracted: CBSA's ACCTCTRL (LINKed from outside the estate) and cics-java-recgen's EDUPGM (LINKed from Java) got a plain service, so every EXEC CICS was a hole and EIBCALEN `no such item`. Over all 176 surveyed COBOL skeletons only these two flip (plus one PL/I program with EXEC CICS, dsf R001SP01). - SET pointer TO NULL: binary zeros over the pointer's bytes (C9; GnuCOBOL's NULL is a zero void *, IBM's a fullword of zeros). Every other use of NULL stays refused by name. A POINTER now has a Field over its bytes, so SET p TO q (CBSA DELCUS) -- translated before onto Fields never declared -- compiles. Translated whole 96 -> 98 / 179 (non-burned 10 -> 11); CREACC is left with LINK SYNCONRETURN only. det_port check: 79/79 ports unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D
Contributor
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 #4270.
Two non-CICS-command gaps from the blockers census (
cics_census.py blockers --all-programs, baseline 63c1a6a = main after #4729), picked by programs made whole.1. A CICS program nothing in the estate starts or LINKs to was generated as a plain service
is_cics_program(transaction forge) only saw a CICS program through an entry transaction, an EXEC CICS resource, a COMMAREA contract, a container or an incoming LINK / XCTL. CBSA's ACCTCTRL (LINKed from outside the estate) and cics-java-recgen's EDUPGM (LINKed from Java) had none, so their service had norunTask(CicsTask), everyEXEC CICSwas a hole (EXEC CICS (no reason given)) andEIBCALENwasno such item. A program that declares01 DFHCOMMAREAin its LINKAGE SECTION (the COMMAREA name the CICS translator uses), or whose EXEC CICS ABEND / HANDLE / SYNCPOINT the engine extracted (uow_handlerssource CICS), is now a CICS program. Over all 176 surveyed COBOL skeletons exactly these two flip (plus one PL/I program that does issue EXEC CICS, dsf R001SP01).2.
SET pointer TO NULLRefused with every other use of NULL (CBSA CREACC
SET COMM-PCB-POINTER TO NULL). Now binary zeros over the pointer's bytes: GnuCOBOL's NULL is a zerovoid *, IBM's NULL a fullword of zeros; only the width differs, asoracle_assumptions.mdC9 already states (C9 extended). A POINTER now gets a Field over its bytes (dropped when unused, so no other port changes), which also makesSET p TO qcompile -- CBSA DELCUS translated it before onto Fields that were never declared. Every other use of NULL (comparison, MOVE, VALUE) andSET ADDRESS OFon a read pointer stay refused by name.Measured
blockers --all-programs: translated whole 96 -> 98 / 179 (non-burned 10 -> 11); ACCTCTRL 15/18 -> 18/18, EDUPGM 22/25 -> 30/30 (both ports compile against their built estates indet_survey).LINK SYNCONRETURN(the slice in flight), so it becomes whole when that lands (-> 99).compare --before-baseline --verb RETURN(CICS programs): translated whole 77 -> 79 (non-burned 5 -> 6).Proofs / gates
tests/cobol_mainframe/test_det_whole_programs_4270.py:is_cics_programcases; SET TO NULL / NULLS on an elementary, a subscripted and a level-01 pointer,SET p TO q, write-only pointers, refusals -- and end to end vs cobc (EQUIVALENCE_E2E=1, bytes / typed / groups): 16 passed.det_port.py check --base-ref origin/main: 79/79 ports unchanged, so no proof or evidence record is stale andproof_sweep --det-onlyhas nothing to re-run.pr_gates --fast: 5/5 pass.--ratchets: 6/7 pass;portsfailed only under the shell's default JDK 21 -- rerun withequivalence_env.py(JDK 17): all 45 committed ports compile.Not fixed (filed)
HV-SO-IM: no such itemis a source defect, not a lookup bug -- line 411 runs to column 78 and fixed form cuts:HV-SO-IMPORTO,to:HV-SO-IM; name it like det: listing control, code pointers, JSON / XML holes; cut literals refused by name (#4462 slice 4) #4590. Same issue: the other source defects in the ranking (ISPF screen captures ->SystemExit: 0, refatorado's undeclared items, a comment*in column 8).CALL DSNTIAC(COTRTLIC).🤖 Generated with Claude Code
https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D