det translator: an item whose bytes overlap a COMP-1 / COMP-2 / COMP-5 item is refused (census: 2 programs; #5865 rank 4)

未关闭
#7,646 20 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@squid-protocol 已经在做这个了。

开始于 2026年11月6日。

  • #7875 来自 @squid-protocol —— 未关闭

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
java, python
领域
backend, compilers

调研方向

Start with gitgalaxy/tools/cobol_to_java/det/gen.py near lines 406 and 413, then read det/hfp.py, the register, and the evidence policy sections cited in the issue. Check .mainframe_corpora for the construct, then build synthetic reproductions and use GnuCOBOL as the oracle for the documented byte views. Done means equivalence is proved, undefined cases are refused by name, and an aggregate census is rerun with the resulting move stated.

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

描述

claim:nyx enhancement legacy-modernization priority: medium scope:frontier

Why

gap_prevalence.md (#5865): <name>: bytes overlap another item refuses 2 census programs in one estate (era e4), and it ranks 4th in the close-next order. The translator raises it in gitgalaxy/tools/cobol_to_java/det/gen.py (~L406 / L413): Untranslatable("<ref>: its bytes hold <over> COMP-1/COMP-2 (...)") and "... COMP-5 (...)". This is an item whose storage overlaps (REDEFINES or group) a floating-point or COMP-5 item, read in a way the det runtime's representation (a Java double / long, not bytes) can't serve.

Do

  • Build synthetic reproductions (never census code, evidence policy section 3): a DISPLAY / group item REDEFINES a COMP-1, COMP-2 and COMP-5 item, and a group MOVE over them. Also check the burned corpora (.mainframe_corpora) for the construct first, per policy section 2.
  • Model the byte view where IBM documents it (COMP-1 / COMP-2 are HFP, see det/hfp.py and the register; COMP-5 is native binary), with the GnuCOBOL oracle proving it. Refuse by name whatever stays undefined.
  • Equivalence-prove the synthetic cases. Re-run the census (aggregates only) and state the move.

Scope: frontier. Part of #5865.

Owner ruling 2026-11-04: COMP-5 follows z/OS byte order by default (option B)

The det port holds COMP-5 big-endian, as z/OS does, for every program, not only where a byte view would otherwise be refused. Rationale: one representation (no per-program hidden mode); no byte-order mismatch when COMP-5 crosses a COMMAREA, file or CALL boundary; IBM is the reference and GnuCOBOL the instrument (#4702). The oracle's little-endian bytes are a declared difference (#7725, #7729, #7733). zos_comp5=False stays an explicit GnuCOBOL-native what-if.

Burned-estate impact (checked 2026-11-04; COMP-5 is in 4 files):

  • CardDemo PAUDBLOD, PAUDBUNL, DBUNLDGS (via copybook IMSFUNCS, L4): each does CALL 'CBLTDLI', which zos_comp5_refusal (#7673) refuses today. These must keep translating before the flip.
  • Async credit-card ASYNCPNT, SEQPNT (L5): no external CALL, but their bytes change. Re-prove them; L5 may dip from 12 to 10 until the re-judged mutants are accounted.
  • DBB EPSCSMRD: refused already (#5106), no change. GenApp, CBSA and zECS do not use COMP-5.

Order:

  • Slice 4: IMS DL/I (CALL 'CBLTDLI') works under zos_comp5=True. DL/I areas' COMP-5 fields pass big-endian, as IMS on z/OS expects. PAUDBLOD, PAUDBUNL and DBUNLDGS translate whole under the switch and stay equivalent with the declared difference. (#7756)
    Hold lifted (owner 2026-11-05: no release pending; census first):
  • Slice 5, translate() defaults to zos_comp5=True. Regenerate the affected goldens, re-prove the 5 programs above in one evidence refresh, then census T3 on #7709.
主要语言
Python
星标
57
派生
11
平均合并
1 小时 46 分钟
30 天内合并 PR
972

环境准备

从这里开始

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

squid-protocol/gitgalaxy 的其他 Issue

查看 squid-protocol/gitgalaxy 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

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