Skip to content

Conversation

@petrochenkov
Copy link
Contributor

@petrochenkov petrochenkov commented Oct 22, 2025

So in cross-crate scenarios they can work in the same way as in crate-local scenarios.

Change Description: #147984 (comment)

Resurrection of #114682.
One of unblocking steps for #145108.
Fixes #36837.

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Oct 22, 2025
@rustbot
Copy link
Collaborator

rustbot commented Oct 22, 2025

r? @jdonszelmann

rustbot has assigned @jdonszelmann.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@petrochenkov
Copy link
Contributor Author

@bors try

rust-bors bot added a commit that referenced this pull request Oct 22, 2025
resolve: Preserve ambiguous glob reexports in crate metadata
@rust-bors

This comment has been minimized.

@petrochenkov petrochenkov added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 22, 2025
@petrochenkov
Copy link
Contributor Author

cc @LorrensP-2158466 @bvanjoi

@rust-bors
Copy link
Contributor

rust-bors bot commented Oct 22, 2025

☀️ Try build successful (CI)
Build commit: b4c5508 (b4c55082edd8dec08ce8af276d7054d9c4db20c4, parent: f5e2df741b4a9820a7579f0c8eccc951706a8782)

@petrochenkov
Copy link
Contributor Author

@craterbot check

@craterbot
Copy link
Collaborator

👌 Experiment pr-147984 created and queued.
🤖 Automatically detected try build b4c5508
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🚧 Experiment pr-147984 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-147984 is completed!
📊 2312 regressed and 2 fixed (721923 total)
📊 1766 spurious results on the retry-regessed-list.txt, consider a retry1 if this is a significant amount.
📰 Open the summary report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Footnotes

  1. re-run the experiment with crates=https://crater-reports.s3.amazonaws.com/pr-147984/retry-regressed-list.txt

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Oct 24, 2025
@petrochenkov petrochenkov added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 24, 2025
@petrochenkov
Copy link
Contributor Author

That's a lot of breakage.
Mostly from dependencies, including various version of openssl that we've seen previously.
I'll demote this error to always be reported as a lint in cross-crate scenarios, and then rerun crater.

@rustbot

This comment has been minimized.

@petrochenkov
Copy link
Contributor Author

@bors try

@craterbot run mode=check-only p=1 crates=https://crater-reports.s3.amazonaws.com/pr-147984/retry-regressed-list.txt

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Oct 24, 2025
resolve: Preserve ambiguous glob reexports in crate metadata
@petrochenkov petrochenkov added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 24, 2025
@rust-bors
Copy link
Contributor

rust-bors bot commented Oct 24, 2025

☀️ Try build successful (CI)
Build commit: c6359cd (c6359cd3b4418e8472bae1a89c242796f2b86d56, parent: 75948c8bb3bd37f1e8ee20273a04edea4c1f84f8)

@petrochenkov
Copy link
Contributor Author

@craterbot
Copy link
Collaborator

👌 Experiment pr-147984-1 created and queued.
🤖 Automatically detected try build c6359cd
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@yaahc
Copy link
Member

yaahc commented Dec 8, 2025

go ahead and r=me once the issue with the diagnostic on the globvsexpanded test is corrected.

@yaahc
Copy link
Member

yaahc commented Dec 8, 2025

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 8, 2025
So in cross-crate scenarios they can work in the same way as in crate-local scenarios.
@rustbot
Copy link
Collaborator

rustbot commented Dec 9, 2025

This PR was rebased onto a different main 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.

@petrochenkov
Copy link
Contributor Author

@bors r=yaahc

@bors
Copy link
Collaborator

bors commented Dec 9, 2025

📌 Commit 51780a5 has been approved by yaahc

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Dec 9, 2025
@bors
Copy link
Collaborator

bors commented Dec 9, 2025

⌛ Testing commit 51780a5 with merge c61a3a4...

@bors
Copy link
Collaborator

bors commented Dec 9, 2025

☀️ Test successful - checks-actions
Approved by: yaahc
Pushing c61a3a4 to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 9, 2025
@bors bors merged commit c61a3a4 into rust-lang:main Dec 9, 2025
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Dec 9, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 9, 2025

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing e2893f7 (parent) -> c61a3a4 (this PR)

Test differences

Show 52 test diffs

Stage 1

  • [ui] tests/ui/imports/ambiguous-glob-vs-expanded-extern.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/imports/ambiguous-glob-vs-expanded-extern.rs: [missing] -> pass (J0)

Additionally, 50 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard c61a3a44d1a5bee35914cada6c788a05e0808f5b --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. pr-check-1: 1663.0s -> 2020.4s (+21.5%)
  2. x86_64-gnu-llvm-20-2: 5110.6s -> 6097.8s (+19.3%)
  3. x86_64-gnu-llvm-20: 2399.9s -> 2836.2s (+18.2%)
  4. aarch64-apple: 9367.4s -> 10755.1s (+14.8%)
  5. x86_64-gnu-tools: 3169.7s -> 3613.6s (+14.0%)
  6. dist-apple-various: 4313.7s -> 4913.7s (+13.9%)
  7. i686-gnu-nopt-1: 7405.3s -> 8424.0s (+13.8%)
  8. x86_64-gnu-llvm-20-3: 5752.6s -> 6517.7s (+13.3%)
  9. x86_64-gnu-gcc: 3003.9s -> 3400.4s (+13.2%)
  10. aarch64-gnu-llvm-20-2: 2086.6s -> 2346.4s (+12.5%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (c61a3a4): comparison URL.

Overall result: ❌ regressions - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.3% [0.1%, 0.5%] 24
Regressions ❌
(secondary)
0.3% [0.2%, 0.7%] 13
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) 0.3% [0.1%, 0.5%] 24

Max RSS (memory usage)

Results (secondary 2.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
4.9% [4.5%, 5.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.9% [-0.9%, -0.9%] 1
All ❌✅ (primary) - - 0

Cycles

Results (secondary -3.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.2% [-3.2%, -3.2%] 1
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.2%, secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.2% [0.2%, 0.2%] 8
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [0.2%, 0.2%] 8

Bootstrap: 471.528s -> 471.772s (0.05%)
Artifact size: 388.98 MiB -> 389.00 MiB (0.00%)

@Kobzol
Copy link
Member

Kobzol commented Dec 16, 2025

Do you think there's something to be done about the regression? Seems like we are fundamentally doing more work here..

@petrochenkov
Copy link
Contributor Author

Yes, we are doing more work when there are ambiguous reexports.
diesel-2.2.10 in particular is known to have a lot of them.
tt-muncher is probably noise, it's often noisy, but perf-rlo seems to be partially down, I can't see the Detailed results.
The other regressions are tiny, not sure if any of them have ambiguous reexports.

@petrochenkov
Copy link
Contributor Author

cc @Razaekel
Together with diesel noise-0.7.0 is the largest source of ambiguous reexports here (it's also the largest source of regressions in #149195).
If you are willing to release a 0.7.1 version with a fix, then I will prepare a pull request.

The error typically looks like this.

error: `Perlin` is ambiguous
 --> src/terrain.rs:2:22
  |
2 | use noise::{NoiseFn, Perlin, Seedable};
  |                      ^^^^^^ ambiguous name
  |
  = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
  = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
  = note: ambiguous because of multiple glob imports of a name in the same module
note: `Perlin` could refer to the struct defined here
 --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/noise-0.7.0/src/noise_fns/generators.rs:6:9
  |
6 | pub use self::perlin::*;
  |         ^^^^^^^^^^^^
note: `Perlin` could also refer to the struct defined here
 --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/noise-0.7.0/src/noise_fns/generators.rs:7:9
  |
7 | pub use self::perlin_surflet::*;
  |         ^^^^^^^^^^^^^^^^^^^^
  = note: `#[deny(ambiguous_glob_imports)]` (part of `#[deny(future_incompatible)]`) on by default

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. I-lang-radar Items that are on lang's radar and will need eventual work or consideration. merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-lang Relevant to the language team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

item_like_imports: Can "ambiguity error" items be reexported?