On the 'possible backdoor' issue, this excellent and thorough post buries the lede a bit, I think.
What I get when I follow the link is that mrustc is a cleanroom Rust compiler which is only intended to build the official Rust compiler.
So: it provides a way to build a Rust compiler from source, which can then be used to bootstrap itself.
No need for extensive error reporting --- it's ok to assume correct code, and fail messily if not. In fact, the simpler the better, for audit of the alternative implementation.
If one suspects that C/C++ has been also been infected with "Thompson's Trusting Trust" *with respect to the Rust compiler*, then try it using Python, or Perl. Maybe even COBOL. Maybe even Forth (but first you have to bootstrap a suitable Forth, keep us posted...[1]).
If after all that you still think the 'reflexive build chain' is compromised, then either you're truly paranoid, or we are all doomed :-)
[1] I really like Forth (aside from traditional use-cases, it makes a great souped-up calculator DSL), but I don't think it's the tool for this job unless you really do want a 'start from bare metal' proof. If you do, then it could be a way to get there faster than raw assembly.
What I get when I follow the link is that mrustc is a cleanroom Rust compiler which is only intended to build the official Rust compiler.
So: it provides a way to build a Rust compiler from source, which can then be used to bootstrap itself.
No need for extensive error reporting --- it's ok to assume correct code, and fail messily if not. In fact, the simpler the better, for audit of the alternative implementation.
If one suspects that C/C++ has been also been infected with "Thompson's Trusting Trust" *with respect to the Rust compiler*, then try it using Python, or Perl. Maybe even COBOL. Maybe even Forth (but first you have to bootstrap a suitable Forth, keep us posted...[1]).
If after all that you still think the 'reflexive build chain' is compromised, then either you're truly paranoid, or we are all doomed :-)
[1] I really like Forth (aside from traditional use-cases, it makes a great souped-up calculator DSL), but I don't think it's the tool for this job unless you really do want a 'start from bare metal' proof. If you do, then it could be a way to get there faster than raw assembly.