Expand description
The Session: the options, the interner and the diagnostic sink that every stage of a
single compilation is handed.
Design: spec/03-architecture.md and spec/04-driver-and-cli.md. Layer rank 3, see
spec/18-package-layout.md.
Everything below the driver reaches the outside world through this type and not through
std::fs, std::env or println!. That is the whole reason the compiler can be used as
a library and tested without spawning a process, and it is enforced by the layer rule
rather than by discipline.
§Status
Options, optimisation levels, emit kinds and diagnostic counting are real. The parallel
job model and the file system abstraction land with the rest of M0 and M1.
This crate is tier 3 in spec/18-package-layout.md section 18.5: its Rust API is
explicitly unstable and will change without a major version bump.