Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Rollup of 7 pull requests by Dylan-DPC · Pull Request #112702 · rust-lang/rust · GitHub
Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Rollup of 7 pull requests by Dylan-DPC · Pull Request #112702 · rust-lang/rust · GitHub
Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Rollup of 7 pull requests by Dylan-DPC · Pull Request #112702 · rust-lang/rust · GitHub
Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Rollup of 7 pull requests by Dylan-DPC · Pull Request #112702 · rust-lang/rust · GitHub
Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Rollup of 7 pull requests by Dylan-DPC · Pull Request #112702 · rust-lang/rust · GitHub
Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Rollup of 7 pull requests by Dylan-DPC · Pull Request #112702 · rust-lang/rust · GitHub
Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Rollup of 7 pull requests by Dylan-DPC · Pull Request #112702 · rust-lang/rust · GitHub
Skip to content

Rollup of 7 pull requests - #112702

Merged
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay
Jun 16, 2023
Merged

Rollup of 7 pull requests#112702
bors merged 17 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-12d6qay

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 17 commits June 7, 2023 18:18
It fixes the following error:
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
The other major steps in `partition` have their own function, so it's
nice for this one to be likewise.
The comment says "Find the smallest CGU that has exported symbols and
put the dead function stubs in that CGU". But the code sorts the CGUs by
size (smallest first) and then searches them in reverse order, which
means it will find the *largest* CGU that has exported symbols.
The erroneous code was introduced in rust-lang#92142.
This commit changes it to use a simpler search, avoiding the sort, and
fixes the bug in the process.
Always put the `create_size_estimate` calls and `debug_dump` calls
within a timed scopes. This makes the four main steps look more similar
to each other.
…rrors
fix: inline `predicate_may_hold_fatal` and remove expect call in it
- Fixesrust-lang#105231
- Discussion: rust-lang#111985 (comment)
r? ``@compiler-errors``
…t-universe, r=lcnr
Instantiate closure synthetic substs in root universe
In the UI test example, we end up generalizing an associated type (something like `<Map<Option<i32>, [closure upvars=?0]> as IntoIterator>::Item` generalizes into `<Map<Option<i32>, [closure upvars=?1]> as IntoIterator>::Item`) then assigning it to itself, emitting an alias-relate goal. This trivially holds via one of the normalizes-to candidates, instead of relating substs, so when closure analysis eventually sets `?0` to the actual upvars, `?1` never gets constrained. This ends up being reported as an ambiguity error during writeback.
Instead, we can take advantage of the fact that we *know* the closure substs live in the root universe. This will prevent them being generalized, since they always can be named, and the alias-relate above never gets emitted at all.
We can probably do this to a handful of other `next_ty_var` calls in typeck for variables that are clearly associated with the body of the program, but I wanted to limit this for now. Eventually, if we end up representing universes more faithfully like a tree or whatever, we can remove this and turn it back to just a call to `next_ty_var`.
Note: This is incredibly order-dependent -- we need to be assigning a type variable that was created *before* the closure substs, and we also need to actually have an unnormalized type at the time of the assignment. This currently seems easiest to trigger during call argument analysis just due to the fact that we instantiate the call's substs, normalize, THEN check args.
r? ```@lcnr```
…unistically-resolve-regions, r=lcnr
Opportunistically resolve regions in new solver
Use `opportunistic_resolve_var` during canonicalization to collapse some regions.
We have to start using `CanonicalVarValues::is_identity_modulo_regions`. We also have to modify that function to consider responses like `['static, ^0, '^1, ^2]` to be an "identity" response, since because we opportunistically resolve regions, there's no longer a 1:1 mapping between canonical var values and bound var indices in the response...
There's one nasty side-effect -- one test (`tests/ui/dyn-star/param-env-infer.rs`) starts to ICE because the certainty goes from `Yes` to `Maybe(Overflow)`... Not exactly sure why, though? Putting this up for discussion/investigation.
r? ```@lcnr```
reorder attributes to make miri-test-libstd work again
Fixes fallout from rust-lang#110141
Fix building libstd documentation on FreeBSD.
It fixes the following error:
```
error[E0412]: cannot find type `sockcred2` in module `libc`
--> library/std/src/os/unix/net/ancillary.rs:211:29
|
211 | pub struct SocketCred(libc::sockcred2);
| ^^^^^^^^^ not found in `libc`
```
…esleywiser
Fix `dead_code_cgu` computation
This PR fixes a bug in `dead_code_cgu` computation, and also does some refactoring.
r? ```@wesleywiser```
…nnethercote
Handle interpolated literal errors
Not sure why it was doing a whole dance to re-match on the token kind when it seems like `Lit::from_token` does the right thing for both macro-arg and regular literals. Nothing seems to have regressed diagnostics-wise from the change, though.
Fixesrust-lang#112622
r? ``@nnethercote``
@rustbotrustbot 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Jun 16, 2023
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit c2e1097 has been approved by Dylan-DPC

It is now in the queue for this repository.

@borsbors 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 Jun 16, 2023
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit c2e1097 with merge 2304917...

@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

1 similar comment
@bors

bors commented Jun 16, 2023

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: Dylan-DPC
Pushing 2304917 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 16, 2023
@bors
bors merged commit 2304917 into rust-lang:masterJun 16, 2023
@rustbotrustbot added this to the 1.72.0 milestone Jun 16, 2023
@rust-timer

Copy link
Copy Markdown
Collaborator

@Dylan-DPC
Dylan-DPC deleted the rollup-12d6qay branch June 16, 2023 15:23
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2304917): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.2%[-3.7%, -1.7%]7
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
2.3%[2.3%, 2.3%]1
Regressions ❌
(secondary)
2.1%[2.1%, 2.1%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.3%[-3.6%, -3.1%]6
All ❌✅ (primary)2.3%[2.3%, 2.3%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 648.664s (0.36%)

@lqd

lqd commented Jun 21, 2023

Copy link
Copy Markdown
Member

Just checking if #112399 is the source of the secondary wins here.

@rust-timer build 7a265019a7f9058d8dd5ab2a596703857f1e24e3

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7a265019a7f9058d8dd5ab2a596703857f1e24e3): comparison URL.

Overall result: ✅ improvements - no action needed

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.8%, -3.2%]6
All ❌✅ (primary)--0

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.5%[-2.5%, -2.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-2.5%[-2.5%, -2.5%]1

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.3%, 2.7%]3
Improvements ✅
(primary)
-3.3%[-4.9%, -1.2%]8
Improvements ✅
(secondary)
-3.2%[-3.9%, -1.2%]7
All ❌✅ (primary)-3.3%[-4.9%, -1.2%]8

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 646.331s -> 647.006s (0.10%)

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

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Dylan-DPC@bors@rust-timer@lqd@rustbot@compiler-errors@RalfJung@nnethercote@bvanjoi