summary refs log tree commit diff
path: root/src/librustc_incremental
AgeCommit message (Collapse)AuthorLines
2018-05-02make it compile againflip1995-1/+1
2018-04-27Rename InternedString to LocalInternedString and introduce a new thread-safe ↵John Kåre Alsaker-1/+1
InternedString
2018-04-15Add misc timingsJohn Kåre Alsaker-4/+14
2018-04-08Move deny(warnings) into rustbuildMark Simulacrum-1/+0
This permits easier iteration without having to worry about warnings being denied. Fixes #49517
2018-04-07Auto merge of #49661 - alexcrichton:bump-bootstrap, r=nikomatsakisbors-3/+0
Bump the bootstrap compiler to 1.26.0 beta Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
2018-04-06Use `Ident` instead of `Name` in `MetaItem`Vadim Petrochenkov-1/+1
2018-04-05Bump the bootstrap compiler to 1.26.0 betaAlex Crichton-3/+0
Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
2018-03-28Rollup merge of #49364 - wesleywiser:incr_handle_load_failure, ↵kennytm-1/+4
r=michaelwoerister [incremental] Don't panic if decoding the cache fails If the cached data can't be loaded from disk, just issue a warning to the user so they know why compilation is taking longer than usual but don't fail the entire compilation since we can recover by ignorning the on disk cache. In the same way, if the disk cache can't be deserialized (because it has been corrupted for some reason), report the issue as a warning and continue without failing the compilation. `Decodable::decode()` tends to panic with various errors like "entered unreachable code" or "index out of range" if the input data is corrupted. Work around this by catching panics from the `decode()` calls and continuing without the cached data. Fixes #48847
2018-03-28[incremental] Don't panic if decoding the cache failsWesley Wiser-1/+4
If the cached data can't be loaded from disk, just issue a warning to the user so they know why compilation is taking longer than usual but don't fail the entire compilation since we can recover by ignorning the on disk cache. In the same way, if the disk cache can't be deserialized (because it has been corrupted for some reason), report the issue as a warning and continue without failing the compilation. `Decodable::decode()` tends to panic with various errors like "entered unreachable code" or "index out of range" if the input data is corrupted. Work around this by catching panics from the `decode()` calls when joining the thread and continuing without the cached data. Fixes #48847
2018-03-26Stabilize i128_typeMark Mansi-1/+1
2018-03-26Stabilize conservative_impl_traitTaylor Cramer-1/+1
2018-03-19Convert SerializedDepGraph to be a struct-of-arraysWesley Wiser-1/+1
Fixes #47326
2018-03-16Auto merge of #49051 - kennytm:rollup, r=kennytmbors-1/+1
Rollup of 17 pull requests - Successful merges: #48706, #48875, #48892, #48922, #48957, #48959, #48961, #48965, #49007, #49024, #49042, #49050, #48853, #48990, #49037, #49049, #48972 - Failed merges:
2018-03-15Stabilize `inclusive_range_syntax` language feature.kennytm-1/+1
Stabilize the syntax `a..=b` and `..=b`.
2018-03-12Dedupe randBastien Orivel-1/+1
2018-03-09Move PROFQ_CHAN to a Session fieldJohn Kåre Alsaker-5/+7
2018-03-05Turn features() into a query.Michael Woerister-2/+2
2018-02-13incr.comp.: Run cache directory garbage collection before loading dep-graph.Michael Woerister-2/+18
2018-01-19Allow runtime switching between trans backendsbjorn3-0/+139
2018-01-13Remove `impl Foo for ..` in favor of `auto trait Foo`leonardo.yvens-3/+0
No longer parse it. Remove AutoTrait variant from AST and HIR. Remove backwards compatibility lint. Remove coherence checks, they make no sense for the new syntax. Remove from rustdoc.
2018-01-13Rollup merge of #47328 - mbrubeck:fs_read, r=sfacklerkennytm-11/+8
Use the new fs_read_write functions in rustc internals Uses `fs::read` and `fs::write` (added by #45837) where appropriate, to simplify code and dog-food these new APIs. This also improves performance, when combined with #47324.
2018-01-11Auto merge of #47087 - Zoxc:incr_no_in_ignore, r=michaelwoeristerbors-66/+68
Replace uses of DepGraph.in_ignore with DepGraph.with_ignore I currently plan to track tasks in thread local storage. Ignoring things in a closure ensures that the ignore tasks do not overlap the beginning or end of any other task. The TLS API will also use a closure to change a TLS value, so having the ignore task be a closure also helps there. It also adds `assert_ignored` which is used before a `TyCtxt` is created. Instead of adding a new ignore task this simply ensures that we are in a context where reads are ignored. r? @michaelwoerister
2018-01-10Use the new fs_read_write functions in rustc internalsMatt Brubeck-11/+8
2018-01-09Replace uses of DepGraph.in_ignore with DepGraph.with_ignoreJohn Kåre Alsaker-66/+68
2018-01-08Shorten names of some compiler generated artifacts.Michael Woerister-7/+8
2018-01-07Try to fix a perf regression by updating logMalo Jaffré-1/+1
Upgrade `log` to `0.4` in multiple crates.
2017-12-20incr.comp.: Use an IndexVec instead of a hashmap for storing result hashes.Michael Woerister-2/+4
2017-12-15Resolves #46555 - Moving loading and decoding of dependency graph to ↵David Teller-55/+117
background thread
2017-11-29incr.comp.: Remove on-export crate metadata hashing.Michael Woerister-346/+3
2017-11-19Remove some trailing whitespace.Michael Woerister-1/+1
2017-11-19Fix tidy line-length issue.Michael Woerister-1/+2
2017-11-17[incremental] Collect stats about duplicated edge reads from queriesWesley Wiser-0/+3
Part of #45873
2017-11-16incr.comp.: Remove default serialization implementations for things in ↵Michael Woerister-5/+4
rustc::hir::def_id so that we get an ICE instead of silently doing the wrong thing.
2017-11-15incr.comp.: Only save and load query result cache when -Zincremental-queries ↵Michael Woerister-6/+9
is specified.
2017-11-14incr.comp.: Store the query result index which records where query results ↵Michael Woerister-1/+1
can be found in the cached.
2017-11-13incr.comp.: Include header when loading cache files in order to get the same ↵Michael Woerister-18/+26
byte offsets as when saving.
2017-11-08std: Remove `rand` crate and moduleAlex Crichton-3/+5
This commit removes the `rand` crate from the standard library facade as well as the `__rand` module in the standard library. Neither of these were used in any meaningful way in the standard library itself. The only need for randomness in libstd is to initialize the thread-local keys of a `HashMap`, and that unconditionally used `OsRng` defined in the standard library anyway. The cruft of the `rand` crate and the extra `rand` support in the standard library makes libstd slightly more difficult to port to new platforms, namely WebAssembly which doesn't have any randomness at all (without interfacing with JS). The purpose of this commit is to clarify and streamline randomness in libstd, focusing on how it's only required in one location, hashmap seeds. Note that the `rand` crate out of tree has almost always been a drop-in replacement for the `rand` crate in-tree, so any usage (accidental or purposeful) of the crate in-tree should switch to the `rand` crate on crates.io. This then also has the further benefit of avoiding duplication (mostly) between the two crates!
2017-11-03Fix tests and rebase conflictleonardo.yvens-1/+1
2017-11-01Auto merge of #45472 - michaelwoerister:incr-comp-caching-base, r=nikomatsakisbors-2/+37
incr.comp.: Implement compiler diagnostic persistence. This PR implements storing and loading diagnostics that the compiler generates and thus allows for emitting warnings during incremental compilation without actually re-evaluating the thing the warning originally came from. It also lays some groundwork for storing and loading type information and MIR in the incr. comp. cache. ~~It is still work in progress:~~ - ~~There's still some documentation to be added.~~ - ~~The way anonymous queries are handled might lead to duplicated emissions of warnings. Not sure if there is a better way or how frequent such duplication would be in practice.~~ Diagnostic message duplication is addressed separately in #45519. r? @nikomatsakis
2017-10-25incr.comp.: Implement query diagnostic persistence.Michael Woerister-2/+37
2017-10-24Introduce CrateDisambiguator newtype and fix testsIgor Matuszewski-8/+9
2017-10-23Use 128 bit instead of Symbol for crate disambiguatorIgor Matuszewski-10/+5
2017-10-21rustc: Move bytecode compression into codegenAlex Crichton-5/+9
This commit moves compression of the bytecode from the `link` module to the `write` module, namely allowing it to be (a) cached by incremental compilation and (b) produced in parallel. The parallelization may show up as some nice wins during normal compilation and the caching in incremental mode should be beneficial for incremental compiles! (no more need to recompress the entire crate's bitcode on all builds)
2017-10-14Auto merge of #45104 - vitiral:incr_auto_assert2, r=michaelwoeristerbors-28/+393
Incremental compilation auto assert (with except) cc @michaelwoerister bors merged part 1, so this is a WIP of part 2 of #45009 -- auto asserting DepNodes depending on the type of node rustc_clean/dirty is attached to Framework: - [x] finish auto-detection for specified DepNodes - [x] finish auto-detection for remaining DepNodes Test Refactors: - [x] consts.rs - [x] enum_constructors.rs - [x] extern_mods.rs - [x] inherent_impls.rs - [x] statics.rs - [x] struct_constructors.rs - ~~**BLOCKED** trait_defs.rs, see FIXME~~ - ~~**BLOCKED** trait_impls.rs~~ - [x] type_defs.rs - [x] enum_defs.rs
2017-10-13fix review commentsGarrett Berg-18/+17
2017-10-13Auto merge of #45063 - michaelwoerister:bring-back-incremental-info, ↵bors-13/+87
r=nikomatsakis incr.comp.: Bring back output of -Zincremental-info. This got kind lost during the transition to red/green. I also switched back from `eprintln!()` to `println!()` since the former never actually produced any output. I suspect this has to do with `libterm` somehow monopolizing `stderr`. r? @nikomatsakis
2017-10-12incr comp: rustc_clean/dirty auto assertGarrett Berg-28/+394
This adds auto-assertion to `rustc_clean/dirty` and also implements more comprehensive testing for - src/test/incremental/hashes/enum_constructors.rs - src/test/incremental/hashes/enum_defs.rs - src/test/incremental/hashes/extern_mods.rs - src/test/incremental/hashes/inherent_impls.rs - src/test/incremental/hashes/statics.rs - src/test/incremental/hashes/struct_constructors.rs - src/test/incremental/hashes/type_defs.rs trait_defs.rs and trait_impl.rs are blocked on a hard to triage compiler ICE (at least hard for a newbie like me) having to do with some DepNodes not getting computed for traits. A FIXME has been added in the source to reflect this continued work.
2017-10-08Auto merge of #44983 - vitiral:dirty_clean_groups, r=michaelwoeristerbors-12/+45
groundwork for rustc_clean/dirty improvements This is a WIP PR that needs mentoring from @michaelwoerister. There are several TODOs but no outstanding questions (except for the main one -- **is this the right approach?**) This is the plumbing for supporing groups in `rustc_clean(labels="...")`, as well as supporting an `except="..."` which will remove the excepted labels in the "clean" check and then assert that they are dirty (this is still TODO). See the code TODO's and example comments for a rough design. I'd like to know if this is the design you would like to do, and then I can go about actually filling out the groups and implementing the remaining logic.
2017-10-06incr.comp.: Bring back output of -Zincremental-info.Michael Woerister-13/+87
2017-10-04groundwork for #45009: rustc_dirty/clean enhancementsGarrett Berg-12/+45