VAST
Alpha. Vary is under active development and not ready for production use. Syntax, APIs, performance, and behaviour may change between releases.
| 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 |