[HN Gopher] Rustc_codegen_GCC can now run libcore's tests and pa...
       ___________________________________________________________________
        
       Rustc_codegen_GCC can now run libcore's tests and pass most of them
        
       Author : todsacerdoti
       Score  : 107 points
       Date   : 2021-05-23 20:57 UTC (2 hours ago)
        
 (HTM) web link (blog.antoyo.xyz)
 (TXT) w3m dump (blog.antoyo.xyz)
        
       | riskable wrote:
       | Anyone have any comparison benchmarks? I'd love to see how GCC
       | measures up to LLVM when it comes to Rust binaries.
       | 
       | I'm also curious if the resulting binary size is any different.
        
         | bluejekyll wrote:
         | The article says, "This project is currently at the point where
         | many programs can be compiled, but run incorrectly," so
         | comparing benchmarks at this point would probably be very
         | misleading.
        
         | Narishma wrote:
         | It's too soon for that.
        
       | [deleted]
        
       | tux3 wrote:
       | 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-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 wrote:
         | Seems like mrustc is up to 1.39:
         | 
         | https://github.com/thepowersgang/mrustc
         | 
         | Does the bootstrapping require every single step up to the
         | current rustc or can it skip some steps?
        
           | anp wrote:
           | It 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/preb
           | uilts/rust/+/r....
        
             | madars wrote:
             | You can bootstrap up at least 1.50
             | https://gitlab.com/stikonas/gentoo-
             | bootstrap/-/tree/master/d... (latest release is 1.52.1 so
             | not too far off)
        
         | yjftsjthsd-h wrote:
         | > Contrast with GCC Rust
         | (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?
        
         | [deleted]
        
         | est31 wrote:
         | > Contrast with GCC Rust
         | (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.
        
       ___________________________________________________________________
       (page generated 2021-05-23 23:01 UTC)