rust/src/librustc/middle
Alex Crichton ec57db083f rustc: Add the concept of a Strict Version Hash
This new SVH is used to uniquely identify all crates as a snapshot in time of
their ABI/API/publicly reachable state. This current calculation is just a hash
of the entire crate's AST. This is obviously incorrect, but it is currently the
reality for today.

This change threads through the new Svh structure which originates from crate
dependencies. The concept of crate id hash is preserved to provide efficient
matching on filenames for crate loading. The inspected hash once crate metadata
is opened has been changed to use the new Svh.

The goal of this hash is to identify when upstream crates have changed but
downstream crates have not been recompiled. This will prevent the def-id drift
problem where upstream crates were recompiled, thereby changing their metadata,
but downstream crates were not recompiled.

In the future this hash can be expanded to exclude contents of the AST like doc
comments, but limitations in the compiler prevent this change from being made at
this time.

Closes #10207
2014-02-28 10:48:04 -08:00
..
borrowck Forbid moves out of static items Closes #10577 2014-02-27 09:24:17 +01:00
cfg Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
trans rustc: Add the concept of a Strict Version Hash 2014-02-28 10:48:04 -08:00
typeck auto merge of #12348 : brunoabinader/rust/libcollections-list-refactory, r=alexcrichton 2014-02-27 21:46:53 -08:00
astencode.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
check_const.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
check_loop.rs
check_match.rs Rename a few typeck method-related structures to UpperCamelCase. 2014-02-26 16:01:36 +02:00
check_static.rs Immutable static items should be Freeze Fixes #12432 2014-02-27 18:09:35 +01:00
const_eval.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
dataflow.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
dead.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
effect.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
entry.rs
freevars.rs Move std::{trie, hashmap} to libcollections 2014-02-23 00:35:11 -08:00
graph.rs
kind.rs rustc: Explicitly mention type params with missing 'static bounds 2014-02-27 02:14:46 +09:00
lang_items.rs Move std::{trie, hashmap} to libcollections 2014-02-23 00:35:11 -08:00
lint.rs rustc: implement a lint for publicly visible private types. 2014-03-01 00:11:56 +11:00
liveness.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
mem_categorization.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
moves.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
pat_util.rs Move std::{trie, hashmap} to libcollections 2014-02-23 00:35:11 -08:00
privacy.rs rustc: implement a lint for publicly visible private types. 2014-03-01 00:11:56 +11:00
reachable.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
region.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
resolve_lifetime.rs Move std::{trie, hashmap} to libcollections 2014-02-23 00:35:11 -08:00
resolve.rs Replace callee_id with information stored in method_map. 2014-02-26 16:06:45 +02:00
subst.rs
ty_fold.rs
ty.rs rustc: Add the concept of a Strict Version Hash 2014-02-28 10:48:04 -08:00