4 ms·
This is a GCC codegen backend for rustc, so it gets to reuse the existing Rust frontend for free, but benefits from GCC's optimizations and support for more tar
by tux3 5y ago
This is a GCC codegen backend for rustc, so it gets to reuse the existing Rust frontend for free, but benefits from GCC's optimizations and support for more target architectures.
Contrast with GCC Rust (https://thephilbert.io/2021/05/14/gcc-rust-weekly-status-report-15/ https://thephilbert.io/2021/05/14/gcc-rust-weekly-status-rep...), which is attacking the problem from the other side by building a GCC Rust frontend in C++.
That one will help with bootstrapping, which currently has to go through mrustc and many rustc builds.
It's very nice to see both of these progressing :)
- pedrocr 5y agoSeems like mrustc is up to 1.39: https://github.com/thepowersgang/mrustc https://github.com/thepowersgang/mrustc Does the bootstrapping require every single step up to the current rustc or can it skip some steps?
- anp 5y agoIt looks like this bootstrap chain script goes through each stable version in turn, although it hasn’t been updated to latest mrustc: https://android.googlesource.com/platform/prebuilts/rust/+/refs/tags/android-mainline-11.0.0_r3/bootstrap/ https://android.googlesource.com/platform/prebuilts/rust/+/r....
- madars 5y agoYou can bootstrap up at least 1.50 https://gitlab.com/stikonas/gentoo-bootstrap/-/tree/master/dev-lang/rust https://gitlab.com/stikonas/gentoo-bootstrap/-/tree/master/d... (latest release is 1.52.1 so not too far off)
- yjftsjthsd-h 5y ago> Contrast with GCC Rust (https://thephilbert.io/2021/05/14/gcc-rust-weekly-status-rep https://thephilbert.io/2021/05/14/gcc-rust-weekly-status-rep...), which is attacking the problem from the other side by building a GCC Rust frontend in C++. That one will help with bootstrapping, which currently has to go through mrustc and many rustc builds. Wouldn't it depend on what kind of bootstrapping? It doesn't help with trusting trust, but rustc frontend + gcc backend would help with porting to a new platform, wouldn't it?
- sanxiyn 5y agoYes it would help with porting to a platform which is supported by GCC but not supported by LLVM. For a new platform it doesn't change anything. By definition neither GCC nor LLVM supports a new platform since it is new.
- deleted 5y ago[deleted]
- est31 5y ago> Contrast with GCC Rust (https://thephilbert.io/2021/05/14/gcc-rust-weekly-status-rep https://thephilbert.io/2021/05/14/gcc-rust-weekly-status-rep...), which is attacking the problem from the other side by building a GCC Rust frontend in C++. That one will help with bootstrapping, which currently has to go through mrustc and many rustc builds. Note that GCC Rust won't help any more with bootstrapping than mrustc can help. Getting one rustc version to compile is only the start of a long process of following the evolution of the language and implementing weird implementation behaviours the compiler now relies on for its own compilation. You have to provide constant upkeep, and for that both mrustc and GCC Rust are suited equally well. On the other hand, rustc_codegen_gcc is way better suited for following the moving target, but obviously it can't be used for bootstrapping as it's written in Rust.