about summary refs log tree commit diff
path: root/src/librustc_data_structures/Cargo.toml
AgeCommit message (Collapse)AuthorLines
2020-07-31Move from `log` to `tracing`Oliver Scherer-1/+1
2020-06-19Update chalkJack Huey-1/+1
2020-06-02Rename the crates in source codeVadim Petrochenkov-1/+1
2020-06-02Make things build againVadim Petrochenkov-2/+2
2020-05-22Replace `rustc_data_structures::sync::Once` with `OnceCell`Dylan MacKenzie-0/+1
2020-05-10update stacker to 0.1.9 to unbreak build on OpenBSDSébastien Marie-1/+1
2020-05-07Auto merge of #55617 - oli-obk:stacker, r=nagisa,oli-obkbors-0/+1
Prevent compiler stack overflow for deeply recursive code I was unable to write a test that 1. runs in under 1s 2. overflows on my machine without this patch The following reproduces the issue, but I don't think it's sensible to include a test that takes 30s to compile. We can now easily squash newly appearing overflows by the strategic insertion of calls to `ensure_sufficient_stack`. ```rust // compile-pass #![recursion_limit="1000000"] macro_rules! chain { (EE $e:expr) => {$e.sin()}; (RECURSE $i:ident $e:expr) => {chain!($i chain!($i chain!($i chain!($i $e))))}; (Z $e:expr) => {chain!(RECURSE EE $e)}; (Y $e:expr) => {chain!(RECURSE Z $e)}; (X $e:expr) => {chain!(RECURSE Y $e)}; (A $e:expr) => {chain!(RECURSE X $e)}; (B $e:expr) => {chain!(RECURSE A $e)}; (C $e:expr) => {chain!(RECURSE B $e)}; // causes overflow on x86_64 linux // less than 1 second until overflow on test machine // after overflow has been fixed, takes 30s to compile :/ (D $e:expr) => {chain!(RECURSE C $e)}; (E $e:expr) => {chain!(RECURSE D $e)}; (F $e:expr) => {chain!(RECURSE E $e)}; // more than 10 seconds (G $e:expr) => {chain!(RECURSE F $e)}; (H $e:expr) => {chain!(RECURSE G $e)}; (I $e:expr) => {chain!(RECURSE H $e)}; (J $e:expr) => {chain!(RECURSE I $e)}; (K $e:expr) => {chain!(RECURSE J $e)}; (L $e:expr) => {chain!(RECURSE L $e)}; } fn main() { let x = chain!(D 42.0_f32); } ``` fixes #55471 fixes #41884 fixes #40161 fixes #34844 fixes #32594 cc @alexcrichton @rust-lang/compiler I looked at all code that checks the recursion limit and inserted stack growth calls where appropriate.
2020-05-05Move region_constraint to the unified undo logMarkus Westerlind-1/+1
2020-05-02Move ensure_sufficient_stack to data_structuresSimonas Kazlauskas-0/+1
We anticipate this to have uses in all sorts of crates and keeping it in `rustc_data_structures` enables access to it from more locations without necessarily pulling in the large `librustc` crate.
2020-04-11Depend on libc from crates.ioLuca Barbieri-0/+1
2020-03-26Upgrade rustc and bootstrap dependenciesMateusz Mikuła-2/+2
2020-01-11use winapi for non-stdlib Windows bindingsAndy Russell-0/+3
2020-01-10Update measureme to 0.7.1 in order to fix compilation error on big-endian ↵Michael Woerister-1/+1
platforms.
2020-01-10Initial support for recording query keys in self-profiling data.Michael Woerister-1/+1
2020-01-10self-profile: Switch to new approach for event_id generation that enables ↵Michael Woerister-1/+1
query-invocation-specific event_ids.
2019-12-03Update measureme crate to 0.5.0.Michael Woerister-1/+1
2019-11-12Move self-profile infrastructure to data structuresMark Rousskov-0/+2
The single dependency on queries (QueryName) can be fairly easily abstracted via a trait and this further decouples Session from librustc (the primary goal).
2019-11-04bump smallvec to 1.0Ralf Jung-1/+1
2019-10-07Rebase rustc-rayon on rayon-1.2Josh Stone-2/+2
See also https://github.com/rust-lang/rustc-rayon/pull/3
2019-09-29move index_vec into rustc_indexcsmoe-0/+1
2019-09-20Upgrade to ena-0.13.1 and use the new `inlined_probe_value` function.Nicholas Nethercote-1/+1
This is a big speed win for `keccak` and `inflate`.
2019-09-11Upgrade parking_lot and tempfile rustc dependenciesMateusz Mikuła-1/+1
2019-07-23cleanup: Remove `extern crate serialize as rustc_serialize`sVadim Petrochenkov-1/+1
2019-07-10Add an AtomicCell abstractionJohn Kåre Alsaker-0/+1
2019-07-07rustc: Remove `dylib` crate type from most rustc cratesAlex Crichton-2/+1
Now that procedural macros no longer link transitively to libsyntax, this shouldn't be needed any more! This commit is an experiment in removing all dynamic libraries from rustc except for librustc_driver itself. Let's see how far we can get with that!
2019-06-01rustc: use indexmap instead of a plain vector for upvars.Eduard-Mihai Burtescu-0/+1
2019-04-26Update rustc-rayon versionJohn Kåre Alsaker-2/+2
2019-04-09Clean up jobserver integrationJohn Kåre Alsaker-1/+1
2019-03-27Update ena to version 0.13.0varkor-1/+1
2019-03-27Update enavarkor-1/+1
2019-03-01Add support for using a jobserver with RayonJohn Kåre Alsaker-2/+4
2019-02-22Update parking_lot to 0.7Bastien Orivel-1/+1
Unfortunately this'll dupe parking_lot until the data_structures crate is published and be updated in rls in conjunction with crossbeam-channel
2019-02-09librustc_data_structures => 2018Taiki Endo-2/+3
2018-12-10Upgrade `smallvec` to 0.6.7 and use the new `may_dangle` feature.Nicholas Nethercote-1/+1
2018-11-25Update to `ena` 0.11.0.Nicholas Nethercote-1/+1
This version has some significant speed-ups relating to snapshotting.
2018-11-21rustc: implement and use Default on more types.Eduard-Mihai Burtescu-1/+1
2018-11-16remove unused dependencyAndreas Jonson-1/+0
2018-10-14Added graphviz visualization for obligation forests.Diogo Sousa-0/+1
This can be a big help when debugging the trait resolver.
2018-09-04Breaking change upgradesMark Rousskov-1/+1
2018-08-23Use optimized SmallVec implementationIgor Gutorov-0/+1
2018-06-06Update Rayon versionJohn Kåre Alsaker-2/+2
2018-06-01Add a WorkerLocal abstractionJohn Kåre Alsaker-0/+1
2018-05-28Update rustc-hash to hash up to 8 bytes at once with FxHasherJohn Kåre Alsaker-1/+1
2018-05-24get `rustc_hash` from external crateNiko Matsakis-0/+1
2018-05-18use `reset_unifications` instead of creating new unification tableNiko Matsakis-1/+1
2018-05-13Add parallel abstractionsJohn Kåre Alsaker-0/+1
2018-04-26rustc_target: move in syntax::abi and flip dependency.Irina Popa-0/+1
2018-03-01Bump enaSean Griffin-1/+1
2018-03-01obtain `UnificationTable` and `snapshot_vec` from `ena` insteadNiko Matsakis-0/+1
The ena version has an improved interface. I suspect `librustc_data_structures` should start migrating out to crates.io in general.
2018-01-07Try to fix a perf regression by updating logMalo Jaffré-2/+2
Upgrade `log` to `0.4` in multiple crates.