An Update on Gccrs Development
The gccrs project, a Rust frontend for GCC, has made significant progress, reducing upstream commits to 40, focusing on key features, and aims to compile the Rust core library despite challenges.
Read original articleThe development of gccrs, a Rust frontend for the GCC compiler, is progressing, addressing concerns about the lack of multiple compilers for Rust. Pierre-Emmanuel Patry provided an update at the 2024 GNU Tools Cauldron, noting that the project, which restarted in 2019, has made significant strides since its inception. Initially targeting Rust version 1.49, gccrs has been included in GCC since version 14, although documentation was not part of that release. The number of commits needing upstreaming has decreased from over 800 to 40, indicating progress. The team, supported by three Google Summer of Code interns, has focused on critical features such as inline assembly support, a test-suite adapter, and borrow checking. The immediate goal is to enable gccrs to compile the Rust core library, which has proven challenging due to experimental features in the library. While the compiler is currently slow, the developers aim to improve performance after achieving feature completeness. Long-term objectives include catching up to Rust version 1.78 and eventually building the standard library. However, the project faces challenges due to limited developer resources and a lack of industry support, which could hinder its potential to provide a second compiler for Rust.
- The gccrs project aims to create a Rust frontend for the GCC compiler.
- Significant progress has been made, reducing the number of upstream commits from over 800 to 40.
- Key features being developed include inline assembly support and a test-suite adapter.
- The immediate goal is to compile the Rust core library, which has encountered various challenges.
- The project requires more industry support to succeed and provide a viable alternative to the existing Rust compiler.
Related
Rust on Dreamcast
Rust, a popular systems programming language, is being adapted for Dreamcast's SuperH architecture. Developers can use rustc_codegen_gcc and gccrs to compile Rust programs with core and alloc support. Ongoing improvements aim for full std functionality.
Rust GPU Transitions to Community Ownership
The Rust GPU project has moved to community ownership to improve GPU programming in Rust, focusing on GPU compute and GPGPU programming, with goals for better stability and integration into the Rust compiler.
Linux-for-Rust or Rust-for-Linux
The integration of Rust into the Linux kernel faces skepticism over usability, performance, and support issues, while some developers advocate for its potential, citing successful implementations and the need for better compiler support.
(Re)Using rustc components in gccrs
The gccrs project is developing an alternative Rust compiler by integrating components from rustc, starting with rustc_parse_format and planning to include polonius, while addressing internal representation challenges.
Speeding up the Rust compiler without changing its code (2022)
Efforts to enhance the Rust compiler's performance include expanding PGO profiling, updating LLVM, and refining benchmarks. Challenges on macOS hinder progress, but improvements in profiling precision show potential for optimization.
Maybe they can call it a Crab compiler, see also:
https://news.ycombinator.com/item?id=36122270 - Rust has been forked to the Crab Language (2023-05-30)
I can think of some plausible reasons, like:
- The backends were contributed by people that have no interest in writing another backend in a different compiler framework or are retired/dead/not paid to do it anymore and no one knows the intracies anymore
- Implementing a backend for LLVM is actually harder than writing a new frontend for GCC due to the instability of LLVM IR
But I'm interested what others think. It seems like the industry could burn the candle from both ends, as it were.
I see not just zero but actual negative utility to a second rustic implementation.
Related
Rust on Dreamcast
Rust, a popular systems programming language, is being adapted for Dreamcast's SuperH architecture. Developers can use rustc_codegen_gcc and gccrs to compile Rust programs with core and alloc support. Ongoing improvements aim for full std functionality.
Rust GPU Transitions to Community Ownership
The Rust GPU project has moved to community ownership to improve GPU programming in Rust, focusing on GPU compute and GPGPU programming, with goals for better stability and integration into the Rust compiler.
Linux-for-Rust or Rust-for-Linux
The integration of Rust into the Linux kernel faces skepticism over usability, performance, and support issues, while some developers advocate for its potential, citing successful implementations and the need for better compiler support.
(Re)Using rustc components in gccrs
The gccrs project is developing an alternative Rust compiler by integrating components from rustc, starting with rustc_parse_format and planning to include polonius, while addressing internal representation challenges.
Speeding up the Rust compiler without changing its code (2022)
Efforts to enhance the Rust compiler's performance include expanding PGO profiling, updating LLVM, and refining benchmarks. Challenges on macOS hinder progress, but improvements in profiling precision show potential for optimization.