arewefastyet
rustc_codegen_gcc
Our great sponsors
arewefastyet | rustc_codegen_gcc | |
---|---|---|
9 | 49 | |
19 | 864 | |
- | 1.9% | |
0.0 | 9.6 | |
about 1 year ago | 7 days ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
arewefastyet
-
Rust Support in the Linux Kernel
That page averages all the builds across different code bases. It doesnโt specify which version/tag of which code base, nor does it talk about the hardware.
https://arewefastyet.pages.dev/ - This page tracks compile times across some common crates over all supported compiler versions, with different hardware (2, 4, 8, 16 cores). This used to be https://arewefastyet.rs but the domain expired.
-
you cant defeat rust
https://arewefastyet.rs/ see benchmark
-
Rust programming language: We want to take it into the mainstream, says Facebook
You can check incremental compile times on http://arewefastyet.rs. Choose one compile mode (Debug OR Release, preferably Debug), one hardware config (4 cores let's say) and both profile modes (Clean, Incremental).
- Arewefastyet.rs โ benchmarking the Rust compiler over time
-
Reducing Rust Incremental Compilation Times on macOS by 70%
Compile times in rustc have been steadily improving with time, as shown here - https://arewefastyet.rs.
Every release doesn't make every workload faster, but over a long time horizon, the effect is clear. Rust 1.34 was released in April 2019 and since then many crates have become 33-50% faster to compile, depending on the hardware and the compiler mode (clean/incremental, check/debug/release).
Interestingly, the speedup mentioned in OP won't show up in these charts because that's a change on macOS and these benchmarks were recorded on Linux.
What is expected to be a gamechanger is the release of cranelift in 2021 or 2022. It's an alternate debug backend that promises much faster debug builds.
-
Rust compile speed
Yes plenty of effort goes into making Rust compilation faster, see https://arewefastyet.rs/, its FAQ, and some easy internet searches.
-
Announcing Rust 1.50.0
Thanks for your work on arewefastyet.rs, I was about to post a link to it haha
-
[ELI5]: How to write a simple custom Serde de/serializer?
I implemented something similar. Deserialising a comma separated strings into a struct - example. Hope that helps!
rustc_codegen_gcc
-
How hard would it be to port the Rust toolchain to a new non-POSIX OS written in Rust and get it to host its own development? What would that process entail?
Alternatively, there's another initiative called codegen_gcc which is about using GCC as a backend for the rustc compiler. It's (much) more advanced in Rust support, but I am not sure how easy it would be to use a modified libgccjit from there.
-
"Rust makes me never want to touch C again" -- Matthew Ahrens
In addition to what others have said about platform support, Rust is also on its way to gaining more platform support through rustc_codegen_gcc, the GCC codegen backend for rustc, as an alternative to the LLVM backend. That means many of the platforms GCC supports will suddenly become available with Rust.
-
Rust contributions for Linux 6.4 are finally merged upstream!
Yeah, rustc_codegen_gcc is a GCC backend for rustc, and its making a lot of good regular progress.
-
GCC 13 and the State of Gccrs
gcc-rs is one of two projects for bringing Rust to gcc. gcc-rs is the more ambitious of the two, with an entirely new frontend. There is also rustc_codegen_gcc (https://github.com/rust-lang/rustc_codegen_gcc) that keeps the rustc frontend, and only swaps out LLVM for GCC at the codegen stage.
-
rustc_codegen_gcc: Progress Report #22
Fixing unwinding in release mode is still ungoing. I could use some help here, so anyone with some understanding of unwinding, landing pads or GCC, please come on this issue to discuss this.
-
Any alternate Rust compilers?
Additionally, there is gcc codegen for rustc (https://github.com/rust-lang/rustc_codegen_gcc), which is not a compiler per se, but an alternative code generator, with more architectures supported and other nice things. It's also coming along, but there's still a lot of work to do there too. There's also Cranelift codegen (https://github.com/bjorn3/rustc_codegen_cranelift), which is designed to make debug builds faster, but this is not as exciting/useful as the other 2.
-
rustc_codegen_gcc: Progress Report #21
Good idea. I added the tag "help wanted" to the issue.
-
Challenges writing a compiler frontend targeting both LLVM and GCC?
Also, there are indeed ABI issues, e.g. for 128-bit integers and NaN.
-
A brave new world: building glibc with LLVM
I'm excited about both the backend & the frontend.
-
Rust front-end merged in GCC trunk
There is also a project for rustc to use GCC instead of LLVM for codegen.
What are some alternatives?
bevy - A refreshingly simple data-driven game engine built in Rust
gccrs - GCC Front-End for Rust
gdnative - Rust bindings for Godot 3
gcc-rust - a (WIP) Rust frontend for gcc / a gcc backend for rustc
veloren - An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World. This repository is a mirror. Please submit all PRs and issues on our GitLab page.
min-sized-rust - ๐ฆ How to minimize Rust binary size ๐ฆ
compiler-explorer - Run compilers interactively from your web browser and interact with the assembly
databend - ๐๐ฎ๐๐ฎ, ๐๐ป๐ฎ๐น๐๐๐ถ๐ฐ๐ & ๐๐. Modern alternative to Snowflake. Cost-effective and simple for massive-scale analytics. https://databend.com
sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
tch-rs - Rust bindings for the C++ api of PyTorch.
libgccjit-patches - Patches awaiting review for libgccjit