diff options
| author | bors <bors@rust-lang.org> | 2016-04-07 10:55:37 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-04-07 10:55:37 -0700 |
| commit | 7979dd6089ee5cba39cfbe6e880a3edeb7fff788 (patch) | |
| tree | 53f7316a403f28fa203c315a14ed0a23047deab1 /src/librustc_metadata/decoder.rs | |
| parent | 470ca1c3ff33cd046f71a5453f8f520da4cd387e (diff) | |
| parent | 9eaae920117594f5bddab1f46f406e5402e8cc8a (diff) | |
| download | rust-7979dd6089ee5cba39cfbe6e880a3edeb7fff788.tar.gz rust-7979dd6089ee5cba39cfbe6e880a3edeb7fff788.zip | |
Auto merge of #32016 - nikomatsakis:incr-comp-save, r=mw
Save/load incremental compilation dep graph Contains the code to serialize/deserialize the dep graph to disk between executions. We also hash the item contents and compare to the new hashes. Also includes a unit test harness. There are definitely some known limitations, such as https://github.com/rust-lang/rust/issues/32014 and https://github.com/rust-lang/rust/issues/32015, but I am leaving those for follow-up work. Note that this PR builds on https://github.com/rust-lang/rust/pull/32007, so the overlapping commits can be excluded from review. r? @michaelwoerister
Diffstat (limited to 'src/librustc_metadata/decoder.rs')
| -rw-r--r-- | src/librustc_metadata/decoder.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index a0881f1153e..6a634d061fa 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -1242,7 +1242,7 @@ pub fn get_crate_deps(data: &[u8]) -> Vec<CrateDep> { reader::tagged_docs(depsdoc, tag_crate_dep).enumerate().map(|(crate_num, depdoc)| { let name = docstr(depdoc, tag_crate_dep_crate_name); - let hash = Svh::new(&docstr(depdoc, tag_crate_dep_hash)); + let hash = Svh::new(docstr(depdoc, tag_crate_dep_hash)); let doc = reader::get_doc(depdoc, tag_crate_dep_explicitly_linked); let explicitly_linked = reader::doc_as_u8(doc) != 0; CrateDep { @@ -1266,14 +1266,14 @@ fn list_crate_deps(data: &[u8], out: &mut io::Write) -> io::Result<()> { pub fn maybe_get_crate_hash(data: &[u8]) -> Option<Svh> { let cratedoc = rbml::Doc::new(data); reader::maybe_get_doc(cratedoc, tag_crate_hash).map(|doc| { - Svh::new(doc.as_str_slice()) + Svh::new(doc.as_str_slice().to_string()) }) } pub fn get_crate_hash(data: &[u8]) -> Svh { let cratedoc = rbml::Doc::new(data); let hashdoc = reader::get_doc(cratedoc, tag_crate_hash); - Svh::new(hashdoc.as_str_slice()) + Svh::new(hashdoc.as_str_slice().to_string()) } pub fn maybe_get_crate_name(data: &[u8]) -> Option<&str> { |
