25 Commits

Author SHA1 Message Date
Zack M. Davis
1b6c9605e4 use field init shorthand EVERYWHERE
Like #43008 (f668999), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
Michael Woerister
8b36d3308e Allocate DefIndices for global crate metadata.
This allows for treating global crate metadata the same as regular metadata with regard to incr. comp.
2017-06-07 12:11:40 +02:00
Michael Woerister
6a5e2a5a9e incr.comp.: Hash more pieces of crate metadata to detect changes there. 2017-05-08 12:31:26 +02:00
Michael Woerister
ca2dce9b48 ICH: Replace old, transitive metadata hashing with direct hashing approach.
Instead of collecting all potential inputs to some metadata entry and
hashing those, we directly hash the values we are storing in metadata.
This is more accurate and doesn't suffer from quadratic blow-up when
many entries have the same dependencies.
2017-04-12 11:47:26 +02:00
Michael Woerister
bc7af816f3 ICH: Hash everything that gets encoded into crate metadata. 2017-04-12 11:42:15 +02:00
Michael Woerister
090767b5ef Allocate numerical values of DefIndexes from two seperate ranges.
This way we can have all item-likes occupy a dense range of
DefIndexes, which is good for making fast, array-based
dictionaries.
2017-03-22 17:07:19 +01:00
Eduard-Mihai Burtescu
45c8c5678a rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
Jeffrey Seyfried
872943c317 Improve macro reexports. 2016-11-10 10:04:24 +00:00
Srinivas Reddy Thatiparthy
892a05d694
run rustfmt on librustc_metadata folder 2016-10-25 21:53:11 +05:30
Eduard Burtescu
a96abca2a4 rustc_metadata: replace RBML with a simple and type-safe scheme. 2016-09-20 20:08:05 +03:00
Eduard Burtescu
d2ea3daad1 rustc_metadata: group the tags into root tags and item tags. 2016-09-20 20:08:03 +03:00
Eduard Burtescu
8734aaa33e rustc_metadata: move more RBML tags to auto-serialization. 2016-09-20 20:08:02 +03:00
Eduard Burtescu
0863012fb9 Remove librbml and the RBML-tagged auto-encoder/decoder. 2016-09-20 20:08:01 +03:00
Eduard Burtescu
82197287a2 rustc_metadata: combine EncodeContext and rbml::writer::Encoder. 2016-09-20 19:21:33 +03:00
Niko Matsakis
6b33f47514 remove usize: DepGraphRead and add Untracked
The idea is that a `usize` is sort of ambiguous: in this case, it
represents indices that do not need tracking, but it could as easily be
some data read out from a tracked location, and hence represent tracked
data. Therefore, we add an `Untracked` type that lets user assert
that value is not tracked.

Also correct various typos.
2016-08-17 15:21:59 -04:00
Niko Matsakis
9daea5b639 Add a comment, remove Deref/DerefMut
The comment explains the `index-builder` pattern. We no longer need the
`Deref/DerefMut` relationship, and it seems nicer without it.
2016-08-17 15:21:59 -04:00
Niko Matsakis
f3990feb2e create a trait to ensure that data is tracked
Also write a comment explaining the system.
2016-08-17 15:21:58 -04:00
Niko Matsakis
00e699faf3 change callback for expr/type to a fn pointer
The idea is that, this way, we can cleanly isolate ALL state that is
being passed, since it goes as an argument to the fn pointer.
2016-08-17 15:21:45 -04:00
Niko Matsakis
d49e1a9191 move rbml_w into the self struct 2016-08-17 10:25:01 -04:00
Niko Matsakis
baccdc01ae make record take a closure 2016-08-17 09:24:58 -04:00
Niko Matsakis
6b76932ba8 introduce Deref/DerefMut to model subtype rel
The idea is that ItemContentBuilder is a base-type of IndexBuilder.
2016-08-17 09:03:50 -04:00
Niko Matsakis
92f269e665 put ecx into IndexBuilder so we don't have to pass 2016-08-17 08:03:50 -04:00
Niko Matsakis
25bb51d98f store ecx, not dep-graph 2016-08-17 07:51:12 -04:00
Niko Matsakis
85ac63e9ec rename CrateIndex to IndexBuilder 2016-08-17 07:51:12 -04:00
Niko Matsakis
b5fa8ab593 move CrateIndex into its own module 2016-08-17 07:39:11 -04:00