summary refs log tree commit diff
path: root/src/librustc_metadata/decoder.rs
AgeCommit message (Collapse)AuthorLines
2016-02-12Autoderef in librustc_metadataJonas Schievink-5/+5
2016-02-11Pass through diagnostic handler insteadarcnmx-1/+2
2016-02-11Only retain external static symbols across LTOarcnmx-19/+20
2016-02-11[breaking-change] don't glob export ast::MetaItem_Oliver 'ker' Schneider-1/+1
2016-02-11[breaking-change] don't glob import/export syntax::abi enum variantsOliver Schneider-2/+2
2016-02-02Auto merge of #31279 - DanielJCampbell:MacroReferencing, r=nrcbors-3/+12
r? @nrc
2016-02-01Implemented macro referencing for save analysisDaniel Campbell-3/+12
2016-01-26Implement the translation item collector.Michael Woerister-0/+10
The purpose of the translation item collector is to find all monomorphic instances of functions, methods and statics that need to be translated into LLVM IR in order to compile the current crate. So far these instances have been discovered lazily during the trans path. For incremental compilation we want to know the set of these instances in advance, and that is what the trans::collect module provides. In the future, incremental and regular translation will be driven by the collector implemented here.
2016-01-20Rename Def's variants and don't reexport themVadim Petrochenkov-15/+15
2016-01-20Refactor definitions of ADTs in rustc::middle::defVadim Petrochenkov-35/+47
2016-01-15Preserve struct/variant kinds in metadataVadim Petrochenkov-8/+24
Add tests for use of empty structs in cross-crate scenarios
2016-01-07Refactor away extension traits RegionEscape and HasTypeFlagsJeffrey Seyfried-1/+1
2016-01-05Refactor compiler to make use of dep-tracking-maps. Also, in cases whereNiko Matsakis-11/+6
we were using interior mutability (RefCells, TyIvar), add some reads/writes.
2015-12-31Rollup merge of #30565 - michaelwoerister:opaque_encoder, r=brsonSimonas Kazlauskas-4/+8
This PR changes the `emit_opaque` and `read_opaque` methods in the RBML library to use a space-efficient binary encoder that does not emit any tags and uses the LEB128 variable-length integer format for all numbers it emits. The space savings are nice, albeit a bit underwhelming, especially for dynamic libraries where metadata is already compressed. | RLIBs | NEW | OLD | |--------------|--------|-----------| |libstd | 8.8 MB | 10.5 MB | |libcore |15.6 MB | 19.7 MB | |libcollections| 3.7 MB | 4.8 MB | |librustc |34.0 MB | 37.8 MB | |libsyntax |28.3 MB | 32.1 MB | | SOs | NEW | OLD | |---------------|-----------|--------| | libstd | 4.8 MB | 5.1 MB | | librustc | 8.6 MB | 9.2 MB | | libsyntax | 7.8 MB | 8.4 MB | At least this should make up for the size increase caused recently by also storing MIR in crate metadata. Can this be a breaking change for anyone? cc @rust-lang/compiler
2015-12-28Use a more efficient encoding for opaque data in RBML.Michael Woerister-4/+8
2015-12-28Rename ExplicitSelfCategory's variants and stop re-exporting them.Ms2ger-5/+5
2015-12-22Fix def paths creation for items inlined from external crates.Michael Woerister-11/+36
Avoid duplicating the last element of the def path which led to paths like "std::slice::into_vec::into_vec".
2015-12-12Implement `#[deprecated]` attribute (RFC 1270)Vadim Petrochenkov-0/+8
2015-12-10Make MIR encodable and store it in crate metadata.Michael Woerister-2/+56
2015-12-09Add scoped thread-local encoding and decoding contexts to cstore.Michael Woerister-0/+58
With this commit, metadata encoding and decoding can make use of thread-local encoding and decoding contexts. These allow implementers of serialize::Encodable and Decodable to access information and datastructures that would otherwise not be available to them. For example, we can automatically translate def-id and span information during decoding because the decoding context knows which crate the data is decoded from. Or it allows to make ty::Ty decodable because the context has access to the ty::ctxt that is needed for creating ty::Ty instances.
2015-11-26split the metadata code into rustc_metadataAriel Ben-Yehuda-0/+1557
tests & rustdoc still broken