Use new hints.mostly-unused
#1491
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Most users of the
rustix
crate will use a fraction of its API surfacearea.
Nightly rustc provides an option
-Zhint-mostly-unused
to tell it todefer as much compilation as possible, which provides a substantial
performance improvement if most of that compilation doesn't end up
happening. Cargo plumbs this option through using the new
[hints]
table. This will cause users of the
rustix
crate to default to settinghint-mostly-unused
. (Top-level crates can override this if they wish,using a new profile option.)
Note that setting this hint does not increase the MSRV of the rustix
crate, as old versions of Cargo will ignore it. New versions of Cargo
will respect it automatically (and, until we stabilize it, Cargo will do
nothing unless you pass
-Zprofile-hint-mostly-unused
to cargo).Some sample performance numbers: this takes
rustix
compilation timewith
all-apis
enabled from 5.9s to 4.3s (a 27% improvement).