Michael Woerister
d714b9790b
incr.comp.: Don't use Ident in DefPath because that's unstable across compilation sessions.
2017-06-13 13:47:13 +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
9da83a8daf
Don't print the whole crate disambiguator value in debug output
2017-05-31 15:55:35 +02:00
Michael Woerister
f854f8b366
Build DefPathHash->DefId table when incr.comp. is enabled
2017-05-31 14:53:39 +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
Jeffrey Seyfried
3eb235b45e
Improve intercrate hygiene.
2017-05-25 05:52:11 +00:00
Jeffrey Seyfried
dde8dc61dd
Improve efficiency.
2017-05-25 05:52:10 +00:00
Jeffrey Seyfried
bfa2ef62a1
Hygienize librustc_typeck
.
2017-05-25 05:52:05 +00:00
Michael Woerister
4549423f28
Use 128 instead of 64 bits for DefPath hashes
2017-05-18 11:10:11 +02:00
Michael Woerister
edc1ac3016
ICH: Centrally compute and cache DefPath hashes as part of DefPathTable.
2017-04-07 14:36:51 +02:00
Michael Woerister
c47cdc0d93
Introduce HashStable trait and base ICH implementations on it.
...
This initial commit provides implementations for HIR, MIR, and
everything that also needs to be supported for those two.
2017-04-06 16:01:51 +02:00
Michael Woerister
090767b5ef
Allocate numerical values of DefIndexes from two seperate ranges.
...
This way we can have all item-likes occupy a dense range of
DefIndexes, which is good for making fast, array-based
dictionaries.
2017-03-22 17:07:19 +01:00
Michael Woerister
bc259ee844
Introduce HirId, a replacement for NodeId after lowering to HIR.
...
HirId has a more stable representation than NodeId, meaning that
modifications to one item don't influence (part of) the IDs within
other items. The other part is a DefIndex for which there already
is a way of stable hashing and persistence.
This commit introduces the HirId type and generates a HirId for
every NodeId during HIR lowering, but the resulting values are
not yet used anywhere, except in consistency checks.
2017-03-22 17:02:07 +01:00
Niko Matsakis
d572aa2fd4
fix tests to handle the Typeof bodies
2017-03-01 17:04:01 -05:00
Eduard-Mihai Burtescu
e64f64a2fc
rustc: separate bodies for static/(associated)const and embedded constants.
2016-12-28 11:27:57 +02:00
Michael Woerister
45571f34aa
definitions: Add some documentation.
2016-12-16 19:14:16 -05:00
Michael Woerister
72f95aac1b
Move retrace_path() implementation to DefPathTable
2016-12-16 19:14:16 -05:00
Michael Woerister
ed5a88e3d0
definitions: Store DefPath data in separate table in metadata
2016-12-16 19:14:16 -05:00
Michael Woerister
aed0cdbfd2
definitions: Don't allocate DefIds for inlined HIR
2016-12-16 19:14:16 -05:00
Michael Woerister
8e34a8e422
Definitions: Extract DefPath interning into its own data structure.
2016-12-16 19:14:16 -05:00
Michael Woerister
87b407136b
Definitions: Split out NodeId <-> DefIndex mapping
2016-12-16 19:13:18 -05:00
Ariel Ben-Yehuda
e1d4b8fc8c
Use StableHasher everywhere
...
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-15 20:48:59 +02:00
Jeffrey Seyfried
36c8f6b0d3
Cleanup InternedString
.
2016-11-21 09:00:56 +00:00
Jeffrey Seyfried
e85a0d70b8
Use Symbol
instead of InternedString
in the AST, HIR, and various other places.
2016-11-21 09:00:55 +00:00
Jeffrey Seyfried
d2f8fb0a0a
Move syntax::util::interner
-> syntax::symbol
, cleanup.
2016-11-20 23:40:20 +00:00
Nicholas Nethercote
00e48affde
Replace FnvHasher use with FxHasher.
...
This speeds up compilation by 3--6% across most of rustc-benchmarks.
2016-11-08 15:14:59 +11:00
Alex Crichton
10c3134da0
std: Stabilize and deprecate APIs for 1.13
...
This commit is intended to be backported to the 1.13 branch, and works with the
following APIs:
Stabilized
* `i32::checked_abs`
* `i32::wrapping_abs`
* `i32::overflowing_abs`
* `RefCell::try_borrow`
* `RefCell::try_borrow_mut`
* `DefaultHasher`
* `DefaultHasher::new`
* `DefaultHasher::default`
Deprecated
* `BinaryHeap::push_pop`
* `BinaryHeap::replace`
* `SipHash13`
* `SipHash24`
* `SipHasher` - use `DefaultHasher` instead in the `std::collections::hash_map`
module
Closes #28147
Closes #34767
Closes #35057
Closes #35070
2016-10-03 10:34:34 -07:00
Jeffrey Seyfried
ebaaafcd5d
Peform def id assignment during expansion.
2016-09-27 06:42:09 +00:00
Jeffrey Seyfried
173d5b339f
Split up DefCollector::root()
.
2016-09-22 21:14:05 +00:00
Eduard Burtescu
a23b8cafec
rustc: don't hash the --extern crate name, but the original one, in DefPath.
2016-09-20 20:08:06 +03:00
Eduard Burtescu
dadbaa48ac
rustc_metadata: move opt_item_name to TyCtxt::item_name.
2016-09-20 20:08:06 +03:00
Eduard Burtescu
fc363cb482
rustc_metadata: go only through rustc_serialize in astencode.
2016-09-20 20:07:54 +03:00
Eduard Burtescu
ef11d4e3c7
rustc: add TyAnon (impl Trait) to the typesystem.
2016-08-12 06:43:34 +03:00
Niko Matsakis
8150494ac2
add a deterministic_hash
method to DefPath
...
Produces a deterministic hash, at least for a single platform /
compiler-version.
2016-08-09 08:26:06 -04:00
Niko Matsakis
571010bb52
replace Name with InternedString in DefPathData
...
Fixes #35292 .
2016-08-09 08:26:06 -04:00
Niko Matsakis
2e7df80098
make metadata hashes determinstic
...
When we hash the inputs to a MetaData node, we have to hash them in a
consistent order. We achieve this by sorting the stringfied `DefPath`
entries. Also, micro-optimie by cache more results across the saving
process.
2016-08-02 05:31:25 -04:00
Jeffrey Seyfried
e58963d3e4
groundwork: create the Resolver
earlier in phase 2
2016-06-28 05:28:27 +00:00
Ticki
da55fd788b
Improve internal documentation and code style
...
Fix some code layout, remove some unnecessary returns, fix typos,
punctuation, and comment consistency.
2016-05-21 08:51:08 -05:00
Niko Matsakis
b01919a144
allow retracing paths across crates
...
For external crates, we must build up a map that goes from
the DefKey to the DefIndex. We do this by iterating over each
index that is found in the metadata and loading the associated
DefKey.
2016-05-18 10:11:36 -04:00
Jeffrey Seyfried
8428447253
Move resolution to before lowering
2016-05-09 02:31:04 +00:00
Michael Woerister
e8441b6784
Add initial version of codegen unit partitioning for incremental compilation.
2016-04-15 10:05:53 -04:00
Niko Matsakis
d8263c4758
add function to retrace a DefPath to a DefId
...
used after loading state from previous compilation
2016-04-06 12:42:46 -04:00
Eduard Burtescu
ffca6c3e15
rustc: move middle::{def,def_id,pat_util} to hir.
2016-04-06 09:14:21 +03:00
Eduard Burtescu
8b0937293b
rustc: move rustc_front to rustc::hir.
2016-04-06 09:01:55 +03:00