|
|
|
|
|
by Tobu
1582 days ago
|
|
The compiler itself is fine and its performance well managed, with weekly perf triage and efforts driven by profiling[1], but because adding dependencies is effortless and vetting them isn't, dependency trees tend to get large if not careful. In particular, widely used proc-macros (code transformations pulled by popular packages like serde, clap, tokio…) add very heavy dependencies (like syn) to the critical path. As a consequence, downloading and installing a tool from source is often a poor experience. As far as development experience, cargo clippy / cargo check / rust-analyzer give you the feedback you need without involving codegen (except for any proc-macros in your dependency tree), and incremental compilation makes codegen faster after the first build. Work is also ongoing[2] to make debug-quality codegen faster. Here is a quality article on the art of keeping a Rust project fast to build:
https://matklad.github.io/2021/09/04/fast-rust-builds.html The overall series on organizing a large project is worth reading as well:
https://matklad.github.io/2021/09/05/Rust100k.html [1]: https://nnethercote.github.io/2021/11/12/the-rust-compiler-h... [2]: https://bjorn3.github.io/ |
|