Summary
The self-hosted compiler currently has structural smoke coverage, but not enough executable milestone coverage to make progress measurable with confidence.
There is also a known large-source validation gap: one of the self-hosted smoke tests is ignored because concatenating the self-hosted modules into one large source string triggers a parser/session failure path.
Why this matters
- self-hosting is a core project goal
- green test status can overstate maturity if the hardest self-hosted path is ignored
- milestone progress is easier to trust when behavior tests exist, not only parse/typecheck shape checks
Current behavior
- self-hosted smoke tests validate symbol presence and type-checking for staged concatenated modules
- a larger all-modules validation path is currently ignored because large concatenated input is not stable enough
- several self-hosted modules still expose placeholder behavior, so the test strategy needs to distinguish structural readiness from executable readiness
Expected behavior
- the self-hosted test suite should include milestone-oriented behavioral checks
- the large-source validation path should either work reliably or be replaced with a module-aware harness that exercises the same coverage without concatenation fragility
Suggested scope
- investigate and fix the large-source
Session::from_source() / parser-state failure mode, or replace it with a better validation harness
- add milestone tests that verify actual self-hosted behavior for the earliest supported compiler stages
- keep structural smoke tests, but supplement them with behavior-oriented checks
Acceptance criteria
- no ignored test remains solely because the self-hosted source bundle is too large for the current session/parsing path
- at least one self-hosted milestone is validated with behavior assertions rather than only symbol/typecheck checks
- the test suite makes it clear which self-hosted stages are structural vs executable
Summary
The self-hosted compiler currently has structural smoke coverage, but not enough executable milestone coverage to make progress measurable with confidence.
There is also a known large-source validation gap: one of the self-hosted smoke tests is ignored because concatenating the self-hosted modules into one large source string triggers a parser/session failure path.
Why this matters
Current behavior
Expected behavior
Suggested scope
Session::from_source()/ parser-state failure mode, or replace it with a better validation harnessAcceptance criteria