| 123456789101112131415161718192021222324252627282930313233 |
- # The CALC ladder — the ratchet for the work in CALC-COMPILE.md.
- #
- # One row per program, in the same shape run_compile_tests.sh asserts against
- # tests/fixtures/expected.tsv:
- #
- # <program> OK <code> <data>
- # <program> ERR <tp3-error-no> <normalised-pos>
- #
- # tests/calc_ladder.sh stages a COPY of the named program — and of the
- # companions that must sit beside it — into tmp/calc_ladder/ and runs the
- # freshly built compiler on it. A copy, not the Resources file itself: the
- # include (Stage 2 of CALC-COMPILE.md) resolves relative to the including file,
- # so CALC.INC has to be beside CALC.PAS in the staged tree.
- #
- # The rung may only move FORWARD. Each stage that removes a blocker replaces
- # the row in the SAME commit as the fix and says why in the message. Never
- # edit a row to make a failing suite pass; that is the one thing this file
- # exists to prevent.
- #
- # pos is NOT a file offset. TextBuf.LoadFile collapses CRLF and a lone LF to a
- # single CR, so pos indexes the NORMALISED buffer: CALC.PAS is 11,241 bytes on
- # disk and 11,059 normalised, so the reported 7791 is file byte 7901. Every
- # position written here is a normalised one. Once {$I CALC.INC} lands the
- # buffer is CALC.PAS with the directive replaced by CALC.INC, so all downstream
- # positions shift — which is exactly why this must be a measured number, not a
- # remembered one.
- #
- # Current rung (2026-10-21): `with Sheet[I,J] do' in CALC.INC's DisplayP.
- # Integer write field widths landed (t76_width + the wrintw runtime entry),
- # moving 14330 -> 15026. The blocker is now `with' over a TWO-DIMENSIONAL
- # array element: Sheet[I,J] needs the variable-index row stride, and `with'
- # needs the record's field table to follow the DI-addressed element.
- CALC.PAS ERR 102 15026
|