summary refs log tree commit diff
path: root/src/librustc_data_structures/lib.rs
AgeCommit message (Collapse)AuthorLines
2017-05-27Stabilize unions with `Copy` fields and no destructorVadim Petrochenkov-1/+0
2017-05-11rustc: Remove #![unstable] annotationAlex Crichton-3/+4
These are now no longer necessary with `-Z force-unstable-if-unmarked`
2017-04-12ICH: Replace old, transitive metadata hashing with direct hashing approach.Michael Woerister-0/+1
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-09Move away from the ad-hoc NoDrop unionsSimonas Kazlauskas-0/+1
2017-04-06Introduce HashStable trait and base ICH implementations on it.Michael Woerister-0/+2
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-17Stabilize rc_raw feature, closes #37197Aaron Turon-1/+0
2017-03-10Add extra methods to IndexVec and implement TypeFoldable for itJames Miller-0/+1
Adds `get`/`get_mut` accessors and `drain`/`drain_enumerated` iterators to IndexVec. Implements TypeFoldable for IndexVec.
2017-02-28move the `FreeRegionMap` into `TypeckTables`Niko Matsakis-0/+1
2017-02-03Bump version, upgrade bootstrapAlex Crichton-2/+1
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.
2017-01-14add required imports & featureDjzin-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.
2017-01-03Add drain method to AccumulateVec/ArrayVecAndrew Cann-0/+2
You can now call .drain(..) on SmallVec, AccumulateVec and ArrayVec
2016-12-30Fix rebase fallout and compilation 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-0/+3
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-11-13Make names of types used in LLVM IR stable.Michael Woerister-0/+1
Before this PR, type names could depend on the cratenum being used for a given crate and also on the source location of closures. Both are undesirable for incremental compilation where we cache LLVM IR and don't want it to depend on formatting or in which order crates are loaded.
2016-11-11Change implementation of syntax::util::SmallVector to use ↵Mark-Simulacrum-0/+1
data_structures::SmallVec.
2016-11-08Replace FnvHasher use with FxHasher.Nicholas Nethercote-0/+1
This speeds up compilation by 3--6% across most of rustc-benchmarks.
2016-10-30Replace all uses of SHA-256 with BLAKE2b.Michael Woerister-0/+1
2016-10-25Add AccumulateVec, a potentially stack-allocated vector.Mark-Simulacrum-0/+5
AccumulateVec is generic over the Array trait, which is currently only implemented for [T; 8].
2016-10-17ICH: Use 128-bit Blake2b hash instead of 64-bit SipHash for incr. comp. ↵Michael Woerister-0/+1
fingerprints.
2016-10-10Move IdxSetBuf and BitSlice to rustc_data_structuresWesley Wiser-0/+2
Resolves a FIXME
2016-08-29incr.comp.: Move lock files out of directory being lockedMichael Woerister-1/+1
2016-08-29Move `flock.rs` from librustdoc to librustc_data_structures.Michael Woerister-0/+4
2016-06-23add control flow graph and algorithms. add dominator to mirScott A Carr-0/+1
2016-06-09introduce the type-safe IdxVec and use it instead of loose indexesAriel Ben-Yehuda-0/+1
2016-05-31add a snapshottable hashmapNiko Matsakis-0/+1
2016-05-13add cycle-reporting logicAriel Ben-Yehuda-0/+2
Fixes #33344
2016-03-05apply rustfmt to librustc_data_structures, correcting ↵Niko Matsakis-1/+2
rust-lang-nursery/rustfmt#836
2016-01-26Auto merge of #31120 - alexcrichton:attribute-deny-warnings, r=brsonbors-0/+1
This commit removes the `-D warnings` flag being passed through the makefiles to all crates to instead be a crate attribute. We want these attributes always applied for all our standard builds, and this is more amenable to Cargo-based builds as well. Note that all `deny(warnings)` attributes are gated with a `cfg(stage0)` attribute currently to match the same semantics we have today
2016-01-26std: Stabilize custom hasher support in HashMapAlex Crichton-1/+0
This commit implements the stabilization of the custom hasher support intended for 1.7 but left out due to some last-minute questions that needed some decisions. A summary of the actions done in this PR are: Stable * `std::hash::BuildHasher` * `BuildHasher::Hasher` * `BuildHasher::build_hasher` * `std::hash::BuildHasherDefault` * `HashMap::with_hasher` * `HashMap::with_capacity_and_hasher` * `HashSet::with_hasher` * `HashSet::with_capacity_and_hasher` * `std::collections::hash_map::RandomState` * `RandomState::new` Deprecated * `std::collections::hash_state` * `std::collections::hash_state::HashState` - this trait was also moved into `std::hash` with a reexport here to ensure that we can have a blanket impl to prevent immediate breakage on nightly. Note that this is unstable in both location. * `HashMap::with_hash_state` - renamed * `HashMap::with_capacity_and_hash_state` - renamed * `HashSet::with_hash_state` - renamed * `HashSet::with_capacity_and_hash_state` - renamed Closes #27713
2016-01-24mk: Move from `-D warnings` to `#![deny(warnings)]`Alex Crichton-0/+1
This commit removes the `-D warnings` flag being passed through the makefiles to all crates to instead be a crate attribute. We want these attributes always applied for all our standard builds, and this is more amenable to Cargo-based builds as well. Note that all `deny(warnings)` attributes are gated with a `cfg(stage0)` attribute currently to match the same semantics we have today
2016-01-14implement the obligation forest data structure and add some unit testsNiko Matsakis-1/+5
2016-01-05Introduce the DepGraph and DepTracking map abstractions,Niko Matsakis-0/+1
along with a README explaining how they are to be used
2015-12-21Register new snapshotsAlex Crichton-3/+0
Lots of cruft to remove!
2015-12-10Add TupleSlice trait to rustc_data_structures.Michael Woerister-0/+1
2015-11-25Remove all uses of `#[staged_api]`Vadim Petrochenkov-1/+1
2015-09-06move fnv hashing support into librustc_data_structuresNiko Matsakis-0/+3
2015-08-18implement transitive relation type that can compute transitiveNiko Matsakis-0/+1
closures, upper bounds, and other fun things
2015-08-18reorder imports to respect the alphabet, only one of the single mostNiko Matsakis-2/+2
important inventions of all time
2015-08-15Add issue for the rustc_private feature everywhereAlex Crichton-1/+1
2015-08-11rollup merge of #27676: alexcrichton/msvc-unwindAlex Crichton-0/+4
This commit leverages the runtime support for DWARF exception info added in #27210 to enable unwinding by default on 64-bit MSVC. This also additionally adds a few minor fixes here and there in the test harness and such to get `make check` entirely passing on 64-bit MSVC: * The invocation of `maketest.py` now works with spaces/quotes in CC * debuginfo tests are disabled on MSVC * A link error for librustc was hacked around (see #27438)
2015-08-11trans: Re-enable unwinding on 64-bit MSVCAlex Crichton-0/+4
This commit leverages the runtime support for DWARF exception info added in #27210 to enable unwinding by default on 64-bit MSVC. This also additionally adds a few minor fixes here and there in the test harness and such to get `make check` entirely passing on 64-bit MSVC: * The invocation of `maketest.py` now works with spaces/quotes in CC * debuginfo tests are disabled on MSVC * A link error for librustc was hacked around (see #27438)
2015-08-09Use https URLs to refer to rust-lang.org where appropriate.Eli Friedman-3/+3
Also fixes a few outdated links.
2015-08-06add an Ivar for write-only variablesAriel Ben-Yehuda-0/+1
2015-04-20Make stability attributes an error. #22830Brian Anderson-1/+2
2015-04-17Add licenses.Niko Matsakis-1/+1
2015-04-17Port to use the new Unify code, which has no UnifyValue traitNiko Matsakis-0/+1
but is otherwise mostly the same.
2015-04-17Port to using the newer graph, which offers iterators instead of theNiko Matsakis-0/+2
older `each` method, but is otherwise identical.