← board

Parallel tracks: pin libraries/demos to a "stable" compiler

Goal

Let compiler work (track A) and library/demo work (track B) proceed in parallel without stepping on each other. The synchronisation boundary is a stable compiler binary: B compiles libraries and demo apps with a frozen, git-tracked pascal26 (stable_linux_amd64/default/latest) instead of the in-flux compiler/pascal26, so A can rebuild/regress the compiler freely while B keeps working against a known-good baseline. Current platform (x86-64) only; cross-compile is a later concern (assumed working on stable; the cross suites discover any gaps later).

Why now

The stabilize machinery already exists (make stabilize / check-stable / revert, versioned binaries under stable_linux_amd64/), but:

Design

Deliverables

  1. Refresh stable to current HEAD (make stabilize → v9). Unblocks B.
  2. PXX_STABLE var + a staleness note in lib-test (recorded stable commit vs HEAD).
  3. make lib-test — curated green subset against $(PXX_STABLE) (sudoku output check + lib/rtl smoke: collections, math). May hard-fail (smoke gate for B).
  4. make demos — compile-smoke every examples/* app against $(PXX_STABLE); prints OK/FAIL table, exit 0 (dashboard, not a gate).
  5. devdocs/dev/parallel-tracks.md — the A/B protocol.
  6. File discovery tickets for the example breakages found while wiring this up (primes IntToStr, adventure Copy, chess parse error) — demonstrates the discovery→ticket loop.

Acceptance

make stabilize records a current-HEAD stable; make lib-test passes against it; make demos prints a status table; the protocol doc exists; make test and self-host fixedpoint stay green.

Log