rust/src
bors 499484f56d Auto merge of #35684 - nikomatsakis:incr-comp-metadata-audit-35111, r=mw
Restructure metadata encoder to track deps precisely

This issue restructures meta-data encoding to track dependencies very precisely. It uses a cute technique I hope to spread elsewhere, where we can guard the data flowing into a new dep-graph task and ensure that it is not "leaking" information from the outside, which would result in missing edges. There are no tests because we don't know of any bugs in the old system, but it's clear that there was leaked data.

The commit series is standalone, but the refactorings are kind of "windy". It's a good idea to read the comment in `src/librustc_metadata/index_builder.rs` to get a feeling for the overall strategy I was aiming at.

In several cases, I wound up adding some extra hashtable lookups, I think primarily for looking up `AdtDef` instances. We could remove these by implementing `DepGraphRead` for an `AdtDef` and then having it register a read to the adt-defs table, I guess, but I doubt it is really noticeable.

Eventually I think I'd like to extend this pattern to the dep-graph more generally, since it effectively guarantees that data cannot leak.

Fixes #35111.

r? @michaelwoerister
2016-08-18 08:54:10 -07:00
..
bootstrap Add 'make help' for rustbuild 2016-08-17 16:23:11 +02:00
build_helper
compiler-rt@8598065bd9
doc Rollup merge of #35681 - Rufflewind:patch-1, r=apasel422 2016-08-17 06:25:26 -07:00
driver
etc
grammar
jemalloc@e058ca6616
liballoc
liballoc_jemalloc
liballoc_system
libarena
libbacktrace
libcollections Auto merge of #35747 - jonathandturner:rollup, r=jonathandturner 2016-08-17 09:49:34 -07:00
libcollectionstest Auto merge of #35747 - jonathandturner:rollup, r=jonathandturner 2016-08-17 09:49:34 -07:00
libcore Rollup merge of #35695 - matthew-piziak:vec-assert-over-println, r=GuillaumeGomez 2016-08-17 06:25:26 -07:00
libcoretest
libflate
libfmt_macros
libgetopts
libgraphviz
liblibc@5066b7dcab
liblog
libpanic_abort
libpanic_unwind
libproc_macro
librand
librbml
librustc Display secondary span for E0053 for Sort TypeErrors 2016-08-17 15:12:51 -07:00
librustc_back
librustc_bitflags
librustc_borrowck Auto merge of #35732 - jonathandturner:region_error_labels, r=nikomatsakis 2016-08-18 05:39:11 -07:00
librustc_const_eval Rollup merge of #35744 - DevShep:ds/update_E0009, r=jonathandturner 2016-08-18 06:12:22 +03:00
librustc_const_math
librustc_data_structures
librustc_driver rustc: remove ParamSpace from Substs. 2016-08-17 06:32:00 +03:00
librustc_errors Rebase. Fix mutable iteration nit. 2016-08-17 15:11:18 -07:00
librustc_incremental
librustc_lint rustc: reduce Substs and Generics to a simple immutable API. 2016-08-17 05:50:57 +03:00
librustc_llvm
librustc_metadata remove seemingly unnecessary call to encode_predicates 2016-08-17 15:21:59 -04:00
librustc_mir Rollup merge of #35751 - nagisa:mir-scope-fix-again, r=eddyb 2016-08-18 06:12:23 +03:00
librustc_passes Rollup merge of #35415 - silenuss:e0030-formatting, r=jonathandturner 2016-08-17 06:25:23 -07:00
librustc_platform_intrinsics
librustc_plugin
librustc_privacy
librustc_resolve Rollup merge of #35768 - GuillaumeGomez:err_codes, r=jonathandturner 2016-08-18 06:12:23 +03:00
librustc_save_analysis rustc: remove SelfSpace from ParamSpace. 2016-08-17 05:50:57 +03:00
librustc_trans rustc: remove ParamSpace from Substs. 2016-08-17 06:32:00 +03:00
librustc_typeck Rollup merge of #35765 - KiChjang:e0053-bonus, r=jonathandturner 2016-08-18 06:12:23 +03:00
librustc_unicode
librustdoc Auto merge of #35236 - nrc:rustdoc-redirects, r=@alexcrichton 2016-08-17 03:20:13 -07:00
libserialize
libstd Rollup merge of #35621 - frewsxcv:cstring-from-vec-doc, r=peschkaj 2016-08-17 06:25:24 -07:00
libsyntax
libsyntax_ext
libsyntax_pos Replace local backtrace with def-use, repair std macro spans 2016-08-17 14:26:14 -07:00
libterm
libtest
libunwind
llvm@c3eb3c7608
rt
rtstartup
rust-installer@c37d3747da
rustc
rustllvm
test Auto merge of #35732 - jonathandturner:region_error_labels, r=nikomatsakis 2016-08-18 05:39:11 -07:00
tools
stage0.txt