6 ms·
Certainly that could be automated quite easily. I would assume that on such compilation farms that these systems generally use, this could be done very quickly
by Blikkentrekker 6y ago
Certainly that could be automated quite easily.
I would assume that on such compilation farms that these systems generally use, this could be done very quickly.
Perhaps there would be an interest for the Rustc team to provide a recursive automated setup that is capable of compiling the latest Rustc from OCaml, and finally from C as well since one must follow a similar process with OCaml.
- LegionMammal978 6y agoThe automation for this is actually trickier than it would first appear: especially with the earlier snapshots, a number of patches are needed to compile the LLVM interfaces written in C++. Also, due to linking issues, some snapshots require a stage2 compiler, while others can only use a stage1 compiler. I agree that it would be trivial once you have the chain in place, but that chain can only be built through trial and error.
- Blikkentrekker 6y agoAnd no one has done this before? Methinks that building this chain by trial and error is rather trivial compared to the actual work in building a compiler.
- sanxiyn 6y agoWe are discussing mrustc here. The reason it hasn't been done yet is that nearly everyone interested in this agrees mrustc is a better bootstrapping path than starting from the last OCaml version.
- Blikkentrekker 6y agoThat it's a better bootstrapping process for the user has no relationship with the ease of development for the developer. Typically, they are inversely correlated.
- qqii 6y agoGuix performed the bootstrap from mrustc 0.8 for rust 1.19 all the way to rust 1.28 in 2018: https://guix.gnu.org/en/blog/2018/bootstrapping-rust/ https://guix.gnu.org/en/blog/2018/bootstrapping-rust/ Since them they've bootstrapped this all the way to 1.50: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/rust.scm#n1454 https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages... The work done here is non trivial, this chain of versions are required for the final binary to be reproducible.
- tedunangst 6y agoAnd when you port to a new CPU architecture you're going to backport those changes to 200 obsolete versions as well?