4 ms·
> There are plans to extend mrustc to support newer Rust, but it turned out to be difficult. Was some feature added to rust 1.20.0 that was particularly diffic
by yoklov 8y ago
> There are plans to extend mrustc to support newer Rust, but it turned out to be difficult.
Was some feature added to rust 1.20.0 that was particularly difficult to implement? Or is this just a 'have to stop somewhere' situation.
- steveklabnik 8y agoMy understanding is that the goal was to break the bootstrap chain, and so once that was done, there wasn’t a ton of reasons to keep working on it. mrustc is effectively written entirely by one person: https://github.com/thepowersgang/mrustc/graphs/contributors https://github.com/thepowersgang/mrustc/graphs/contributors It's extremely impressive, but I can also understand why trying to keep up doesn't make a ton of sense.
- Twirrim 8y agoPresumably the drawback here is that rust is going to take an increasing amount of time to bootstrap on these platforms. You're releasing about 8 a year (excluding bug fix releases), each of which is necessary to compile the next one, and so on down the line? That sounds like it's going to get extremely nasty, really quickly.
- mmastrac 8y agoOnce you've bootstrapped a single platform a certain number of times with the exact same compiler output through a diverse-enough set of toolchains, you can start to trust that the entire toolchain (including hardware) is secure and simply release hashes of those diversely-compiled binaries as trusted roots for faster rebuilds (ie: nightlies).
- steveklabnik 8y agoThat’s assuming that someone wants to fully bootstrap. Only a very, very small number of people actually do this, and since this is all about trust anyway, it all depends on your level of paranoia. mrustc has already bootstrapped a byte-identical rustc from the mainline, that in and of itself is good enough for many. Even Debian didn’t do a full bootstrap from the OCaml days. It’s all about trust. If you want to be mega paranoid, then yeah it’s gonna be a lot of work. But that always is. This whole thing is only an issue for a very small number of people. Those people are important! But it’s a tradeoff, like everything.