this post was submitted on 24 Mar 2024
23 points (92.6% liked)

Rust

5938 readers
1 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] BB_C@programming.dev 9 points 7 months ago (6 children)

Users can now use Cranelift as the code-generation backend for debug builds of projects written in Rust

Didn't read the rest. But this is clearly inaccurate, as most Rustaceans probably already know.

Cranelift can be used in release builds. The performance is not competitive with LLVM. But some projects are completely useless (too slow) when built with the debug profile. So, some of us use a special release profile where Cranelift backend is used, and debug symbols are not stripped. This way, one can enjoy a quicker edit/compile/debug cycle with usable, if not the best, performance in built binaries.

[–] Vorpal@programming.dev 0 points 7 months ago (1 children)

Please, send an email to lwn@lwn.net to report this issue to them, they usually fix things quickly.

[–] BB_C@programming.dev 4 points 7 months ago

I read the rest of the article, and it appears to have been partially written before support for codegen backends landing in cargo.

The latest progress report from bjorn3 includes additional details on how to configure Cargo to use the new backend by default, without an elaborate command-line dance.

That "latest progress report" has the relevant info ;)

So, basically, you would add this to the top of Cargo.toml:

cargo-features = ["codegen-backend"]

Then add a custom profile, for example:

[profile.release-dev-cl]
inherits = "release"
lto = "off"
debug = "full"
codegen-backend = "cranelift"

Then build with:

cargo build --profile release-dev-cl
load more comments (4 replies)