Announcement

Collapse
No announcement yet.

GCC Rust Front-End v4 Posted - Now Cleared For Merging In GCC 13

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GCC Rust Front-End v4 Posted - Now Cleared For Merging In GCC 13

    Phoronix: GCC Rust Front-End v4 Posted - Now Cleared For Merging In GCC 13

    The GCC Rust front-end that provides very preliminary support for the Rust programming language atop the GNU Compiler Collection is now cleared for merging to the mainline codebase!..

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Getting the popcorn

    Comment


    • #3
      They already stated that for the borrow checker, which is only needed at compile time, they want to use a external tool.

      This is the borrow checker they want to use https://github.com/rust-lang/polonius

      As sooner as this is merged, the better. It is a necessity for compiling Linux rust modules and pushes Rust's Org to standardize the language which benefits all.

      Comment


      • #4
        Originally posted by Alexmitter View Post
        They already stated that for the borrow checker, which is only needed at compile time, they want to use a external tool.
        It is a bit weird to read someone specify something is only needed at compile time when talking about compiler patches. That should be a given.

        Comment


        • #5
          Originally posted by Alexmitter View Post
          They already stated that for the borrow checker, which is only needed at compile time, they want to use a external tool.

          This is the borrow checker they want to use https://github.com/rust-lang/polonius

          As sooner as this is merged, the better. It is a necessity for compiling Linux rust modules and pushes Rust's Org to standardize the language which benefits all.
          It's more a library wrapped in a test jig than a tool. Polonius is the in-development "version 3.0" of the official rustc borrow checker (with Non-Lexical Lifetimes being "version 2.0"), so the idea is that, rather than writing their own clone of borrow-checking, they want to reuse the rustc implementation and provide a bootstrappable hybrid C++-Rust compiler in a manner similar to the mrustc bootstrapping compiler. (By initially building the borrow-checker in a "trust that this code is correct" mode without borrow-checking it, with only g++ as a dependency, then using the resulting compiler to re-bootstrap itself with borrow-checking enabled.)

          Basically, before NLL landed, there were three solvable cases they identified that it would fix, but the third turned out to be complicated enough to write a prover for that they deferred it. Polonius being the deferred solution for that third class of NLL borrow checks.
          Last edited by ssokolow; 06 December 2022, 09:38 AM.

          Comment


          • #6
            Originally posted by Alexmitter View Post
            As sooner as this is merged, the better. It is a necessity for compiling Linux rust modules and pushes Rust's Org to standardize the language which benefits all.
            No, it's not a necessity. Rust will only be used in the beginning for platform-specific drivers, where LLVM is already available. And even for other platforms, the project you want to follow is https://github.com/rust-lang/rustc_codegen_gcc, where rustc uses GCC as a backend for code generation.

            As for standardization, that's nice, but it didn't prevent C and C++ from having dozens of incompatible implementations.

            Comment


            • #7
              Originally posted by GrayShade View Post

              No, it's not a necessity. Rust will only be used in the beginning for platform-specific drivers, where LLVM is already available. And even for other platforms, the project you want to follow is https://github.com/rust-lang/rustc_codegen_gcc, where rustc uses GCC as a backend for code generation.
              To add to this, rustc_codegen_gcc recently passed 100% for the x86_64 simd test suite. For a more complete status check out the following link:

              https://www.reddit.com/r/rust/commen...rt_18/iz0con7/
              Last edited by oleid; 06 December 2022, 11:24 AM.

              Comment


              • #8
                Originally posted by oleid View Post

                To add to this, rustc_codegen_gcc recently passed 100% for the x86_64 simd test suite. For a more complete status check out the following link:

                https://www.reddit.com/r/rust/commen...rt_18/iz0con7/
                That's great. It looks like unwinding is the most important missing feature before it's actually usable.

                Comment


                • #9
                  What is the systemd_rust game engine for linux+android that everyone loves ?

                  Comment


                  • #10
                    Buggy rust code coming to a system near you

                    Comment

                    Working...
                    X