-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Rollup of 3 pull requests #41464
Rollup of 3 pull requests #41464
Conversation
frewsxcv
commented
Apr 22, 2017
- Successful merges: syntax: Support parentheses around trait bounds #41077, Refactor trans some more to pave way for incremental compilation #41355, Update cargo for 1.18.0. #41450
- Failed merges:
Bump our associated cargo to pick up the RUSTC_WRAPPER feature for use with build caches.
This may seem like overkill, but it's exactly what we want/need for incremental compilation I think. In particular, while generating code for some codegen unit X, we can wind up querying about any number of external items, and we only want to be forced to rebuild X is some of those changed from a foreign item to otherwise. Factoring this into a query means we would re-run only if some `false` became `true` (or vice versa).
If we are going to hash `SharedCrateContext`, we don't want a list of things that pertain to **every CGU** in there.
The symbol map is not good for incremental: it has inputs from every fn in existence, and it will change if anything changes. One could imagine cheating with the symbol-map and exempting it from the usual dependency tracking, since the results are fully deterministic. Instead, I opted to just add a per-CGU cache, on the premise that recomputing some symbol names is not going to be so very expensive.
The more we can things dependent on just tcx, the easier it will be to make queries etc later on.
Once it is computed, no need to deep clone the set.
Arguably these could become custom queries, but I chose not to do that because the relationship of queries and trait system is not yet fleshed out enough. For now it seems fine to have them be `DepTrackingMap` using the memoize pattern.
This makes these routines more readily available for other bits of code. It also will help when refactoring.
…akis syntax: Support parentheses around trait bounds An implementation for rust-lang#39318 (comment) r? @nikomatsakis
…ns-2, r=eddyb Refactor trans some more to pave way for incremental compilation Various refactorings paving the way for the newer approach to incremental compilation (And, in particular, to "query-ifying" trans). My partial goal is to remove `SharedCrateContext`; this PR gets about as far as I can easily get before starting to really want the red/green algorithm. r? @eddyb cc @michaelwoerister
Update cargo for 1.18.0. Bump our associated cargo to pick up the RUSTC_WRAPPER feature for use with build caches.
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @eddyb (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
@bors r+ p=10 |
📌 Commit b37163c has been approved by |
☀️ Test successful - status-appveyor, status-travis |