← board

Pascal corpus rung 1 — FPC test-suite subset (conformance)

Idea

FPC ships tests/test/** — thousands of small .pp programs, each exercising one language feature (tbs*, tobject*, tgeneric*, terror* for expected failures, etc.). It is the c-testsuite analog for Pascal, but authoritative (the reference compiler's own suite) and far larger. PXX is FPC-faithful, so most should compile + run to the same result — and every one that doesn't is a sharply localized dialect bug.

Scope (start small, ladder up)

Watch-outs

Gate

make test + self-host byte-identical for any frontend fix (shared lexer.inc/parser.inc). Rung is "green" at an agreed pass threshold on the curated subset; expand the subset as rungs clear.

Rung of [[feature-pascal-corpus-expansion]] · method mirror [[feature-c-corpus-expansion]] · dialect policy [[project_fpc_compat_next_queue]] · [[project_mimic_fpc_done]].

2026-07-10 — infra landed + baseline audit

Parked 2026-07-10

Infra + baseline + cluster tickets landed (see above). Burn-down of the two big parser clusters edits shared parser.inc — needs the sole-A confirmation an E+B+P agent doesn't have. Resume: grab a cluster ticket, confirm sole-A, burn skip-list entries.

Note 2026-07-11 — dialect-pass category + strict-case sweep

pxx.skip now distinguishes dialect-pass (PXX lax by design / FPC-impl-limit tests — NOT bugs, do not burn: tgeneric14/20/30, tgenconstraint38/39, tenum2, tover3) from accepts-invalid (real missing diagnostics, rainy-day). The sweep runs the compiler with --strict-case (FPC-parity case-label diagnostics; PXX's default keeps lax first-match labels). tclass13c (TRootClass.Integer nested-type member) is PARKED by user call — needs a per-class nested-type registry, near-zero value; revisit only if nested-type lookups matter elsewhere. Triage details in bug-pascal-missing-diagnostics-fail-tests.

2026-07-14 — UNPARKED, and the numbers in this ticket are stale.

The sole-A parking excuse is gone: both big parser clusters it was blocked on (bug-pascal-headerless-program, feature-pascal-delphi-generics-syntax) plus feature-pascal-generic-nonclass-templates are in done/.

Current sweep at HEAD: 283 pass / 7 fail / 226 skip (this ticket's text claims a 279/0 sweep, and the baseline it quotes is 222 — both stale). Today's session moved it 273 -> 283 by burning the whole advanced-record legality cluster (b347) plus tenum4 / the template cluster / tsealed (b342-b344).

The 7 that remain, correctly classified (the diagnostics umbrella had these filed as "13 of 17 = one visibility bug", which was wrong — only ONE of them is visibility):

The two compile gaps are the only ones that are not diagnostics, and they are the ones worth taking first — a program that will not compile is a bigger hole than a program we fail to reject.

Moved back to backlog/.