Also great question about using nightly, we're using a shared-generics flag that requires nightly (and speeds up build times).
We're working on making this more configurable to enable / disable what features you want.
Yeah, I skipped over this, considering that most people doing rust dev will likely have some kind of SSD.
I didn't look into how you went about doing this, but one thing that I'd like is to be able to move the target/ directory on a ram disk, or, generally, out of the source root [0]. If Fleet were able to do this transparently, it would be really great.
---
[0] I know it's possible to define an external directory, but it applies to all projects, and it's not what I want, because shared crates would go overwrite each other.
The reason I'm asking is that I use the IntelliJ plugin for Rust dev which is kind of clunky and only understands a few commands as being "build", so it doesn't show the build window.
Our go-to linker was actually mold until we realized that their license is not compatible with ours.
We also use shared-generics to try to speed up builds, along with the ramdisk that I previously mentioned.
sccache: https://github.com/mozilla/sccache#usage
mold: https://github.com/rui314/mold#how-to-use
My own cargo.toml:
[build]
rustc-wrapper = "/usr/bin/sccache"
[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=/usr/bin/mold"]
Does it do anything else besides using sccache and lld/zld? I'd expect so, since these tools don't require rust nightly, whereas fleet does.
---
Edit:
After a quick look over the code, it also sets codegen units to 256, but doesn't seem to do anything else.
I see the same improvements adding manually sccache and mold to ~/.cargo/config.toml when building volt, without touching the repo's Cargo.toml.
standard rust config: 1m20s
sccache + mold: 30s
I ran the tests with Rust 1.60.0, on Linux, on an AMD 5850U (6 core, mobile).