Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/language_status/cics_mainframe_facts.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
---
description: "Snapshot 2026-09-25, against `main` at the close of epics"
description: "> **Dated historical snapshot (2026-09-25).** Read current counts on the generated [progress page](https://github.com/squid-protocol/gitgalaxy/blob/generated/docs/language_status/progress.md) (#5282).

Snapshot 2026-09-25, against `main` at the close of epics"
---
# CICS / mainframe system facts — what GitGalaxy extracts, and how sure we are

Expand Down
2 changes: 2 additions & 0 deletions docs/language_status/construct_correspondence.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ description: "Generated with `tests/tools/construct_map.py` (scan, then analyze)
---
# Construct correspondence: what each COBOL construct becomes in Java

> **Dated historical snapshot (2026-10-02).** The counts on this page were measured once and are not updated. For current counts (level per program, per estate) read the generated [progress page](https://github.com/squid-protocol/gitgalaxy/blob/generated/docs/language_status/progress.md) (#5280, #5282).

Generated with `tests/tools/construct_map.py` (scan, then analyze) on 2026-10-02. It covers 49 converted programs
across CardDemo, CBSA and GenApp, in three forms:

Expand Down
8 changes: 5 additions & 3 deletions docs/language_status/det_port_design.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
---
description: "**Status (2026-10-02): 48 programs are translated with no model and proven.** That is 27 from CardDemo, 8 from"
description: "Dated snapshot (2026-10-02) of the deterministic translator design and its proof results; current counts are on the generated progress page."
---
# Deterministic port (det-port): design and the runtime contract

**Status (2026-10-02): 48 programs are translated with no model and proven.** That is 27 from CardDemo, 8 from
> **Dated historical snapshot (2026-10-02).** The counts on this page were measured once and are not updated. For current counts (level per program, per estate) read the generated [progress page](https://github.com/squid-protocol/gitgalaxy/blob/generated/docs/language_status/progress.md) (#5280, #5282).

**Status at the 2026-10-02 snapshot: 48 programs were translated with no model and proven (equality on the case's runs).** That was 27 from CardDemo, 8 from
CBSA and 13 from GenApp, over 50 equivalence cases; 17 of those cases run embedded SQL on a real Db2. Two cases are
not proven on purpose, each with its reason (`KNOWN_UNPROVEN` in `tests/tools/proof_sweep.py`): COCRDUPC writes
blanks into a `PIC 9(3)` field a typed DTO cannot hold (#4085), and `carddemo-intcalc-generated` depends on
Expand Down Expand Up @@ -881,7 +883,7 @@ The combined method runs in the porting loop like any other backend, and every e
CREACC) is compared field by field, each side read by its own layout, and the POINTER only as NULL or not; **D1**, proofs compare text in ASCII order, z/OS in EBCDIC: indexed
keys that mix letters and digits browse differently, and no audit has yet counted the in-program comparisons whose
result could change.
- **Breadth outside CardDemo** is 21 programs in two estates (CBSA 8, GenApp 13), 14 of them on Db2. CBSA's other
- **Breadth outside CardDemo** (2026-10-02) was 21 programs in two estates (CBSA 8, GenApp 13), 14 of them on Db2. CBSA's other
Db2 programs are blocked by C9 (INQACCCU, DELCUS, CREACC), by its
output file and CEEGMT / CEEDATM calls (BANKDATA; its FUNCTION RANDOM translates since C12) or by having only a
Java caller (ACCTCTRL). CRECUST translates whole since #4884 (CEEIGZCT stand-in L4, CEELOCT L5, FETCH / RUN CHANNEL
Expand Down
10 changes: 5 additions & 5 deletions docs/language_status/fact_ownership.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ Cross-check** workflow (`.github/workflows/fact-crosscheck.yml`) against

## What was compared

- **Universe:** the 7 keyed mainframe corpora (`tests/cobol_mainframe/corpora.json`: CardDemo, CBSA,
GenApp, zECS, DSF, zopeneditor-sample, IBM DBB mortgage), 128 sources with hand-verified answer
keys; the 54 programs the det-port equivalence cases translate (each with its case's own copy
directories; all 54 are also keyed); the 112 keyed copybooks (`layouts`); and estate-crucible at
its pin (v0.4.0, 40 COBOL programs, a generated key whose planted "horrors" cite IBM).
- **Universe:** the keyed mainframe corpora (`tests/cobol_mainframe/corpora.json`: CardDemo, CBSA,
GenApp, zECS, DSF, zopeneditor-sample, IBM DBB mortgage) with hand-verified answer
keys; the programs the det-port equivalence cases translate (each with its case's own copy
directories, all also keyed); the keyed copybooks (`layouts`); and estate-crucible at
its pin (v0.4.0, COBOL programs, a generated key whose planted "horrors" cite IBM).
- **Engine side:** `tests/tools/referees/engine_adapter.py` (the referee panel's, #4377) plus
`offsets`, `moves` and `copy_resolution`.
- **Translator side:** `tests/tools/referees/translator_adapter.py`. Every value comes from the
Expand Down
29 changes: 29 additions & 0 deletions tests/tools/test_progress_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,3 +294,32 @@ def test_det_survey_is_a_dated_snapshot_with_no_current_proof_count():
text = (REPO / "docs/language_status/det_survey.md").read_text(encoding="utf-8")
assert "Dated historical snapshot" in text and PAGE in text
assert "programs are proven" not in text


# ---- docs/language_status pages that quote a status count are dated snapshots (#5282) ---------------------------------

SNAPSHOT_PAGES = (
"det_survey.md",
"det_port_design.md",
"cics_mainframe_facts.md",
"construct_correspondence.md",
)


@pytest.mark.parametrize("name", SNAPSHOT_PAGES)
def test_a_status_page_with_counts_is_a_dated_snapshot_pointing_at_the_progress_page(name):
text = (REPO / "docs/language_status" / name).read_text(encoding="utf-8")
assert re.search(r"Dated historical snapshot \(\d{4}-\d{2}-\d{2}\)", text), name
assert PAGE in text, name


def test_no_status_page_states_a_current_proof_count_undated():
text = (REPO / "docs/language_status/det_port_design.md").read_text(encoding="utf-8")
assert "**Status (2026-10-02): 48 programs" not in text
assert "Breadth outside CardDemo** is" not in text


def test_fact_ownership_quotes_no_corpus_size():
text = (REPO / "docs/language_status/fact_ownership.md").read_text(encoding="utf-8")
universe = _section(text, "- **Universe:**", "- **Engine side:**")
assert not re.search(r"\b\d+\s+(?:sources|programs|copybooks|COBOL programs)\b", universe), universe
Loading