Repository navigation
IBM WCA4Z's published LGACDB01 translation through our equivalence harness - #4177
Merged
Merged
Conversation
…ce harness tests/tools/ibm_wca4z_port.py fetches IBM's validation-c2j repository at its pinned commit (no license: nothing of it is committed). It runs IBM's Lgacdb01.insertCustomer in place of our det port's INSERT-CUSTOMER method, through a thin adapter (tests/tools/ibm_wca4z): - the paragraph's host variables, marshalled in and out; - a JDBC driver for IBM's "endpoint_url" that answers with the task's own Db2 connection; - a JZOS compile shim that refuses every byte conversion. Results: - Not proven on all 4 genapp-lgacdb01 scenarios. IBM's INSERT never binds DATEOFBIRTH (setDate commented out), so Db2 refuses it (-4461). The failure is swallowed (println instead of '90' / WRITE-ERROR-MESSAGE / RETURN), and the task runs on into GenApp's error path, which the harness refuses (X6). - IBM's refactored COBOL has the stock INSERT-CUSTOMER, textually identical. - IBM's own generated JUnit test does not compile against the published Java (insertCustomer() with no arguments). - Found in our det port: LINK LGSTSQ COMMAREA(ERROR-MSG) is marshalled with CA-ERROR-MSG's DTO and reads past the record. This is on error paths no proof had reached; see M2 / #4173. --clamp-error-msg works around it in the scratch copy only. docs/language_status/ibm_wca4z_lgacdb01.md has the method, the per-scenario results, the root causes and the limits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
# Conflicts: # docs/language_status/README.md
Contributor
squid-protocol
added a commit
that referenced
this pull request
Oct 2, 2026
…ur own ERROR-MSG bug (#4181), artifact caveats Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
squid-protocol
added a commit
that referenced
this pull request
Oct 2, 2026
…d and proven (#4176) * docs(research): GenApp LGACDB01, two independent translations, scanned and proven (draft) Post-hoc comparison of the original COBOL, IBM WCA4Z's refactored COBOL and published Java, and our det port: IBM's published validation, our equivalence harness, and GitGalaxy's scan. Section 4.3 (IBM's Java through our harness) pending. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ * docs(wiki): 05-18 -- the model ports' 46 TODOs are mostly the scaffold's own, about 4 are the model's (per #4169) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ * docs(research): LGACDB01 -- harness results for IBM's Java (#4177), our own ERROR-MSG bug (#4181), artifact caveats Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
squid-protocol
added a commit
that referenced
this pull request
Oct 3, 2026
…ternal-fault experiment (#4194) * thirdparty_port: Lightyear and SENTINEL IDE CardDemo ports through the equivalence harness; external faults The pattern of #4177 / #4190: each port fetched at a pinned commit (no licence on either repository: nothing of theirs committed), built as it ships (SENTINEL: its program classes compiled as they are, the project's three non-compiling files are none of them), run on our cases' inputs as text lines, judged by compare_run in full / data / clock-masked tiers. --external-faults reproduces each case fault that is an input OPEN failing with status 35 by running the port with that file absent, for these ports and Devin's eval arms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ * docs(research): Lightyear and SENTINEL IDE through the harness; external-fault experiment (with Devin's eval arms) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
What
tests/tools/ibm_wca4z_port.pyruns IBM watsonx Code Assistant for Z's published translation of GenApp LGACDB01 (paragraph INSERT-CUSTOMER) through our equivalence harness, as a third port beside our det and model ports.The source is sandeephans/validation-c2j at
967d00b, the data behind arXiv 2506.10999 / 2504.10548. The repository has no license, so it is fetched at that pinned commit at run time and nothing from it is committed.The port is our det port of
genapp-lgacdb01with IBM'sLgacdb01.insertCustomer, unmodified, in place of our INSERT-CUSTOMER method. The thin adapter intests/tools/ibm_wca4z/(ours) has three parts:endpoint_urlthat answers with the task's own transaction-bound Db2 connection;Full record:
docs/language_status/ibm_wca4z_lgacdb01.md.Results
Root causes, in IBM's
Lgacdb01.java:// ps.setDate(4, …getDateofbirth());in the counter branch and// ps.setDate(3, …)in the DEFAULT-key branch: DATEOFBIRTH is never bound.// caReturnCode = 90;and// errorMsg.writeErrorMessage();replaced bySystem.out.println("[EXCEPTION CAUGHT] " + exception);. The task runs on into LGACDB02, whose CUSTOMER_SECURE insert breaks its foreign key, then into GenApp's LGSTSQ error path, which the harness refuses by name (register X6).equals()returningtrueis confirmed in the code but not exercised.IBM's refactored COBOL: its INSERT-CUSTOMER is textually identical to stock. It is not usable as a reference of its own: there is no mainline, the COMMAREA is in WORKING-STORAGE, and every run falls through into WRITE-ERROR-MESSAGE.
IBM's own JUnit does not compile against the published Java:
insertCustomer()is called with no arguments, but the method takes three. The recorded run in their repository is 2 empty passes and 2 failures.Found in our det port:
LINK LGSTSQ COMMAREA(ERROR-MSG)is marshalled with CA-ERROR-MSG's DTO and reads past the 71-byte record (StringIndexOutOfBoundsException). This is on GenApp error paths that no proof had reached (M2, #4173).--clamp-error-msgworks around it in the scratch copy only, for the diagnostic runs. It needs its own fix in the det emitter.Tests
tests/cobol_mainframe/test_ibm_wca4z_port.pycovers the paragraph swap and the clamp, offline.ruff_audit.py --ciis clean.test_source_readspasses.--junit.🤖 Generated with Claude Code
https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ