| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2024-11-12 | Delete the `cfg(not(parallel))` serial compiler | Noratrieb | -237/+45 | |
| Since it's inception a long time ago, the parallel compiler and its cfgs have been a maintenance burden. This was a necessary evil the allow iteration while not degrading performance because of synchronization overhead. But this time is over. Thanks to the amazing work by the parallel working group (and the dyn sync crimes), the parallel compiler has now been fast enough to be shipped by default in nightly for quite a while now. Stable and beta have still been on the serial compiler, because they can't use `-Zthreads` anyways. But this is quite suboptimal: - the maintenance burden still sucks - we're not testing the serial compiler in nightly Because of these reasons, it's time to end it. The serial compiler has served us well in the years since it was split from the parallel one, but it's over now. Let the knight slay one head of the two-headed dragon! | ||||
| 2024-09-26 | Use `&raw` in the compiler | Josh Stone | -1/+1 | |
| Like #130865 did for the standard library, we can use `&raw` in the compiler now that stage0 supports it. Also like the other issue, I did not make any doc or test changes at this time. | ||||
| 2024-07-29 | Reformat `use` declarations. | Nicholas Nethercote | -2/+2 | |
| The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options. | ||||
| 2024-07-01 | rustc_data_structures: fix wrong markdown syntax | Michael Howell | -2/+2 | |
| This didn't produce working footnote links. The unportable markdown lint warned about it. | ||||
| 2024-06-28 | rustc_data_structures: Explicitly check for 64-bit atomics support | John Paul Adrian Glaubitz | -4/+3 | |
| Instead of keeping a list of architectures which have native support for 64-bit atomics, just use #[cfg(target_has_atomic = "64")] and its inverted counterpart to determine whether we need to use portable AtomicU64 on the target architecture. | ||||
| 2024-06-24 | rustc_data_structures: Use portable AtomicU64 on 32-bit SPARC | John Paul Adrian Glaubitz | -3/+3 | |
| While at it, order the list of architectures alphabetically. | ||||
| 2024-05-01 | Mark more entries in rustc_data_structures as no_inline for docs | Mark Rousskov | -0/+6 | |
| This is a workaround for #122758, but it's not clear why 1.79 requires a more extensive amount of no_inline than the previous release. Seems like there's something relatively subtle happening here. | ||||
| 2024-03-20 | collector: recursively traverse 'mentioned' items to evaluate their constants | Ralf Jung | -3/+6 | |
| 2024-02-24 | compiler: use `addr_of!` | Pavel Grigorenko | -1/+1 | |
| 2024-01-18 | Remove `OneThread` | John Kåre Alsaker | -56/+0 | |
| 2024-01-06 | don't reexport atomic::ordering via rustc_data_structures, use std import | klensy | -5/+2 | |
| 2023-11-06 | use portable AtomicU64 for powerPC and MIPS | SparrowLii | -1/+9 | |
| 2023-10-23 | Auto merge of #116849 - oli-obk:error_shenanigans, r=cjgillot | bors | -1/+1 | |
| Avoid a `track_errors` by bubbling up most errors from `check_well_formed` I believe `track_errors` is mostly papering over issues that a sufficiently convoluted query graph can hit. I made this change, while the actual change I want to do is to stop bailing out early on errors, and instead use this new `ErrorGuaranteed` to invoke `check_well_formed` for individual items before doing all the `typeck` logic on them. This works towards resolving https://github.com/rust-lang/rust/issues/97477 and various other ICEs, as well as allowing us to use parallel rustc more (which is currently rather limited/bottlenecked due to the very sequential nature in which we do `rustc_hir_analysis::check_crate`) cc `@SparrowLii` `@Zoxc` for the new `try_par_for_each_in` function | ||||
| 2023-10-20 | Avoid a `track_errors` by bubbling up most errors from `check_well_formed` | Oli Scherer | -1/+1 | |
| 2023-10-19 | Initiate the inner usage of `cfg_match` | Caio | -3/+4 | |
| 2023-09-11 | Rollup merge of #115548 - Zoxc:parallel-extract, r=wesleywiser | Matthias Krüger | -171/+5 | |
| Extract parallel operations in `rustc_data_structures::sync` into a new `parallel` submodule This extracts parallel operations in `rustc_data_structures::sync` into a new `parallel` submodule. This cuts down on the size of the large `cfg_if!` in `sync` and makes it easier to compare between serial and parallel variants. | ||||
| 2023-09-08 | Remove the `LockMode` enum and `dispatch` | John Kåre Alsaker | -1/+1 | |
| 2023-09-08 | Refactor `Lock` implementation | John Kåre Alsaker | -2/+1 | |
| 2023-09-06 | Extract parallel operations in `rustc_data_structures::sync` into a new ↵ | John Kåre Alsaker | -171/+5 | |
| `parallel` submodule | ||||
| 2023-09-02 | Rename `Freeze` to `FreezeLock` | John Kåre Alsaker | -1/+1 | |
| 2023-09-02 | Add `Freeze` type and use it to store `Definitions` | John Kåre Alsaker | -0/+3 | |
| 2023-09-01 | Use `OnceLock` for `SingleCache` | John Kåre Alsaker | -2/+2 | |
| 2023-08-30 | Use a `parallel_guard` function to handle the parallel guard | John Kåre Alsaker | -60/+55 | |
| 2023-08-30 | Use `Mutex` to avoid issue with conditional locks | John Kåre Alsaker | -4/+3 | |
| 2023-08-30 | Add `ParallelGuard` type to handle unwinding in parallel sections | John Kåre Alsaker | -121/+68 | |
| 2023-08-30 | Make parallel! an expression | John Kåre Alsaker | -2/+2 | |
| 2023-08-30 | Use conditional synchronization for Lock | John Kåre Alsaker | -86/+19 | |
| 2023-05-25 | rustc_data_structures: sync and atomic consistency | Michael Howell | -6/+6 | |
| Co-authored-by: @lukas-code | ||||
| 2023-05-25 | rustc_metadata: specialize private_dep flag with `fetch_and` | Michael Howell | -13/+4 | |
| 2023-05-25 | rustc_metadata: use configurable AtomicBool for privateness flag | Michael Howell | -0/+14 | |
| This switches to using a `Cell` for single-threaded rustc. | ||||
| 2023-05-16 | Remove `MetadataRef` type alias | Maybe Waffle | -3/+0 | |
| 2023-05-16 | Merge `MetadataRef` type aliases | Maybe Waffle | -4/+3 | |
| 2023-05-06 | correct literals for dyn thread safe | SparrowLii | -12/+12 | |
| 2023-05-06 | rename relative names in `sync` | SparrowLii | -17/+22 | |
| 2023-05-06 | fix `parallel!` | SparrowLii | -0/+7 | |
| 2023-05-06 | fix some nits | SparrowLii | -13/+12 | |
| 2023-05-06 | introduce `DynSend` and `DynSync` auto trait | SparrowLii | -38/+195 | |
| 2023-04-16 | Move the WorkerLocal type from the rustc-rayon fork into rustc_data_structures | John Kåre Alsaker | -29/+7 | |
| 2023-04-08 | Auto merge of #109971 - WaffleLapkin:yeet_ownership, r=Nilstrieb | bors | -26/+7 | |
| Yeet `owning_ref` Based on the discussions from https://github.com/rust-lang/rust/pull/109948 This replaces `owning_ref` with a far simpler & safer abstraction. Fixes #109974 | ||||
| 2023-04-05 | Yeet `owning_ref` | Maybe Waffle | -18/+0 | |
| Turns out - `owning_ref` is unsound due to `Box` aliasing stuff - `rustc` doesn't need 99% of the `owning_ref` API - `rustc` can use a far simpler abstraction that is `OwnedSlice` | ||||
| 2023-04-05 | Use `OwnedSlice` instead of `owning_ref` | Maybe Waffle | -3/+3 | |
| 2023-04-05 | Implement `OwnedSlice` | Maybe Waffle | -5/+4 | |
| 2023-04-04 | Use a simpler atomic operation than the `compare_exchange` hammer | Oli Scherer | -0/+8 | |
| 2023-04-04 | Add a usize-indexed append-only-vec | Oli Scherer | -1/+1 | |
| 2023-04-04 | Remove a fishy Clone impl | Oli Scherer | -8/+0 | |
| 2023-03-30 | Remove `RwLock::clone_guard`. | Nicholas Nethercote | -12/+0 | |
| It's unused. | ||||
| 2023-03-30 | Improve the `rustc_data_structures::sync` module doc comment. | Nicholas Nethercote | -14/+39 | |
| Also, `MTRef<'a, T>` is a typedef for a reference to a `T`, but in practice it's only used (and useful) in combination with `MTLock`, i.e. `MTRef<'a, MTLock<T>>`. So this commit changes it to be a typedef for a reference to an `MTLock<T>`, and renames it as `MTLockRef`. I think this clarifies things, because I found `MTRef` quite puzzling at first. | ||||
| 2023-02-21 | Use a lock-free datastructure for `source_span` | Oli Scherer | -0/+4 | |
| 2023-02-03 | Disallow impl autotrait for trait object | David Tolnay | -2/+2 | |
| 2022-12-10 | compiler: remove unnecessary imports and qualified paths | KaDiWa | -1/+1 | |
