Translator consumes engine record layouts (fact_ownership.md follow-up): POINTER width as a parameter, shared stand-in copybooks, retire the duplicate layout computation
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
Línea de trabajo
Start with gitgalaxy/tools/cobol_to_java/det/layout.py, the engine's GalaxyIR layout path, and core/copy_libraries.py. Then examine the offsets entries in tests/cobol_mainframe/fact_crosscheck_ledger.json and the layout guidance in docs/language_status/fact_ownership.md. Completion requires parameterizing POINTER width, sharing stand-in copybooks, switching translator layout use, and reducing the listed offset disagreements to zero while all relevant equivalence cases pass.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Why
docs/language_status/fact_ownership.md:82 (record layouts / offsets) left a follow-up: "revisit having the translator consume engine layouts once #4457 / #4458 are fixed and POINTER width is a parameter: the engine would then match the translator everywhere on these corpora." #4457 and #4458 closed on 2026-10-05; the follow-up was never picked up. Today both sides compute every record layout; the translator uses its own (gitgalaxy/tools/cobol_to_java/det/layout.py), the engine's go to analysis (record_data, via GalaxyIR).
Where the two sides still differ (fact cross-check ledger tests/cobol_mainframe/fact_crosscheck_ledger.json, 2026-10-19)
586 offsets disagreements, all definitional, no engine-wrong layout left:
- 380
translator-uses-mq-stand-ins(#4892): the translator expands its shipped IBM MQ stand-in copybooks (CMQV, CMQODV, CMQMDV, CMQGMOV, ...); the engine doesn't see them. - 210
pointer-width: POINTER is 4 bytes on z/OS (engine, answer keys) and 8 in the GnuCOBOL storage the proofs run on (oracle_assumptions.mdC9).
Plus small definitional ones elsewhere (translator-uses-stand-in-copybookCEEIGZCT #4884, refusals by name).
Work
- POINTER width as a parameter of the engine's layout computation (default z/OS 4; the translator asks for its storage's width), so one computation serves both.
- Stand-in copybooks as a shared library: the engine resolves the same shipped stand-ins (MQ, CEEIGZCT) the translator uses, through
core/copy_libraries.py, flagged as stand-ins in the facts. - Translator consumes engine layouts (through GalaxyIR / the port ticket, like COPY resolution since #4468) for offsets, lengths, OCCURS strides, REDEFINES; keep the translator's own computation behind a check mode for one release so any difference fails loudly.
- Update
fact_ownership.md: layouts owned and computed by the engine; the gate keeps checking until the translator's copy is deleted.
Acceptance
- Fact cross-check:
offsetsdisagreements for the two causes above go to 0 (ledger lowered in the same PR, per its two-way ratchet). - Re-proof: every CICS / estate / golden crucible port and equivalence case passes byte-for-byte with the translator on engine layouts.
- Builds on the shared preprocessor (#5648) if it has landed (the expanded text both sides lay out should be the same text); can start with steps 1-2 before it.
Part of the CICS→Java path (Training Montage).
🤖 Generated with Claude Code
- Lenguaje dominante
- Python
- Estrellas
- 57
- Forks
- 11
- Merge medio
- 1 h 41 min
- PR fusionados (30 d)
- 978
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de squid-protocol/gitgalaxy
-
lane:nyx needs:corpus priority: medium testing
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
squid-protocol/gitgalaxy#5784 ·
Los mantenedores suelen responder en 1 día
-
lane:nyx needs:corpus priority: medium testing
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
squid-protocol/gitgalaxy#5783 ·
Los mantenedores suelen responder en 1 día
-
keyword-rosetta: ACS (acs) has no control folder; author data/acs/ and backfill its cost recordAbiertolane:nyx needs:corpus priority: medium testing
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
squid-protocol/gitgalaxy#5782 ·
Los mantenedores suelen responder en 1 día
-
lane:nyx needs:corpus priority: medium testing
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
squid-protocol/gitgalaxy#5781 ·
Los mantenedores suelen responder en 1 día
-
keyword-rosetta: F# (fsharp) has no control folder; author data/fsharp/ and backfill its cost recordAbiertolane:nyx needs:corpus priority: medium testing
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
squid-protocol/gitgalaxy#5780 ·
Los mantenedores suelen responder en 1 día
Todos los issues de squid-protocol/gitgalaxy
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
521xueweihan/HelloGitHub#4063 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Vanilla-OS/apx-gui#112 ·
-
Devstral and Voxtral: section 5 fails in us-east-1 with 400 "Model does not support audio modality"Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
aws-samples/sample-per-model-bedrock#409 ·
Los mantenedores suelen responder en 1 día
-
DuckDB 2.0 breaks to_pyarrow_batchesPosiblemente ocupada @DG47 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ibis-project/ibis#12196 ·
Los mantenedores suelen responder en 1 día