VAST
- Overview — What VAST is and why it exists, explained without jargon
- Introduction — What the VAST program is and why it matters for compiler trust
- How it works — The VAST pipeline: generation, three-path execution, and comparison
- Why it matters — What changes when a compiler project runs its own verification program
- CLI reference — Running the VAST program: flags, profiles, modes, and usage examples
- Differential testing — How VAST uses multiple independent execution paths to find compiler bugs through disagreement
- Metamorphic testing — How VAST verifies compiler correctness by applying semantics-preserving transforms and checking that results stay the same
- Mutation testing — How VAST uses mutation expansion to validate its own detection infrastructure
- Reduction — How VAST automatically shrinks failing programs to minimal reproducers
- Value pools — How VAST uses value pools to generate programs with richer data flow and deeper semantic coverage
- CI integration — Running VAST in CI: fast, deep, and continuous modes, dashboards, coverage, and seed rotation
- VAST vs mutate — How vary vast and vary mutate differ in purpose, technique, and what they find
- Comparison with other systems — How VAST compares to Csmith, Alive2, CompCert, QuickCheck, LangFuzz, and other compiler testing tools
- Coverage and confidence — Semantic coverage, feature interactions, confidence scoring, and stress testing
- Testing playbook — When to run what, how to interpret results, and how to act on failures
- Future phases — What we are considering for future VAST work