« BackAn Update on Gccrs Developmentlwn.netSubmitted by signa11 9 months ago
  • omoikane 9 months ago

    > the trademark rules around the language prevent it from being called a Rust compiler

    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)

    • cozzyd 9 months ago

      Patina?

    • duped 9 months ago

      To the "but why" comments, there are some legitimate questions about backends for LLVM - what targets does gcc support that it is easier to write a frontend for a complex language like Rust than add a backend for the desired targets?

      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.

      • SkiFire13 9 months ago

        You're assuming a new backend would have to be written for LLVM, but you can also write a codegen backend for rustc which uses GCC, this way you get almost the same benefits but without rewriting the whole frontend

        • kelsey98765431 9 months ago

          My money is on that last one. Don't GCC frontends usually come before a new LLVM backend?

          • ronsor 9 months ago

            In my personal experience, writing a compiler backend is hard regardless of whether you pick GCC or LLVM.

        • adastra22 9 months ago

          I think the “but why?” comments are on point. The reason for standardization in C/C++ (proprietary compilers) does not exist for rust. If you’re worried about breakage across compiler releases, then peg the compiler version. Modern tooling doesn’t gets the problems C/C++ standards and multiple implementations solve.

          I see not just zero but actual negative utility to a second rustic implementation.

          • MBCook 9 months ago

            Most kernels are compiled with GCC right? Being able to use LLVM is a recent in the grand scheme of things.

            I suspect being able to use GCC might help rust adoption in the kernel because it means people don’t have to use a second to compiler.

            • SkiFire13 9 months ago

              That doesn't require a whole new frontend, just a GCC backend will be enough. This is in fact already being worked on with rustc_codegen_gcc https://github.com/rust-lang/rustc_codegen_gcc

              • MBCook 9 months ago

                But that still requires the rust compiler doesn’t it? So that’s still two compilers.

                • SkiFire13 9 months ago

                  That works with rustc, so you only need one rust compiler frontend as opposed to two.

                  • MBCook 9 months ago

                    There wouldn’t be two rust compilers.

                    But you still need GCC + rustc to compile the full kernel. And that’s what was suggesting was an issue. I suspect people want to be able to use only GCC.

                    • SkiFire13 9 months ago

                      The difference would be using GCC frontend + GCC backend vs rustc frontend + GCC backend. You don't really use "more" compilers with rustc_codegen_gcc, except in name only. However I do realize that people often care about these little details.

              • adastra22 9 months ago

                I would have no problem if it was a compiler for a kernel-specific variant or subset of the rust language, and only used for that project. That actually sounds like a good way of moving forward.

                But they’re talking about making a second implantation for the purpose of quirks documentation and standardization. Rust doesn’t need that.

              • sham1 9 months ago

                In my opinion at least, having a way to bootstrap rustc and the rust ecosystem is quite nice, as more and more projects start using the language.

                And having multiple bootstrapping methods just makes it nicer. Helps with efforts like those of GNU Guix and other similar projects[0] that want to be able to have proper provenance for packages. Could help mitigate certain classes of supply chain attacks. (Even if not eliminate them completely!)

                [0]: <https://bootstrappable.org/>

                • baq 9 months ago

                  If the only win was being able to build a recent rustc on a new architecture without having to build 50 versions it’s still positive.

                  • adastra22 9 months ago

                    This isn’t the best way towards doing that though. Either use a rust -> C transpiler, or a llvm -> C compiler. Both of those projects already exist btw.

                • undefined 9 months ago
                  [deleted]