Skip to content
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

Merged
merged 16 commits into from
Apr 22, 2017
Merged

Rollup of 3 pull requests #41464

merged 16 commits into from
Apr 22, 2017

Conversation

petrochenkov and others added 16 commits April 21, 2017 21:32
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.
@rust-highfive
Copy link
Collaborator

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.

@frewsxcv
Copy link
Member Author

@bors r+ p=10

@bors
Copy link
Contributor

bors commented Apr 22, 2017

📌 Commit b37163c has been approved by frewsxcv

@bors
Copy link
Contributor

bors commented Apr 22, 2017

⌛ Testing commit b37163c with merge 9cc77d7...

bors added a commit that referenced this pull request Apr 22, 2017
Rollup of 3 pull requests

- Successful merges: #41077, #41355, #41450
- Failed merges:
@bors
Copy link
Contributor

bors commented Apr 22, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: frewsxcv
Pushing 9cc77d7 to master...

@bors bors merged commit b37163c into rust-lang:master Apr 22, 2017
@Centril Centril added the rollup A PR which is a rollup label Oct 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants