Status · TCP0-TCP5

Compiler preview contract

The bounded Linux candidate is a concrete preview of tscc as a compiler, not a declaration that it replaces tsc for arbitrary projects.

Historical baseline, current compiler is broader:

TCP0-TCP5 remains the frozen 579-case preview contract. The implementation has since advanced to CP75 with generics/inference, overloads, classes, CFG narrowing, advanced types, bounded JSX semantics, source/declaration maps, incremental output and stronger hardening. Those additions do not retroactively widen this preview manifest; a new compatibility campaign must earn the next contract.

555 / 0 / 24

frozen preview baseline across 579 cases.

600 / 0 / 18

current external suite across 618 cases after TRS1-8 reconciliation.

7 / 7

frozen module-free emitted output returns the expected result under Node and JS++.

400

deterministic malformed-input mutations complete under the candidate gate.

What TCP0-TCP5 freeze

  • ES2022 output with preserve, esnext or commonjs modules and JSX preserve.
  • Machine-readable checked-versus-emitted feature classification and explicit exclusions.
  • Stable diagnostic families, deterministic order and pinned non-pretty output.
  • Sorted project roots, byte-identical repeat builds and visible unknown-option failures.
  • Default partial-success emission and all-or-nothing noEmitOnError policy.
  • Relative named-import propagation for bounded callable and structural types.
  • A dependency-free production compiler boundary: no Node, tsc or JS++ linkage.
  • Reproducible Linux candidate archives, ASan/UBSan, representative projects and a loose startup guardrail.

Frozen runtime intersection

type Pair = [number, number];
interface Box { value: number; }

function total(pair: Pair, box: Box): number {
  return pair[0] + pair[1] + box.value;
}

total([10, 12], { value: 20 }); // 42

The production compiler emits the frozen source and both Node and JS++ return 42. The case deliberately avoids modules because JS++ module loading is not part of its embedded preview.

Explicit exclusions

Package and node_modules resolution, path mappings, declaration emission, source maps, watch/incremental compilation, full standard-library processing, overload resolution, generics checking, classes, broad narrowing and complete TypeScript inference are not part of this preview.

Evidence still ahead

PC0V/CP73 external Valgrind confirmation is complete for the retained Linux validation workload. PC0P covers platform packages. TRS10 now retains classified real-package probes, and TRS11 used them to select CP81-85. Those results still do not widen the product beyond Compiler Preview; they determine what must be fixed next.