Skip to content

CICS: the pointer lane -- WEB RECEIVE SET, GETMAIN / FREEMAIN, SET ADDRESS OF (Part of #4771) - #5041

Merged
squid-protocol merged 8 commits into
mainfrom
churn/4771-pointer-lane
Oct 13, 2026
Merged

squid-protocol merged 8 commits into
mainfrom
churn/4771-pointer-lane

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #4771.

What

The pointer lane for zECS: WEB RECEIVE SET(ptr), GETMAIN SET(ptr) FLENGTH/LENGTH INITIMG, FREEMAIN DATAPOINTER, SET ADDRESS OF record TO ptr | ADDRESS OF record, SET ptr TO ADDRESS OF record. IBM text and every assumption / refusal: new register entry X47 (X44-X46 are taken by #5035 / #5038 / #5040).

Design: a POINTER item holds an 8-byte handle of a block of task storage (CicsTask.getmain / acquireReceived / addressOf / storageAt); SET ADDRESS OF rebinds a LINKAGE 01 record's Storage onto the block's byte array, so it is a real alias. The stub C keeps real addresses and GnuCOBOL's own SET ADDRESS OF.

Already done on main (confirmed, not redone)

READ GTEQ / DELETE GENERIC on a run-time file: #4886 (032b2e7), register X22, tests in test_cics_runtimes.py / test_det_translate.py.

Class table

Member Status
WEB RECEIVE SET done here
GETMAIN / FREEMAIN (SET, DATAPOINTER) done here
SET ADDRESS OF rec TO ptr / TO ADDRESS OF rec; SET ptr TO ADDRESS OF rec done here (LINKAGE 01 records)
GETMAIN64 / FREEMAIN64 refused by name (unchanged)
pointer arithmetic (ZECS001 ADD n TO CACHE-ADDRESS-X), ADDRESS OF a subordinate item (ZF-DATA) refused by name, sibling gap
terminal RECEIVE SET(ptr), RETRIEVE SET, GET CONTAINER SET, READ SET, LOAD SET still refused (SET_POINTER), sibling gap
CALL ZUIDSTCK, ZC##FILE templates beyond READ GTEQ / DELETE GENERIC open, sibling gap

Evidence

  • Spec / translator / harness / both runtimes tested alike: _X47_CASES (24 step lists, stub C vs CicsTask Java), test_det_translate.py, test_equivalence_cics.py, test_pointer_lane_4771.py (a whole program translates with no hole, DetCics aliasing compiled and run).
  • Gates: pr_gates --fast 5/5, --ratchets 7/7, crucible_check both legs PASS (no golden change), det_port.py check: every CICS port's runtime files change additively (DetCics.java +65, CicsTask.java +87), no translated service changed; re-proved zecs-zecsplt, cbsa-creacc, carddemo-menu, genapp-lgwebst5: PROVED.
  • Not proven: no GnuCOBOL end-to-end of a pointer-lane program (cases are corpus-only; cics-crucible is case PRs only) and no estate program uses it yet, so no ZECS program is made whole by this PR.

Cross-repo

None (no companion PR). Conflicts to expect with #5035 / #5038 / #5040: api.py, det/cics.py, test counts in tests/core_engine/test_cics_spec.py, oracle_assumptions.md; merge main (never rebase) and re-run register.py render / cics_spec_status.py render.

🤖 Generated with Claude Code

squid-protocol and others added 4 commits October 13, 2026 13:08
…Part of #4771

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…art of #4771)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

def pointer(self, text: str | None) -> str:
"""#4771 (X47): the Field of the plain USAGE POINTER item an option names (SET / DATAPOINTER)."""
from gitgalaxy.tools.cobol_to_java.det.gen import Untranslatable
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

…4957 test say so (Part of #4771)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…umptions.md and cics_spec_status.md

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol
squid-protocol marked this pull request as ready for review October 13, 2026 18:04
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 13, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 13, 2026 18:08
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol squid-protocol added the shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md label Oct 13, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5041 @ 80f90c4: 4 failed check(s)

== db2 1/4 (failure) -- infra
https://github.com/squid-protocol/gitgalaxy/actions/runs/38443826913/job/115458144844
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --db2-only --cases --work /tmp/gitgalaxy-scratch/ci-digest/sweep
errors:
fail-on-cache-miss: false
Traceback (most recent call last):
RuntimeError: docker build -q -t: ERROR: failed to build: failed to solve: failed to load cache key: Get "https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz": net/http: TLS handshake time
##[error]the background Db2 start did not finish
##[error]Process completed with exit code 1.
log tail:
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
GITGALAXY_ORACLE_PREBUILT: 1
DB2_JOBS: 4
GITGALAXY_DB2_POOL: 4
JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
JAVA_HOME_17_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
MAVEN_ARGS: -ntp
##[endgroup]
Multiple search paths detected. Calculating the least common ancestor of all paths
The least common ancestor is /home/runner/work/_temp. This will be the root directory of the artifact
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-db2-logs-0.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 591
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 80b534ce8fdf986150306fd25fc9d23d9faf6e759ddced58a4ef490c354f1db9
Finalizing artifact upload
Artifact det-sweep-db2-logs-0 successfully finalized. Artifact ID 11838132389
Artifact det-sweep-db2-logs-0 has been successfully uploaded! Final size is 591 bytes. Artifact ID is 11838132389
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/38443826913/artifacts/11838132389
Post job cleanup.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/30a6417f-bd96-4e85-823c-2160cd0c79e7' 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

== db2 3/4 (failure) -- infra
https://github.com/squid-protocol/gitgalaxy/actions/runs/38443826913/job/115458144892
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --db2-only --cases --work /tmp/gitgalaxy-scratch/ci-digest/sweep
errors:
fail-on-cache-miss: false
Traceback (most recent call last):
RuntimeError: docker build -q -t: ERROR: failed to build: failed to solve: failed to load cache key: Get "https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz": net/http: TLS handshake time
##[error]the background Db2 start did not finish
##[error]Process completed with exit code 1.
log tail:
GITGALAXY_ORACLE_PREBUILT: 1
DB2_JOBS: 4
GITGALAXY_DB2_POOL: 4
JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
JAVA_HOME_17_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
MAVEN_ARGS: -ntp
##[endgroup]
Multiple search paths detected. Calculating the least common ancestor of all paths
The least common ancestor is /home/runner/work/_temp. This will be the root directory of the artifact
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-db2-logs-2.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 591
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is c3247fa85ed3081f7f6bacf6f4f8c2883c4f1628344fc1a1b6eaece6772b22df
Finalizing artifact upload
Artifact det-sweep-db2-logs-2 successfully finalized. Artifact ID 11838675489
Artifact det-sweep-db2-logs-2 has been successfully uploaded! Final size is 591 bytes. Artifact ID is 11838675489
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/38443826913/artifacts/11838675489
Post job cleanup.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/84981526-8240-4267-84df-666b82dae981' 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
Terminate orphan process: pid (2182) (bash)
Terminate orphan process: pid (2184) (docker)

== db2 4/4 (failure) -- infra
https://github.com/squid-protocol/gitgalaxy/actions/runs/38443826913/job/115458144826
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --db2-only --cases --work /tmp/gitgalaxy-scratch/ci-digest/sweep
errors:
fail-on-cache-miss: false
Traceback (most recent call last):
RuntimeError: docker build -q -t: ERROR: failed to build: failed to solve: failed to load cache key: Get "https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz": net/http: TLS handshake time
##[error]the background Db2 start did not finish
##[error]Process completed with exit code 1.
log tail:
GITGALAXY_ORACLE_PREBUILT: 1
DB2_JOBS: 4
GITGALAXY_DB2_POOL: 4
JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
JAVA_HOME_17_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
MAVEN_ARGS: -ntp
##[endgroup]
Multiple search paths detected. Calculating the least common ancestor of all paths
The least common ancestor is /home/runner/work/_temp. This will be the root directory of the artifact
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-db2-logs-3.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 591
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 74abdbc72a3b882572c638ece2cbd2fdfdfb8e103de2d456445027c8c2e0feaf
Finalizing artifact upload
Artifact det-sweep-db2-logs-3 successfully finalized. Artifact ID 11836989787
Artifact det-sweep-db2-logs-3 has been successfully uploaded! Final size is 591 bytes. Artifact ID is 11836989787
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/38443826913/artifacts/11836989787
Post job cleanup.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/c458fe86-66e7-4d8c-803e-03de8157f04d' 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
Terminate orphan process: pid (2225) (bash)
Terminate orphan process: pid (2232) (docker)

== shepherd (label event) (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/38446329354/job/115465575592
repro: python tests/tools/pr_gates.py --fast
errors:
##[error]Process completed with exit code 1.
log tail:
/home/runner/work/_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/gitgalaxy/gitgalaxy/.git.path /home/runner/work/_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/gitgalaxy/gitgalaxy/.git/worktrees/.path
/home/runner/work/_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/gitgalaxy/gitgalaxy/.git/worktrees/
.path /home/runner/work/_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path
/github/runner_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/.path
/github/runner_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/
.path /github/runner_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Removing credentials config '/home/runner/work/_temp/git-credentials-ca834973-b0d6-495d-a7ac-051511c41ed5.config'
##[endgroup]
##[group]Run python3 tests/tools/shepherd_gh.py event --event-path "$GITHUB_EVENT_PATH"
python3 tests/tools/shepherd_gh.py event --event-path "$GITHUB_EVENT_PATH"
shell: /usr/bin/bash -e {0}
env:
GH_TOKEN: ***
##[endgroup]
#5041 rerun db2 1/4 (run 38443826913): FAILED: run 38443826913 cannot be rerun; This workflow is already running
#5041 rerun db2 3/4 (run 38443826913): FAILED: run 38443826913 cannot be rerun; This workflow is already running
#5041 rerun db2 4/4 (run 38443826913): FAILED: run 38443826913 cannot be rerun; This workflow is already running
##[error]Process completed with exit code 1.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/cbc85c86-c218-4d03-8c0c-d718729717ae' 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 shepherd:needs-fix Bot: a real failure on this head; see the digest comment. 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:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md labels Oct 13, 2026
 and #5005; oracle_assumptions.md re-rendered)

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

Copy link
Copy Markdown
Owner Author

CI shepherd: the head of this PR (f67ae28) 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).

@squid-protocol squid-protocol 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 labels Oct 13, 2026
… GETMAIN / FREEMAIN on top of #5005)

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 Oct 13, 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 Oct 13, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

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