-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
typeck: taint if errors found during writeback #113125
base: master
Are you sure you want to change the base?
typeck: taint if errors found during writeback #113125
Conversation
(rustbot has picked a reviewer for you, use r? to override) |
Some changes occurred to the CTFE / Miri engine cc @rust-lang/miri |
@rustbot author |
This comment was marked as resolved.
This comment was marked as resolved.
Just a missing space between arguments. Signed-off-by: David Wood <[email protected]>
d77b110
to
1c3a4bf
Compare
Okay - I've taken a different approach to this after discussions on Zulip and some thinking. I'm not sure it's ideal but haven't thought of anything better at the moment. |
This comment was marked as resolved.
This comment was marked as resolved.
I can't reproduce these failures locally. |
(it's just #113585) |
I think it seems like an ok fix for now if it doesn't cause us any cycle errors in otherwise fine code. It shouldn't, as the second level isn't using the deep references error check, so only immediately recursive data structures will get hit, which seems fine. |
If any type added to the `TypeckResults` references an error then set tainted by errors. By doing this, const eval can be skipped on bodies that reference errors which would make const eval ICE. Signed-off-by: David Wood <[email protected]>
Signed-off-by: David Wood <[email protected]>
40ec8d9
to
dc85120
Compare
@bors try @rust-timer queue |
⌛ Trying commit dc85120 with merge 4296df04a725855fece448e5e4532195b8577909... |
☀️ Try build successful - checks-actions |
@rust-timer build 4296df04a725855fece448e5e4532195b8577909 |
@rust-timer build 4296df0 |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (4296df04a725855fece448e5e4532195b8577909): comparison URL. Overall result: ❌ regressions - 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)ResultsThis 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.
CyclesResultsThis 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.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 656.437s -> 657.475s (0.16%) |
Hmm... I guess we could try caching the error flag in AdtFlags and making TypeFlags fetch that for the error TypeFlag instead of actually getting the field types during typeck. |
An update to what we've been trying:
|
this still needs work, perhaps even a more hands-on discussion? idk @rustbot author |
@davidtwco any updates on this? thanks |
@davidtwco ping from triage: any updates on this? thanks |
No updates, this still needs fixed but we don't have a path forward at the moment. |
@davidtwco |
Blocked on working out how we'd like to fix this |
Fixes #112824.
Fixes #112630.
If any type added to the
TypeckResults
references an error then set tainted by errors. By doing this, const eval can be skipped on bodies that reference errors which would make const eval ICE.