2023-07-21 rustc trait system refactor update

    for more information, check out the implementation tracking issue #107374, or the Trait System Refactor Initiative Issue Tracker. These updates are from my perspective and are not the official stance of the initiative. They exist to bridge the gap between major progress updates via rust-lang blog posts and the passive status tracking via the tracking issue and the initiative GitHub repository.

After landing initial deep normalization and select support we mostly fixed bugs revealed and caused by this over the last few weeks.

We had a sync meeting about incompleteness, i.e. ways in which the solver makes unnecessary inference choices, using this hackmd doc. We ended up sharing knowledge without making any meaningful decisions in this meeting.

I changed assembly to avoid trying the same impls multiple times (#113835). I also finally looked at the hang in typenum with -Ztrait-solver=next. To fix this I added a separate cache for coherence (#113887).

I am currently working on a sensible approach to overflow handling. See this zulip thread for more info.

@compiler-errors opened a PR to run crater using -Ztrait-solver=next-coherence (#113895), as coherence is now in a pretty good spot. We may still have a significant setback once we uniquify regions in query inputs again (trait-system-refactor-initiative#30).

if you find any typos or errors in this post, please pm me on zulip, discord or cohost


impressum rss