I am pretty "eh" about gcc-rs but my position is that if it lacks a borrow checker, it's not actually a Rust implementation, it's a codegen backend for an extremely exotic dialect of C and/or ML.
Rejecting incorrect yet well-formed programs is a primary feature of Rust.
Conversation
I assume there's an intent to eventually do that, but the key aspect of the language is that it admits static analysis of lifetime correctness ("borrow checking") not that you have to spend time doing static analysis every time you compile.
1
4
doc.rust-lang.org/reference/cond would be a major issue if you're type checking different code than you're using for your actual builds. You would need to be very sure that the target configuration is exactly the same for rustc and GCC if you're relying on rustc to type check the code.
1
4
In order to properly use rustc to perform the type/borrow checking, you would need it to support the platform in the frontend even if it lacks a backend for it.
If there was a rustc GCC backend, you could use it to bootstrap on a platform supported by GCC without a GCC frontend.
2
2
I still see people complaining that there are some legacy or weird embedded platforms supported by GCC and not LLVM. I'm not sure what those are specifically. From my perspective any serious architecture worth supporting will have a community to port GCC, LLVM and a lot more.
2
1
Ever heard of ESP32 (xtensa ISA)? AVR (Arduino & many CNC&3DP control boards)? Etc. Not everything is a Linux cloud server or phone.
1
It has at least experimental support for them and it would be a dramatically smaller project to bring those up to the quality required by the people wanting to use Rust on those platforms. There's a lot more than Rust using LLVM and those things are increasing in usage too.
rustc supports having other backends:
rustc-dev-guide.rust-lang.org/backend/backen
The use case for an alternate frontend would be providing an alternate bootstrap path, but you really don't need to be able to bootstrap on each platform that's supported. Rust has nice LLVM-style cross-compilation.
2
3
Show replies


