rust/src/librustc_trans
bors 1cf592fa40 Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis
Refactor away RBML from rustc_metadata.

RBML and `ty{en,de}code` have had their long-overdue purge. Summary of changes:
* Metadata is now a tree encoded in post-order and with relative backward references pointing to children nodes. With auto-deriving and type safety, this makes maintenance and adding new information to metadata painless and bug-free by default. It's also more compact and cache-friendly (cache misses should be proportional to the depth of the node being accessed, not the number of siblings as in EBML/RBML).
* Metadata sizes have been reduced, for `libcore` it went down 16% (`8.38MB` -> `7.05MB`) and for `libstd` 14% (`3.53MB` -> `3.03MB`), while encoding more or less the same information
* Specialization is used in the bundled `libserialize` (crates.io `rustc_serialize` remains unaffected) to customize the encoding (and more importantly, decoding) of various types, most notably those interned in the `TyCtxt`. Some of this abuses a soundness hole pending a fix (cc @aturon), but when that fix arrives, we'll move to macros 1.1 `#[derive]` and custom `TyCtxt`-aware serialization traits.
* Enumerating children of modules from other crates is now orthogonal to describing those items via `Def` - this is a step towards bridging crate-local HIR and cross-crate metadata
* `CrateNum` has been moved to `rustc` and both it and `NodeId` are now newtypes instead of `u32` aliases, for specializing their decoding. This is `[syntax-breaking]` (cc @Manishearth ).

cc @rust-lang/compiler
2016-09-21 19:17:24 -07:00
..
back rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
debuginfo Refactor TyStruct/TyEnum/TyUnion into TyAdt 2016-09-08 22:17:53 +03:00
mir Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
abi.rs Add s390x support 2016-09-09 22:28:19 +01:00
adt.rs Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
asm.rs
assert_module_sources.rs
attributes.rs
base.rs Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
basic_block.rs
build.rs
builder.rs
cabi_aarch64.rs
cabi_arm.rs
cabi_asmjs.rs
cabi_mips64.rs
cabi_mips.rs
cabi_powerpc64.rs
cabi_powerpc.rs
cabi_s390x.rs Add s390x support 2016-09-09 22:28:19 +01:00
cabi_x86_64.rs
cabi_x86_win64.rs
cabi_x86.rs
callee.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
Cargo.toml
cleanup.rs
closure.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
collector.rs Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
common.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
consts.rs
context.rs Refactor TyStruct/TyEnum/TyUnion into TyAdt 2016-09-08 22:17:53 +03:00
declare.rs
diagnostics.rs
disr.rs
glue.rs rustc_trans: don't do on-demand drop glue instantiation. 2016-09-20 20:30:55 +03:00
intrinsic.rs Rollup merge of #36459 - nikomatsakis:issue-35546, r=eddyb 2016-09-15 18:16:21 +05:30
lib.rs rustc_metadata: go only through rustc_serialize in astencode. 2016-09-20 20:07:54 +03:00
machine.rs
macros.rs
meth.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
monomorphize.rs
partitioning.rs trans: Allow base::internalize_symbols() to internalize #[no_mangle] symbols 2016-09-15 20:39:58 -04:00
README.txt
symbol_map.rs
symbol_names_test.rs
trans_item.rs trans: Allow base::internalize_symbols() to internalize #[no_mangle] symbols 2016-09-15 20:39:58 -04:00
tvec.rs
type_.rs
type_of.rs rustc_metadata: go only through rustc_serialize in astencode. 2016-09-20 20:07:54 +03:00
value.rs

See the README.md in ../librustc.