summary refs log tree commit diff
path: root/src/librustc_incremental/lib.rs
AgeCommit message (Collapse)AuthorLines
2017-05-11rustc: Remove #![unstable] annotationAlex Crichton-3/+4
These are now no longer necessary with `-Z force-unstable-if-unmarked`
2017-04-29Update stage0 bootstrap compilerAlex Crichton-1/+0
We've got a freshly minted beta compiler, let's update to use that on nightly! This has a few other changes associated with it as well * A bump to the rustc version number (to 1.19.0) * Movement of the `cargo` and `rls` submodules to their "proper" location in `src/tools/{cargo,rls}`. Now that Cargo workspaces support the `exclude` option this can work. * Updates of the `cargo` and `rls` submodules to their master branches. * Tweak to the `src/stage0.txt` format to be more amenable for Cargo version numbers. On the beta channel Cargo will bootstrap from a different version than rustc (e.g. the version numbers are different), so we need different configuration for this. * Addition of `dev` as a readable key in the `src/stage0.txt` format. If present then stage0 compilers are downloaded from `dev-static.rust-lang.org` instead of `static.rust-lang.org`. This is added to accomodate our updated release process with Travis and AppVeyor.
2017-04-07SVH: Don't hash the HIR twice when once is enough.Michael Woerister-0/+1
The SVH (Strict Version Hash) of a crate is currently computed by hashing the ICHes (Incremental Computation Hashes) of the crate's HIR. This is fine, expect that for incr. comp. we compute two ICH values for each HIR item, one for the complete item and one that just includes the item's interface. The two hashes are are needed for dependency tracking but if we are compiling non-incrementally and just need the ICH values for the SVH, one of them is enough, giving us the opportunity to save some work in this case.
2017-04-06Introduce HashStable trait and base ICH implementations on it.Michael Woerister-1/+0
This initial commit provides implementations for HIR, MIR, and everything that also needs to be supported for those two.
2017-03-29rustbuild: Update bootstrap compilerAlex Crichton-1/+0
Now that we've also updated cargo's release process this commit also changes the download location of Cargo from Cargos archives back to the static.r-l.o archives. This should ensure that the Cargo download is the exact Cargo paired with the rustc that we release.
2017-03-22Move some constants to rustc::ich.Michael Woerister-7/+0
2017-03-22Move Fingerprint to rustc::ich::Fingerprint.Michael Woerister-1/+0
2017-03-15Stabilize pub(restricted)Taylor Cramer-1/+1
2017-02-15Stabilize field init shorthandest31-1/+1
Closes #37340.
2017-01-31rewrite the predecessors code to create a reduced graphNiko Matsakis-0/+3
The old code created a flat listing of "HIR -> WorkProduct" edges. While perfectly general, this could lead to a lot of repetition if the same HIR nodes affect many work-products. This is set to be a problem when we start to skip typeck, since we will be adding a lot more "work-product"-like nodes. The newer code uses an alternative strategy: it "reduces" the graph instead. Basically we walk the dep-graph and convert it to a DAG, where we only keep intermediate nodes if they are used by multiple work-products. This DAG does not contain the same set of nodes as the original graph, but it is guaranteed that (a) every output node is included in the graph and (b) the set of input nodes that can reach each output node is unchanged. (Input nodes are basically HIR nodes and foreign metadata; output nodes are nodes that have assocaited state which we will persist to disk in some way. These are assumed to be disjoint sets.)
2017-01-22Remove unused `extern crate`s.Jeffrey Seyfried-2/+0
2017-01-22Warn on unused `#[macro_use]` imports.Jeffrey Seyfried-1/+1
2017-01-16incr.comp.: Delete orphaned work-products.Michael Woerister-0/+1
2017-01-08Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrcbors-1/+1
Remove not(stage0) from deny(warnings) Historically this was done to accommodate bugs in lints, but there hasn't been a bug in a lint since this feature was added which the warnings affected. Let's completely purge warnings from all our stages by denying warnings in all stages. This will also assist in tracking down `stage0` code to be removed whenever we're updating the bootstrap compiler.
2016-12-30Compilation fixesest31-0/+2
2016-12-29Remove not(stage0) from deny(warnings)Alex Crichton-1/+1
Historically this was done to accommodate bugs in lints, but there hasn't been a bug in a lint since this feature was added which the warnings affected. Let's completely purge warnings from all our stages by denying warnings in all stages. This will also assist in tracking down `stage0` code to be removed whenever we're updating the bootstrap compiler.
2016-12-15Use StableHasher everywhereAriel Ben-Yehuda-1/+1
The standard implementations of Hasher have architecture-dependent results when hashing integers. This causes problems when the hashes are stored within metadata - metadata written by one host architecture can't be read by another. To fix that, implement an architecture-independent StableHasher and use it in all places an architecture-independent hasher is needed. Fixes #38177.
2016-12-09incr.comp.: Take symbol visibility into account for CGU hashes.Michael Woerister-0/+1
2016-11-30Update the bootstrap compilerAlex Crichton-2/+0
Now that we've got a beta build, let's use it!
2016-11-03Stabilize `..` in tuple (struct) patternsVadim Petrochenkov-1/+1
2016-10-17ICH: Use 128-bit Blake2b hash instead of 64-bit SipHash for incr. comp. ↵Michael Woerister-0/+1
fingerprints.
2016-10-12Stabilise `?`Nick Cameron-1/+1
cc [`?` tracking issue](https://github.com/rust-lang/rust/issues/31436)
2016-09-23ICH: Add ability to test the ICH of exported metadata items.Michael Woerister-0/+7
2016-09-20Remove librbml and the RBML-tagged auto-encoder/decoder.Eduard Burtescu-1/+0
2016-09-06Auto merge of #36025 - michaelwoerister:incr-comp-hash-spans, r=nikomatsakisbors-0/+1
incr. comp.: Take spans into account for ICH This PR makes the ICH (incr. comp. hash) take spans into account when debuginfo is enabled. A side-effect of this is that the SVH (which is based on the ICHs of all items in the crate) becomes sensitive to the tiniest change in a code base if debuginfo is enabled. Since we are not trying to model ABI compatibility via the SVH anymore (this is done via the crate disambiguator now), this should be not be a problem. Fixes #33888. Fixes #32753.
2016-09-04Replace `_, _` with `..`Vadim Petrochenkov-0/+1
2016-09-01Fill some holes in SVH/ICH computation, making it more strict.Michael Woerister-0/+1
2016-08-29Implement copy-on-write scheme for managing the incremental compilation cache.Michael Woerister-0/+2
2016-08-23rename HashesMap to IncrementalHashesMapNiko Matsakis-2/+2
2016-08-20compute and cache HIR hashes at beginningNiko Matsakis-1/+2
This avoids the compile-time overhead of computing them twice. It also fixes an issue where the hash computed after typeck is differen than the hash before, because typeck mutates the def-map in place. Fixes #35549. Fixes #35593.
2016-07-28Modify trans to skip generating `.o` filesNiko Matsakis-0/+2
This checks the `previous_work_products` data from the dep-graph and tries to simply copy a `.o` file if possible. We also add new work-products into the dep-graph, and create edges to/from the dep-node for a work-product.
2016-07-28Code to save/load the work-products map from diskNiko Matsakis-0/+2
Work products are deleted if any of their inputs are dirty.
2016-06-23Move errors from libsyntax to its own crateJonathan Turner-0/+1
2016-04-06rebase: get `bug!` macroNiko Matsakis-1/+1
2016-04-06make an incremental crateNiko Matsakis-0/+41
for now, this houses `svh` and the code to check `assert_dep_graph` is sane