Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upincr.comp.: Load cached diagnostics lazily and allow more things in the cache. #46338
Conversation
rust-highfive
assigned
nikomatsakis
Nov 28, 2017
kennytm
added
the
S-blocked
label
Nov 28, 2017
nikomatsakis
reviewed
Nov 29, 2017
| dep_node: &DepNode) | ||
| -> Option<DepNodeIndex> { | ||
| pub fn try_mark_green<'a, 'tcx>(&self, | ||
| tcx: TyCtxt<'a, 'tcx, 'tcx>, |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
r=me |
michaelwoerister
added some commits
Nov 22, 2017
michaelwoerister
force-pushed the
michaelwoerister:lazy-diagnostics
branch
from
592e969
to
410f850
Dec 1, 2017
michaelwoerister
referenced this pull request
Dec 1, 2017
Closed
incr.comp.: Fix Span hashing in various ways #46301
michaelwoerister
changed the title
[DO NOT MERGE YET] incr.comp.: Load cached diagnostics lazily and allow more things in the cache.
incr.comp.: Load cached diagnostics lazily and allow more things in the cache.
Dec 1, 2017
michaelwoerister
removed
the
S-blocked
label
Dec 1, 2017
kennytm
added
the
S-waiting-on-review
label
Dec 1, 2017
This comment has been minimized.
This comment has been minimized.
|
OK, travis passed. @bors r=nikomatsakis p=1 |
This comment has been minimized.
This comment has been minimized.
|
|
michaelwoerister
added
S-waiting-on-bors
and removed
S-waiting-on-review
labels
Dec 1, 2017
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Dec 1, 2017
bors
referenced this pull request
Dec 1, 2017
Merged
MIR: change "lvalue" terminology to "place". #46425
This comment has been minimized.
This comment has been minimized.
|
|
bors
merged commit 966eead
into
rust-lang:master
Dec 1, 2017
bors
referenced this pull request
Dec 1, 2017
Merged
Use PathBuf instead of String where applicable #46335
This comment has been minimized.
This comment has been minimized.
|
This appears to have caused a slight regression in performance -- http://perf.rust-lang.org/compare.html?start=e3ed21272d5f50c37c09f2a7f06c40f56b6ac298&end=6805b016efdfcd99e706003fab1336df73f6811b&stat=wall-time -- was that expected? |
This comment has been minimized.
This comment has been minimized.
|
Bummer, I would have hoped that the slightly more efficient span hashing implementation would make things faster. But it seems that also encoding and decoding expansion contexts adds some noticeable overhead for some crates. Fortunately it doesn't seem too bad -- except for crates.io again. This one seems to be rather sensitive to span related changes. |
michaelwoerister commentedNov 28, 2017
•
edited
This PR implements makes two changes:
Spanvalues and deserializing those requires that the source file they point to is still around in the current compilation session. Obviously this isn't always the case. Loading them lazily allows for never touching diagnostics that are not valid anymore.symbol_namequery). In such a case we'll just have a "best effort" caching strategy.This PR is based on #46301 (=first 2 commits), so please don't merge until that has landed. The rest of the commits are ready for review though.r? @nikomatsakis