Uh oh!
There was an error while loading. Please reload this page.
evaluation cache, freshen each predicate by itself - #102713
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
lcnr
commented
Oct 5, 2022
@bors try @rust-timer queue |
14584fb to
da92870Comparerust-timer
commented
Oct 5, 2022
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
bors
commented
Oct 5, 2022
⌛ Trying commit da928700181422639a4c06f0ac832f3a87e65180 with merge 79e77056cd5cd1e6cd8cb883026e53a7f1ff0659... |
rust-timer
commented
Oct 5, 2022
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
1 similar comment
rust-timer
commented
Oct 5, 2022
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
bors
commented
Oct 5, 2022
⌛ Trying commit da928700181422639a4c06f0ac832f3a87e65180 with merge f30cafb00d844ad0086efc9765084f4e994286f5... |
rust-timer
commented
Oct 5, 2022
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
1 similar comment
rust-timer
commented
Oct 5, 2022
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
bors
commented
Oct 5, 2022
⌛ Trying commit da928700181422639a4c06f0ac832f3a87e65180 with merge 0cb6fd9f0ff8333a6cdc3b11e06197e42a2c8da5... |
bors
commented
Oct 5, 2022
☀️ Try build successful - checks-actions |
rust-timer
commented
Oct 5, 2022
Queued 0cb6fd9f0ff8333a6cdc3b11e06197e42a2c8da5 with parent 8c71b67, future comparison URL. |
rust-timer
commented
Oct 6, 2022
Finished benchmarking commit (0cb6fd9f0ff8333a6cdc3b11e06197e42a2c8da5): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesThis benchmark run did not return any relevant results for this metric. Footnotes |
lcnr
commented
Oct 6, 2022
@bors try |
nikomatsakis
commented
Oct 6, 2022
r=me but I think we should do a crater run |
bors
commented
Oct 6, 2022
⌛ Trying commit da928700181422639a4c06f0ac832f3a87e65180 with merge 7f168b18704203996d3698515c88a036a9300946... |
bors
commented
Oct 6, 2022
☀️ Try build successful - checks-actions |
lcnr
commented
Oct 7, 2022
@craterbot check |
craterbot
commented
Oct 7, 2022
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
craterbot
commented
Oct 8, 2022
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
craterbot
commented
Oct 9, 2022
🎉 Experiment
|
da92870 to
b28b235Comparethis changes some recursive paths from Comparing the trait ref using structural eq, this previously failed as we had different fresh vars, now it succeeds: rust/compiler/rustc_trait_selection/src/traits/select/mod.rs Lines 846 to 853 in 1536ab1 This succeeds even for different fresh vars: rust/compiler/rustc_trait_selection/src/traits/select/mod.rs Lines 916 to 928 in 1536ab1 @jyn514 previously looked into changing |
jyn514
commented
Oct 19, 2022
wip code here: https://github.com/jyn514/rust/pull/new/normalize-docs |
bors
commented
Nov 19, 2022
☔ The latest upstream changes (presumably #104600) made this pull request unmergeable. Please resolve the merge conflicts. |
when freshening each obligation by itself we have to correctly deal with inference constraints from the cyclic call. Otherwise we get the following issue: traitFoo{}// assume `Foo` is coinductive herestructWrapper<T>(T);impl<T>FooforWrapper<Wrapper<T>>whereWrapper<T>:Foo{}query: does
To deal with this evaluate has to return inference results which will only be added in the implementation of the trait system refactor initiative. |
update test for inductive canonical cycles the previous test always resulted in a cycle 😅 cc rust-lang/chalk#787. I checked with rust-lang#102713 and this is the only test which fails with that PR. r? `@jackh726`
update test for inductive canonical cycles the previous test always resulted in a cycle 😅 cc rust-lang/chalk#787. I checked with rust-lang#102713 and this is the only test which fails with that PR. r? ``@jackh726``
I think this change is correct. Here's my understanding of this:
This previously wasn't done was so that we don't consider
Foo<?0>: TraitrequiringFoo<?0>: Trait(which is trivially a cycle), the same asFoo<?0>: TraitrequiringFoo<?1>: Trait, which is an infinite chain instead.For inductive obligations, cycles and infinite chains should both result in ambiguity, so for these this doesn't matter.
For coinductive obligations, cycles result in success and I believe that infinitely diverging chains should also be a success. That's my understanding given my limited experience with coq and the general intuition of "coinduction means stuff is true unless proven otherwise, induction means stuff is wrong unless proven otherwise".
r? @nikomatsakis cc @rust-lang/types