Skip to content

feat(hints): support minimum optimization levels - #17368

Merged
0xPoe merged 4 commits into
rust-lang:masterfrom
0xPoe:hint-min-opt-level
Oct 6, 2026
Merged

0xPoe merged 4 commits into
rust-lang:masterfrom
0xPoe:hint-min-opt-level

Conversation

@0xPoe

@0xPoe 0xPoe commented Aug 16, 2026 •

Copy link
Copy Markdown
Member

View all comments

What does this PR try to resolve?

ref #17334

This PR would allow Rust library to provide a simple hint about the minimum opt-level to build them with via the hint.min-opt-level setting in the manifest.

How to test and review this PR?

Check the unit tests and review it commit by commit.

r?@ghost

@0xPoe 0xPoe changed the title feat(hints): support minimum optimization levels WIP: feat(hints): support minimum optimization levels Aug 16, 2026
@0xPoe 0xPoe changed the title WIP: feat(hints): support minimum optimization levels WIP(Not Ready For Review): feat(hints): support minimum optimization levels Aug 16, 2026
@rustbot rustbot added A-build-execution Area: anything dealing with executing the compiler A-cargo-targets Area: selection and definition of targets (lib, bins, examples, tests, benches) A-documenting-cargo-itself Area: Cargo's documentation A-manifest Area: Cargo.toml issues A-profiles Area: profiles A-unstable Area: nightly unstable support labels Aug 18, 2026
@0xPoe
0xPoe force-pushed the hint-min-opt-level branch 7 times, most recently from b532a3f to 2b19c48 Compare August 21, 2026 07:18

@0xPoe 0xPoe left a comment •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔢 Self-check (PR reviewed by myself and ready for feedback)

  • Code compiles successfully

  • Unit tests added

  • No AI-generated elegant nonsense in PR.

  • Comments added where necessary

  • PR title and description updated

  • Documentation updated

  • PR size is reasonable

r?@joshtriplett

View changes since this review

Comment thread crates/cargo-util-schemas/Cargo.toml Outdated
Comment thread crates/cargo-util-schemas/manifest.schema.json
Comment thread src/workspace/profiles.rs Outdated
@0xPoe 0xPoe changed the title WIP(Not Ready For Review): feat(hints): support minimum optimization levels feat(hints): support minimum optimization levels Aug 21, 2026
@0xPoe
0xPoe marked this pull request as ready for review August 21, 2026 07:20
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 21, 2026
Comment thread doc/book/src/reference/unstable.md
Comment thread doc/book/src/reference/unstable.md Outdated
Comment thread src/compiler/mod.rs Outdated
Comment thread src/workspace/profiles.rs
Comment thread tests/testsuite/hints.rs
Comment thread tests/testsuite/hints.rs
Comment thread tests/testsuite/hints.rs
@rustbot

This comment has been minimized.

@0xPoe
0xPoe force-pushed the hint-min-opt-level branch 2 times, most recently from 14ab0ce to 415812c Compare August 26, 2026 07:53
@0xPoe
0xPoe force-pushed the hint-min-opt-level branch from 8ad3d1f to e720ead Compare September 22, 2026 08:26
@0xPoe 0xPoe changed the title WIP: feat(hints): support minimum optimization levels feat(hints): support minimum optimization levels Sep 22, 2026
@0xPoe
0xPoe requested a review from epage September 22, 2026 08:27
@0xPoe
0xPoe marked this pull request as ready for review September 22, 2026 08:27
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 22, 2026
@rustbot

This comment has been minimized.

@0xPoe
0xPoe force-pushed the hint-min-opt-level branch 2 times, most recently from d490827 to 1da3c9b Compare October 4, 2026 19:26
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@epage epage left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to merge one the conflicts are resolved

View changes since this review

0xPoe added 4 commits October 6, 2026 17:48
Record the current ignored-hint behavior across
the RFC precedence, scope, validation, and boundary cases.

Signed-off-by: 0xPoe <poe.liu@pm.me>
Validating `hints.min-opt-level` only needs the manifest, so run it as a
package rule in the parse pass instead of walking the pre-build unit
graph. Non-member path dependencies stop being diagnosed, matching how
unused manifest keys and unknown hints are already reported.

Signed-off-by: 0xPoe <poe.liu@pm.me>
Signed-off-by: 0xPoe <poe.liu@pm.me>
@0xPoe
0xPoe force-pushed the hint-min-opt-level branch from 1da3c9b to f7c737e Compare October 6, 2026 15:50
@rustbot

rustbot commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@0xPoe
0xPoe enabled auto-merge October 6, 2026 15:51
@0xPoe

0xPoe commented Oct 6, 2026

Copy link
Copy Markdown
Member Author

Thanks for your review! 💚 💙 💜 💛 ❤️

@0xPoe
0xPoe added this pull request to the merge queue Oct 6, 2026
Merged via the queue into rust-lang:master with commit 77c9303 Oct 6, 2026
29 checks passed
@0xPoe
0xPoe deleted the hint-min-opt-level branch October 6, 2026 17:05
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 6, 2026
rust-bors Bot pushed a commit to rust-lang/rust that referenced this pull request Oct 7, 2026
Update cargo submodule

11 commits in f3865b2a4d1acc5276f6b3c67d0e057f4dab3928..45c3aacf0e8dabdcdb6b7b518db100061d6367a7
2026-09-29 19:58:08 +0000 to 2026-10-06 16:29:08 +0000
- feat(pkgid-spec): Builtin package spec parsing and formatting (rust-lang/cargo#17539)
- feat(hints): support minimum optimization levels (rust-lang/cargo#17368)
- Use trusted publishing for Cargo crates (rust-lang/cargo#17426)
- feat(trim-paths): stabilize `profile.trim-paths` (rust-lang/cargo#17488)
- fix(pkgid): avoid panic on malformed protocol URLs (rust-lang/cargo#17548)
- fix(git)!: Default to net.git-fetch-with-cli if git is present (rust-lang/cargo#17329)
- Improved testsuite file permissions cleanup (rust-lang/cargo#17547)
- docs(guide): Give an example of checking for stale lockfile (rust-lang/cargo#17546)
- Add new peak memory table to cargo timings enabled via `-Zmem-stats` (rust-lang/cargo#17531)
- docs(changlog): Update 1.100.0 to reflect a beta backport (rust-lang/cargo#17542)
- feat(lint): Making the lint name a terminal hyperlink to docs (rust-lang/cargo#17538)
rust-bors Bot pushed a commit to rust-lang/rust that referenced this pull request Oct 7, 2026
Update cargo submodule

11 commits in f3865b2a4d1acc5276f6b3c67d0e057f4dab3928..45c3aacf0e8dabdcdb6b7b518db100061d6367a7
2026-09-29 19:58:08 +0000 to 2026-10-06 16:29:08 +0000
- feat(pkgid-spec): Builtin package spec parsing and formatting (rust-lang/cargo#17539)
- feat(hints): support minimum optimization levels (rust-lang/cargo#17368)
- Use trusted publishing for Cargo crates (rust-lang/cargo#17426)
- feat(trim-paths): stabilize `profile.trim-paths` (rust-lang/cargo#17488)
- fix(pkgid): avoid panic on malformed protocol URLs (rust-lang/cargo#17548)
- fix(git)!: Default to net.git-fetch-with-cli if git is present (rust-lang/cargo#17329)
- Improved testsuite file permissions cleanup (rust-lang/cargo#17547)
- docs(guide): Give an example of checking for stale lockfile (rust-lang/cargo#17546)
- Add new peak memory table to cargo timings enabled via `-Zmem-stats` (rust-lang/cargo#17531)
- docs(changlog): Update 1.100.0 to reflect a beta backport (rust-lang/cargo#17542)
- feat(lint): Making the lint name a terminal hyperlink to docs (rust-lang/cargo#17538)
rust-bors Bot pushed a commit to rust-lang/rust that referenced this pull request Oct 8, 2026
Update cargo submodule



15 commits in f3865b2a4d1acc5276f6b3c67d0e057f4dab3928..29c5daa1afc262323364e039bb70c83372cc702c
2026-09-29 19:58:08 +0000 to 2026-10-07 22:13:48 +0000
- test: mark requiring ssh for tests shelling out to it (rust-lang/cargo#17563)
- chore(deps): update msrv (rust-lang/cargo#17532)
- fix(rustdoc): suppress edition unspecified warnings (rust-lang/cargo#17557)
- chore(deps): update cargo-semver-checks to v0.51.0 (rust-lang/cargo#17553)
- feat(pkgid-spec): Builtin package spec parsing and formatting (rust-lang/cargo#17539)
- feat(hints): support minimum optimization levels (rust-lang/cargo#17368)
- Use trusted publishing for Cargo crates (rust-lang/cargo#17426)
- feat(trim-paths): stabilize `profile.trim-paths` (rust-lang/cargo#17488)
- fix(pkgid): avoid panic on malformed protocol URLs (rust-lang/cargo#17548)
- fix(git)!: Default to net.git-fetch-with-cli if git is present (rust-lang/cargo#17329)
- Improved testsuite file permissions cleanup (rust-lang/cargo#17547)
- docs(guide): Give an example of checking for stale lockfile (rust-lang/cargo#17546)
- Add new peak memory table to cargo timings enabled via `-Zmem-stats` (rust-lang/cargo#17531)
- docs(changlog): Update 1.100.0 to reflect a beta backport (rust-lang/cargo#17542)
- feat(lint): Making the lint name a terminal hyperlink to docs (rust-lang/cargo#17538)
@rustbot rustbot added this to the 1.101.0 milestone Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-build-execution Area: anything dealing with executing the compiler A-cargo-targets Area: selection and definition of targets (lib, bins, examples, tests, benches) A-documenting-cargo-itself Area: Cargo's documentation A-manifest Area: Cargo.toml issues A-profiles Area: profiles A-unstable Area: nightly unstable support S-waiting-on-author Status: The marked PR is awaiting some action (such as code changes) from the PR author.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants