Commit graph

317 commits

Author SHA1 Message Date
Igor Matuszewski
7fa64bcef3 Introduce CrateDisambiguator newtype and fix tests 2017-10-24 17:49:58 +02:00
Igor Matuszewski
d017466d10 Use 128 bit instead of Symbol for crate disambiguator 2017-10-23 18:44:58 +02:00
Alex Crichton
8197a0bbaf rustc: Move bytecode compression into codegen
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-21 13:02:34 -07:00
bors
2aeff0f1b3 Auto merge of #45104 - vitiral:incr_auto_assert2, r=michaelwoerister
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-14 04:11:49 +00:00
Garrett Berg
80c13ce134 fix review comments 2017-10-13 10:15:03 -06:00
bors
305e02281b Auto merge of #45063 - michaelwoerister:bring-back-incremental-info, 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-13 15:04:12 +00:00
Garrett Berg
f7fe970400 incr comp: rustc_clean/dirty auto assert
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-12 22:32:45 -06:00
bors
928a295718 Auto merge of #44983 - vitiral:dirty_clean_groups, r=michaelwoerister
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-08 03:02:35 +00:00
Michael Woerister
b81c8580ca incr.comp.: Bring back output of -Zincremental-info. 2017-10-06 16:04:38 +02:00
Garrett Berg
ad9b1ed9c2 groundwork for #45009: rustc_dirty/clean enhancements 2017-10-04 07:20:59 -06:00
Michael Woerister
c96d0bff94 incr.comp.: Fix some merge fallout. 2017-10-03 13:50:55 +02:00
Michael Woerister
171c020857 incr.comp.: Remove saving and loading of legacy dep-graph. 2017-10-02 15:47:11 +02:00
Michael Woerister
272c324b25 incr.comp.: Build DepGraphQuery from new dep-graph impl. 2017-10-02 15:45:46 +02:00
Michael Woerister
e6badfd449 incr.comp.: Use red/green tracking for CGU re-use. 2017-10-02 15:45:46 +02:00
Michael Woerister
a948be81cd incr.comp.: Determine red/green state of every new node. 2017-10-02 15:36:47 +02:00
Santiago Pastorino
cde47cef0f Remove DepNodeIndex::new is already impl for Idx 2017-09-27 15:11:22 -03:00
Michael Woerister
89aec1eb0b incr.comp.: Remove out-dated unit test and unnecessary assertion. 2017-09-23 19:49:05 +02:00
Michael Woerister
45a03f153f incr.comp.: Make #[rustc_dirty/clean] test for fingerprint equality instead of DepNode existence. 2017-09-23 19:47:46 +02:00
Michael Woerister
2a50d127dd incr.comp.: Remove support for loading metadata fingerprints. 2017-09-23 19:47:37 +02:00
Michael Woerister
5974ec745e incr.comp.: Serialize and deserialize new DepGraph 2017-09-23 19:47:28 +02:00
Michael Woerister
47d14ccd51 incr.comp.: Remove IncrementalHashesMap and calculate_svh module. 2017-09-20 11:21:25 +02:00
Michael Woerister
c4d1651266 incr.comp.: Store result fingerprints in DepGraph. 2017-09-20 11:21:25 +02:00
Michael Woerister
25bc69ec20 incr.comp.: Allow for marking DepKinds as inputs. 2017-09-20 11:21:25 +02:00
Michael Woerister
d5b1fee6fd incr.comp.: Remove tcx from StableHashingContext. 2017-09-18 11:29:47 +02:00
Michael Woerister
ba6f93ca76 incr.comp.: Make the StableHashingContext mostly independent of the tcx. 2017-09-18 11:28:31 +02:00
Michael Woerister
e3f913167c Fix issues uncovered by rebasing:
- Don't hash traits in scope as part of HIR hashing any more.
- Some queries returned DefIndexes from other crates.
- Provide a generic way of stably hashing maps (not used everywhere yet).
2017-09-18 11:25:34 +02:00
Alex Crichton
1cf956f2ba rustc: Remove Session::dep_graph
This commit removes the `dep_graph` field from the `Session` type according to
issue #44390. Most of the fallout here was relatively straightforward and the
`prepare_session_directory` function was rejiggered a bit to reuse the results
in the later-called `load_dep_graph` function.

Closes #44390
2017-09-14 10:40:50 -07:00
Alex Crichton
d6c88f4936 rustc: Move crate_hash to a query 2017-09-05 07:37:27 -07:00
Tamir Duberstein
b3f50caee0
*: remove crate_{name,type} attributes
Fixes #41701.
2017-08-25 16:18:21 -04:00
Vadim Petrochenkov
de4dbe5789 rustc: Remove some dead code 2017-08-19 13:27:16 +03:00
Corey Farwell
a4387d54dc Rollup merge of #43891 - Fourchaux:master, r=steveklabnik
Fix typos & us spellings

Fixing some typos and non en-US spellings.

(Update of PR https://github.com/rust-lang/rust/pull/42812 )
2017-08-17 10:44:07 -04:00
Zack M. Davis
1b6c9605e4 use field init shorthand EVERYWHERE
Like #43008 (f668999), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
Fourchaux
c7104be1a3 Fix typos & us spellings 2017-08-15 21:56:30 +02:00
Michael Woerister
7e09d1e170 async-llvm(18): Instantiate OngoingCrateTranslation before starting translation. 2017-07-31 15:15:09 +02:00
Alex Crichton
02219642bc rustc: Add some build scripts for librustc crates
This commit adds some "boilerplate" build scripts to librustc/libsyntax crates
to declare dependencies on various environment variables that are configured
throughout the build. Cargo recently gained the ability to depend on environment
variables in build scripts which can help trigger recompilation of a crate.

This should fix weird bugs where after you make a commit or a few days later
you'll get weird "not built with the same compiler" errors hopefully.
2017-07-22 22:04:13 -07:00
Michael Woerister
089860b603 incr.comp.: Manage dependency graph on main thread. 2017-07-10 12:21:39 +02:00
Michael Woerister
ca0a40396c incr.comp.: Improve debug output for work products. 2017-07-10 12:20:56 +02:00
Stjepan Glavina
66f8cddae5 Remove the remaining feature gates 2017-07-02 21:29:39 +02:00
Michael Woerister
12b11d8346 Print -Zincremental-info to stderr instead of stdout. 2017-06-22 10:27:51 +02:00
Alex Crichton
be7ebdd512 Bump version and stage0 compiler 2017-06-19 22:25:05 -07:00
Niko Matsakis
3f99118871 kill various tasks we no longer need and remove outdated README text
In the case of `TransCrateItem`, I had to tweak the tests a bit, but
it's a concept that doesn't work well under new system.
2017-06-12 16:00:31 -04:00
Michael Woerister
7f482808f9 incr.comp.: Clean up and optimize dep-graph loading. 2017-06-09 15:03:34 +02:00
Michael Woerister
3607174909 incr.comp.: Uniformly represent DepNodes as (Kind, StableHash) pairs. 2017-06-09 15:03:34 +02:00
Michael Woerister
8b36d3308e Allocate DefIndices for global crate metadata.
This allows for treating global crate metadata the same as regular metadata with regard to incr. comp.
2017-06-07 12:11:40 +02:00
Michael Woerister
12e5b699a4 incr.comp.: Make WorkProductId opaque so we don't accidentally rely on being able to reconstruct obj-file names from one. 2017-06-06 15:09:21 +02:00
Michael Woerister
b6e8635fef ICH: Make StableHashingContext work with any TyCtxt, not just the global one. 2017-06-06 13:50:13 +02:00
Michael Woerister
a3417bf302 incr.comp.: Use a more efficient encoding for the on-disk dependency graph. 2017-06-01 17:04:46 +02:00
Michael Woerister
0cbb8b58e8 incr.comp.: Use DefPathHash-based DepNodes in the serialized DepGraph and remove obsolete DefIdDirectory. 2017-05-31 16:42:52 +02:00
Michael Woerister
59ebe8e115 Make a newtype for DefPathHash so they are not confused with content hashes 2017-05-31 13:54:38 +02:00
Michael Woerister
21dd71f514 incr.comp.: Track expanded spans instead of FileMaps. 2017-05-23 18:20:51 +02:00