Two perf improvements to the compiler pipeline that become relevant as project size grows. Grouped in one issue because they share the dependency-graph infrastructure.
Incremental compilation
Parallel TypeTransformer
Combined benefit
Incremental + parallel together make a large monorepo build `O(changed)` instead of `O(total)`, and the baseline of all-types-changed gets faster by a factor close to the number of cores.
Dependencies
Shares machinery with #18 (watch mode) — both need to know "which files would change if this C# file is touched". Keep the dependency graph layer in the core so both can reuse it.
Part of #14.
Two perf improvements to the compiler pipeline that become relevant as project size grows. Grouped in one issue because they share the dependency-graph infrastructure.
Incremental compilation
Parallel TypeTransformer
Combined benefit
Incremental + parallel together make a large monorepo build `O(changed)` instead of `O(total)`, and the baseline of all-types-changed gets faster by a factor close to the number of cores.
Dependencies
Shares machinery with #18 (watch mode) — both need to know "which files would change if this C# file is touched". Keep the dependency graph layer in the core so both can reuse it.
Part of #14.