Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

track cycle participants per root #125308

Merged
merged 3 commits into from
May 21, 2024
Merged

track cycle participants per root #125308

merged 3 commits into from
May 21, 2024

Conversation

lcnr
Copy link
Contributor

@lcnr lcnr commented May 20, 2024

The search graph may have multiple roots, e.g. in

A :- B
B :- A, C
C :- D
D :- C

we first encounter the A -> B -> A cycle which causes A to be a root. We then later encounter the C -> D -> C cycle as a nested goal of B. This cycle is completely separate and C will get moved to the global cache. This previously caused us to use [B, D] as the cycle_participants for C and [] for A.

split off from #125167 as I would like to merge this change separately and will rebase that PR on top of this one. There is no test for this issue and I don't quite know how to write one. It is probably worth it to generalize the search graph to enable us to write unit tests for it.

r? @compiler-errors

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative labels May 20, 2024
@rustbot
Copy link
Collaborator

rustbot commented May 20, 2024

Some changes occurred to the core trait solver

cc @rust-lang/initiative-trait-system-refactor

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented May 20, 2024

☔ The latest upstream changes (presumably #125324) made this pull request unmergeable. Please resolve the merge conflicts.

@compiler-errors
Copy link
Member

r=me after rebase

@lcnr
Copy link
Contributor Author

lcnr commented May 20, 2024

@bors r+ rollup

@bors
Copy link
Contributor

bors commented May 20, 2024

📌 Commit f99c9ff has been approved by lcnr

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-review Status: Awaiting review from the assignee but also interested parties. labels May 20, 2024
@compiler-errors
Copy link
Member

@bors r=compiler-errors

@bors
Copy link
Contributor

bors commented May 20, 2024

💡 This pull request was already approved, no need to approve it again.

@bors
Copy link
Contributor

bors commented May 20, 2024

📌 Commit f99c9ff has been approved by compiler-errors

It is now in the queue for this repository.

bors added a commit to rust-lang-ci/rust that referenced this pull request May 21, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#124050 (Remove libc from MSVC targets)
 - rust-lang#124283 (Note for E0599 if shadowed bindings has the method.)
 - rust-lang#125123 (Fix `read_exact` and `read_buf_exact` for `&[u8]` and `io:Cursor`)
 - rust-lang#125158 (hir pretty: fix block indent)
 - rust-lang#125308 (track cycle participants per root)
 - rust-lang#125332 (Update books)
 - rust-lang#125333 (switch to the default implementation of `write_vectored`)
 - rust-lang#125346 (Remove some `Path::to_str` from `rustc_codegen_llvm`)

Failed merges:

 - rust-lang#125310 (Move ~100 tests from tests/ui to subdirs)

r? `@ghost`
`@rustbot` modify labels: rollup
@lcnr lcnr added T-types Relevant to the types team, which will review and decide on the PR/issue. and removed T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels May 21, 2024
@bors bors merged commit e97103f into rust-lang:master May 21, 2024
6 checks passed
@rustbot rustbot added this to the 1.80.0 milestone May 21, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 21, 2024
Rollup merge of rust-lang#125308 - lcnr:search-graph-5, r=compiler-errors

track cycle participants per root

The search graph may have multiple roots, e.g. in
```
A :- B
B :- A, C
C :- D
D :- C
```
we first encounter the `A -> B -> A` cycle which causes `A` to be a root. We then later encounter the `C -> D -> C` cycle as a nested goal of `B`. This cycle is completely separate and `C` will get moved to the global cache. This previously caused us to use `[B, D]` as the `cycle_participants` for `C` and `[]` for `A`.

split off from rust-lang#125167 as I would like to merge this change separately and will rebase that PR on top of this one. There is no test for this issue and I don't quite know how to write one. It is probably worth it to generalize the search graph to enable us to write unit tests for it.

r? `@compiler-errors`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-types Relevant to the types team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants