Is there any documentation out there which describes the process of digesting Rust source code and emitting the executable binary?
I know there are several steps involved (lexer, AST, lints, testing, benchmarking, compiler, linker, MIR, cross-compilation, optimizations, etc.) and several (non-Rust) components are required/recommended (cargo, LLVM, clang(?)). But I neither know if this list is complete, how those components interact, what can be configured (and how), etc.
Rather than jumping from one piece of puzzle to the next, I’d like to see some kind of big picture showing how all those gears play together along with a glossar that possibly links to the respective project website, source code, etc.
“The OpenGL Machine” is an elegant example of how a complex machinery can be boiled down to a single sheet. It doesn’t necessarily have to be that low-leveled, but it gives you a good idea of what I’m looking for.
As a bonus: it would be nice to see which components are pure Rust