det translator: PL/I CICS programs (dsf: 575 era-1 PL/I CICS files untranslatable today)

未关闭
#6,066 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
python
领域
tooling

调研方向

Start with gitgalaxy/tools/cobol_to_java/det/, det_survey.py, and cics_census.py; read the existing COBOL translation path and the linked PL/I work (#2502, #3491, #3720, #4509). The issue maps a broad front end, CICS and DLI translation, and census changes, but says work is blocked on an owner decision about burning a PL/I estate and choosing a runner. Done means PL/I programs and translation holes appear in the survey and census, with execution evidence gated on that decision.

由索引模型根据 Issue 内容生成。

描述

enhancement era:1 legacy-modernization priority: low scope:frontier

Why

The deterministic translator (gitgalaxy/tools/cobol_to_java/det/) takes COBOL only; cics_census.py --pli already flags PL/I programs as untranslatable. Real CICS estates are often PL/I. In dsf (NAV's Det Sentrale Folketrygdsystemet, in production 1967–2018, local non-burned corpus), 1,473 of the source files are PL/I and 575 of them use EXEC CICS. Only its 7 COBOL batch programs reach the det survey, so the 2026-10-22 non-burned survey (#6064) misses almost all of that estate.

Era profile of dsf's 575 PL/I CICS files (grep of era_tags.py's own tells; the tagger is COBOL-only and reports no tell on PL/I):

  • Era 1: HANDLE CONDITION 254, DL/I (EXEC DLI / PLITDLI) 111, HANDLE AID 67
  • Era 2: RESP( 1, SYSID 3, EXEC SQL 0
  • Eras 0, 3 and 4: none (no macro level, MQ, LE callable services, channels/containers or WEB)
  • Shape: classic 3270 command-level application: SEND MAP 186, EXEC CICS LINK/XCTL 438

What exists already

  • Engine reading of PL/I: #2502 (language), #3250/#3720/#3728 (DECLARE record layouts, storage widths, COMMAREA), #3491 (CICS call sites, handlers, UOW parity), #3577 (answer key).
  • #3623 (closed): PL/I through the skeleton Java generation pipeline, not the det statement translator.
  • #4509 (open, Gap Atlas): equivalence harness for PL/I. Blocked on a runner: no mature free PL/I compiler (Iron Spring PL/I, or z/OS capture via #4050).

Scope

  1. Det front end for PL/I: procedures and BEGIN blocks; DECLARE (structures, BASED/pointers, DEFINED, INITIAL, FIXED DEC/FIXED BIN/CHAR VARYING/BIT, UNALIGNED) onto the same storage model COBOL ports use (#3720's layouts); assignments, IF/SELECT/DO loops, CALL, built-ins (SUBSTR, INDEX, LENGTH, UNSPEC, ADDR, …); ON-conditions as named holes until modelled.
  2. EXEC CICS in PL/I onto the existing CICS runtime model (the same commands COBOL ports use), including era-1 HANDLE CONDITION / HANDLE AID semantics (the PL/I flavour of #5856-class work) and EXEC DLI / PLITDLI.
  3. Survey and census: det_survey.py and cics_census.py count PL/I programs as translatable, with holes by reason, so non-burned PL/I estates show up in #6064's numbers.

Evidence constraints (read first)

  • No burned estate has any PL/I (0 .pli/.pl1 files in all 6). Under the burned-only rule there is no estate to build cases or proofs on. This work is translation-level only (L1 at best) until a burned PL/I estate exists or the owner burns one.
  • No oracle: PL/I execution needs #4509's runner decision (Iron Spring or z/OS via #4050). Without it nothing reaches L2. Don't fake a runner.
  • Owner decision needed before launch: whether to burn a PL/I CICS estate (dsf is the obvious candidate) and which runner #4509 uses. Until then this is frontier: mapped, not built.

Related: #4509, #4515, #4050, #6064, #6065, #5865.

主要语言
Python
星标
57
派生
11
平均合并
1 小时 55 分钟
30 天内合并 PR
973

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

squid-protocol/gitgalaxy 的其他 Issue

查看 squid-protocol/gitgalaxy 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。