Repository navigation
CICS: WEB OPEN / CONVERSE / CLOSE, the HTTP client, on a stated peer (Part of #4767) - #4877
Merged
Merged
Conversation
…(Part of #4767) zECS: ECS001's client and ZECS000 / ZECS001 / ZECS003's replication talk HTTP through WEB OPEN (URIMAP or HOST / HOSTLENGTH / PORTNUMBER / SCHEME), WEB CONVERSE and WEB CLOSE. The server is a stated fact (http_peers: scheme, host, port, CLIENT URIMAP, and the response to each request); each request sent is recorded (WEB-CONVERSE) and compared. Spec entry first (commands/web.py), both translators, CicsTask and ggcics.c (one step list, answered alike), the equivalence harness's peers and event. IBM's conditions with their RESP2; what IBM leaves open refused by name. Register X35. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX
…Part of #4767) A new DetCics method would mark every CICS det port changed (90 re-proofs) for code none of them calls; the PastFrom check now sits in the generated statement instead. ruff format of web.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX
Contributor
# Conflicts: # docs/language_status/oracle_assumptions.md # tests/cobol_mainframe/test_det_translate.py # tests/cobol_mainframe/test_equivalence_cics.py
Owner
Author
|
No description provided. |
squid-protocol
marked this pull request as ready for review
October 11, 2026 10:46
squid-protocol
enabled auto-merge (squash)
October 11, 2026 10:46
Owner
Author
|
No description provided. |
This was referenced Oct 11, 2026
det: repeated 01 FILLER groups translate; zECS ZECS001 no longer refused whole (Part of #4767)
#5214
Merged
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 #4767 (zECS, #4270). Slice 2 of the zECS cluster plan. Independent of #4873 (both off main); together they make ECS001 translate whole (105/105, compiles).
Design (the issue's open question, settled)
The HTTP server is not part of the region, so it is a stated fact:
http_peers(case or scenario) lists each peer's scheme, host, port, the CLIENT URIMAP naming it and that URIMAP's path, and the response to each request (method + path + query matched, in order, each answering once). Both runtimes read it (CicsTask.withHttpPeers,$GGCICS_HTTP); a connection to a peer, or a request, the run does not state is refused at run time. Every request the program sends is recorded as aWEB-CONVERSEevent (host, method, path, query, media type + body when there is a body, RESP/RESP2) and compared exactly by the equivalence harness. The exchange is in the program's own characters, so CLIENTCONV and its CVDAs change nothing within the model (register X35).What
gitgalaxy/standards/cics/commands/web.py(WEB OPEN / CONVERSE / CLOSE full entries: options, groups, IBM's conditions with RESP2 -- OPEN LENGERR 21, INVREQ 40 / 138; CONVERSE NOTOPEN 27, INVREQ 33 / 34 / 54 / 76, LENGERR 5 / 8 / 16 / 50 / 57 / 59; CLOSE NOTOPEN 27 -- refusals with reasons, the fact, runtime refusals); removed from api.py's name-only list.det/cics.pyCics.web), stub translator (equivalence_cics.py_web), CicsTask (webOpenHost/webOpenUrimap/webConverse/webClose) and ggcics.c (GGCWOPN/GGCWCNV/GGCWCLS).http_peerschecked, stated to both sides, theWEB-CONVERSEevent parsed and compared.Measured (det survey, zECS only; main 0ad5dba)
zECS translated whole: 1/5 -> 2/5 with both PRs. Left after both: ZECS000 READ GTEQ (templated file name, #4771) + WEB PARSE x2; ZECS003 READ GTEQ, DELETE GENERIC, WEB PARSE, WEB SEND; ZECS001 the server side (RECEIVE / EXTRACT / READ+WRITE HTTPHEADER / SEND), GETMAIN / FREEMAIN / SET ADDRESS, CALL ZUIDSTCK, GET COUNTER, WEB PARSE (and a pre-existing compile error, duplicate FILLER names, unrelated to WEB).
Evidence
http_peerscheck, the cfg, the event read back and compared exactly), test_cics_runtimes (one step list run on the C stub and on CicsTask, answered line for line alike, and the same refusals), test_cics_spec (counts).pr_gates.py --fast5/5;--ratchets7/7 (none skipped).det_port.py check: 104/104 ports unchanged (DetCics untouched on purpose).🤖 Generated with Claude Code
https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX