about summary refs log tree commit diff
path: root/src/librustc_data_structures/stable_hasher.rs
AgeCommit message (Collapse)AuthorLines
2020-08-30mv compiler to compiler/mark-578/+0
2020-07-20index: introduce and use `FiniteBitSet`David Wood-0/+9
This commit introduces a `FiniteBitSet` type which replaces the manual bit manipulation which was being performed in polymorphization. Signed-off-by: David Wood <david@davidtw.co>
2020-04-16rustc_target::abi: add Primitive variant to FieldsShape.Ana-Maria Mihalache-0/+6
2020-02-19Tune inliningJohn Kåre Alsaker-0/+1
2019-12-22Format the worldMark Rousskov-78/+70
2019-11-26Fix spelling typosBrian Wignall-1/+1
2019-11-17Implement HashStable for RangeInclusive.Camille GILLOT-0/+10
2019-10-21Remove many unnecessary trait derivations.Nicholas Nethercote-2/+2
2019-10-21Remove unnecessary `Hash` bounds from various types.Nicholas Nethercote-3/+3
2019-09-29remove indexed_vec re-export from rustc_data_structurescsmoe-4/+4
2019-09-29remove bit_set re-export from rustc_data_structurescsmoe-1/+1
2019-09-28Switch over all StableHash impls to new formatMark Rousskov-102/+38
2019-09-28StableHasher does not need to be generic over the Result typeMark Rousskov-11/+7
2019-06-26Fix clippy::cast_loslessIgor Matuszewski-1/+1
2019-06-10Add more functionality to BitMatrixTyler Mandry-0/+10
2019-06-01rustc: use indexmap instead of a plain vector for upvars.Eduard-Mihai Burtescu-0/+31
2019-05-20Document requirements for HashStable implementations better.Michael Woerister-0/+24
2019-05-17Remove unused field from StableHasher.Michael Woerister-20/+0
2019-05-04Delegate SmallVec's stable_hash to array's stable_hash.Jesper Steen Møller-3/+1
2019-05-04Hash all of the import_ids for the TraitCandidate.Jesper Steen Møller-0/+12
2019-02-09librustc_data_structures => 2018Taiki Endo-4/+6
2018-12-25Remove licensesMark Rousskov-10/+0
2018-09-18Merge indexed_set.rs into bitvec.rs, and rename it bit_set.rs.Nicholas Nethercote-1/+1
Currently we have two files implementing bitsets (and 2D bit matrices). This commit combines them into one, taking the best features from each. This involves renaming a lot of things. The high level changes are as follows. - bitvec.rs --> bit_set.rs - indexed_set.rs --> (removed) - BitArray + IdxSet --> BitSet (merged, see below) - BitVector --> GrowableBitSet - {,Sparse,Hybrid}IdxSet --> {,Sparse,Hybrid}BitSet - BitMatrix --> BitMatrix - SparseBitMatrix --> SparseBitMatrix The changes within the bitset types themselves are as follows. ``` OLD OLD NEW BitArray<C> IdxSet<T> BitSet<T> -------- ------ ------ grow - grow new - (remove) new_empty new_empty new_empty new_filled new_filled new_filled - to_hybrid to_hybrid clear clear clear set_up_to set_up_to set_up_to clear_above - clear_above count - count contains(T) contains(&T) contains(T) contains_all - superset is_empty - is_empty insert(T) add(&T) insert(T) insert_all - insert_all() remove(T) remove(&T) remove(T) words words words words_mut words_mut words_mut - overwrite overwrite merge union union - subtract subtract - intersect intersect iter iter iter ``` In general, when choosing names I went with: - names that are more obvious (e.g. `BitSet` over `IdxSet`). - names that are more like the Rust libraries (e.g. `T` over `C`, `insert` over `add`); - names that are more set-like (e.g. `union` over `merge`, `superset` over `contains_all`, `domain_size` over `num_bits`). Also, using `T` for index arguments seems more sensible than `&T` -- even though the latter is standard in Rust collection types -- because indices are always copyable. It also results in fewer `&` and `*` sigils in practice.
2018-09-07rewrite constants to use NewType::MAX instead of u32::MAXNiko Matsakis-0/+8
Also, adjust the MAX to be `u32::MAX - 1`, leaving room for `u32::MAX` to become a sentinel value in the future.
2018-09-03Implement Hash in terms of HashStable for EvalSnapshotBruno Dutra-0/+17
2018-08-20Remove IdxSet typedef and Rename {,Hybrid}IdxSetBuf as {,Hybrid}IdxSet.Nicholas Nethercote-1/+1
Now that the `Buf` vs. non-`Buf` distinction has been removed, it makes sense to drop the `Buf` suffix and use the shorter names everywhere.
2018-08-09Reuse Hash impls for session data structuresMark Rousskov-4/+7
2018-03-09Move PROFQ_CHAN to a Session fieldJohn Kåre Alsaker-23/+0
2018-03-08Produce instead of pointersOliver Schneider-0/+8
2017-10-26Update some comments about StableHasher.Michael Woerister-20/+6
2017-10-25Fix 32 vs 64 bit platform instability in StableHasher.Michael Woerister-4/+10
2017-10-16Make debuginfo::UniqueTypeId use 128 bit hash.Michael Woerister-31/+0
2017-10-16Use SipHasher128 in StableHasher.Michael Woerister-53/+66
2017-09-20incr.comp.: Add some comments.Michael Woerister-1/+3
2017-09-20incr.comp.: Make sure traits_in_scope results are hashed in a stable way.Michael Woerister-0/+32
2017-09-18incr.comp.: Fix rebase fallout.Michael Woerister-0/+8
2017-09-18incr.comp.: Use StableHash impls instead of functions for hashing most maps.Michael Woerister-8/+42
2017-09-18Fix issues uncovered by rebasing:Michael Woerister-22/+65
- 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-18incr.comp.: Move result fingerprinting to DepGraph::with_task().Michael Woerister-3/+25
This makes sure that we don't introduce strange cases where we have nodes outside the query system that could break red/green tracking and it will allow to keep red/green neatly encapsulated within the DepGraph implementation.
2017-09-18incr.comp.: Compute hashes of all query results.Michael Woerister-1/+27
2017-08-14Merge remote-tracking branch 'origin/master' into genAlex Crichton-1/+1
2017-08-11Fix some typosBastien Orivel-1/+1
2017-07-28Generator literal supportJohn Kåre Alsaker-0/+9
2017-06-11External spans: fixed unit tests and addressed review.Inokentiy Babushkin-1/+1
2017-06-10Added a `StableHasherResult` impl for `u128`.Inokentiy Babushkin-0/+11
2017-06-06ICH: Add some HashStable implementations.Michael Woerister-0/+26
2017-05-08incr.comp.: Hash more pieces of crate metadata to detect changes there.Michael Woerister-0/+10
2017-04-12ICH: Replace old, transitive metadata hashing with direct hashing approach.Michael Woerister-1/+6
Instead of collecting all potential inputs to some metadata entry and hashing those, we directly hash the values we are storing in metadata. This is more accurate and doesn't suffer from quadratic blow-up when many entries have the same dependencies.
2017-04-06Introduce HashStable trait and base ICH implementations on it.Michael Woerister-1/+191
This initial commit provides implementations for HIR, MIR, and everything that also needs to be supported for those two.
2017-02-03Bump version, upgrade bootstrapAlex Crichton-1/+0
This commit updates the version number to 1.17.0 as we're not on that version of the nightly compiler, and at the same time this updates src/stage0.txt to bootstrap from freshly minted beta compiler and beta Cargo.