]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoRollup merge of #72734 - pickfire:liballoc, r=KodrAus
ecstatic-morse [Tue, 22 Sep 2020 03:40:37 +0000 (20:40 -0700)]
Rollup merge of #72734 - pickfire:liballoc, r=KodrAus

Reduce duplicate in liballoc reserve error handling

Not sure if it affects compilation time.

3 years agoAuto merge of #76913 - vandenheuvel:performance_debug, r=lcnr
bors [Tue, 22 Sep 2020 00:22:24 +0000 (00:22 +0000)]
Auto merge of #76913 - vandenheuvel:performance_debug, r=lcnr

Fixing the performance regression of #76244

Issue https://github.com/rust-lang/rust/issues/74865 suggested that removing the `def_id` field from `ParamEnv` would improve performance. PR https://github.com/rust-lang/rust/pull/76244 implemented this change.

Generally, [results](https://perf.rust-lang.org/compare.html?start=80fc9b0ecb29050d45b17c64af004200afd3cfc2&end=5ef250dd2ad618ee339f165e9b711a1b4746887d) were as expected: an instruction count decrease of about a percent. The instruction count for the unicode crates increased by about 3%, which `@nnethercote` speculated to be caused by a quirk of inlining or codegen. As the results were generally positive, and for chalk integration, this was also a step in the right direction, the PR was r+'d regardless.

However, [wall-time performance results](https://perf.rust-lang.org/compare.html?start=a055c5a1bd95e029e9b31891db63b6dc8258b472&end=7402a394471a6738a40fea7d4f1891666e5a80c5&stat=task-clock) show a much larger performance degradation: 25%, as [mentioned](https://github.com/rust-lang/rust/pull/76244#issuecomment-694459840) by `@Mark-Simulacrum.`

This PR, for now, reverts #76244 and attempts to find out, which change caused the regression.

3 years agoAuto merge of #76683 - simonvandel:inst-combine-deref, r=oli-obk
bors [Mon, 21 Sep 2020 22:04:16 +0000 (22:04 +0000)]
Auto merge of #76683 - simonvandel:inst-combine-deref, r=oli-obk

Add optimization to avoid load of address

Look for the sequence
```rust
_2 = &_1;
...
_5 = (*_2)
```

in which we can replace the last statement with `_5 = _1` to avoid the load of _2

3 years agoRun the test with explicit -O such that Add is generated instead of CheckedAdd
Simon Vandel Sillesen [Mon, 21 Sep 2020 20:15:30 +0000 (22:15 +0200)]
Run the test with explicit -O such that Add is generated instead of CheckedAdd

This makes the test run deterministic regardless of noopt testruns

3 years agoAdd optimization to avoid load of address
Simon Vandel Sillesen [Sun, 13 Sep 2020 20:38:36 +0000 (22:38 +0200)]
Add optimization to avoid load of address

3 years agoAuto merge of #77003 - joshtriplett:remove-duplicate-link-libraries, r=Mark-Simulacrum
bors [Mon, 21 Sep 2020 19:52:13 +0000 (19:52 +0000)]
Auto merge of #77003 - joshtriplett:remove-duplicate-link-libraries, r=Mark-Simulacrum

Remove duplicated library links between std and libc

The libc crate is already responsible for linking in the appropriate
libraries, and std doing the same thing results in duplicated library
names on the linker command line. Removing this duplication slightly
reduces linker time, and makes it simpler to adjust the set or order of
linked libraries in one place (such as to add static linking support).

3 years agoAuto merge of #76680 - Julian-Wollersberger:nongeneric_ensure_sufficient_stack, r...
bors [Mon, 21 Sep 2020 17:32:57 +0000 (17:32 +0000)]
Auto merge of #76680 - Julian-Wollersberger:nongeneric_ensure_sufficient_stack, r=jyn514

Make `ensure_sufficient_stack()` non-generic, using cargo-llvm-lines

Inspired by [this blog post](https://blog.mozilla.org/nnethercote/2020/08/05/how-to-speed-up-the-rust-compiler-some-more-in-2020/) from `@nnethercote,` I used [cargo-llvm-lines](https://github.com/dtolnay/cargo-llvm-lines/) on the rust compiler itself, to improve it's compile time. This PR contains only one low-hanging fruit, but I also want to share some measurements.

The function `ensure_sufficient_stack()` was monomorphized 1500 times, and with it the `stacker` and `psm` crates, for a total of 1.5% of all llvm IR lines. With some trickery I convert the generic closure into a dynamic one, and thus all that code is only monomorphized once.

# Measurements
Getting these numbers took some fiddling with CLI flags and I [modified](https://github.com/Julian-Wollersberger/cargo-llvm-lines/blob/master/src/main.rs#L115) cargo-llvm-lines to read from a folder instead of invoking cargo. Commands I used:
```
./x.py clean
RUSTFLAGS="--emit=llvm-ir -C link-args=-fuse-ld=lld -Z self-profile=profile" CARGOFLAGS_BOOTSTRAP="-Ztimings" RUSTC_BOOTSTRAP=1 ./x.py build -i --stage 1 library/std

# Then manually copy all .ll files into a folder I hardcoded in cargo-llvm-lines in main.rs#L115
cd ../cargo-llvm-lines
cargo run llvm-lines
```

The result is this list (see [first 500 lines](https://github.com/Julian-Wollersberger/cargo-llvm-lines/blob/master/llvm-lines-rustc-before.txt) ), before the change:
```
  Lines            Copies        Function name
  -----            ------        -------------
  16894211 (100%)  58417 (100%)  (TOTAL)
   2223855 (13.2%)   502 (0.9%)  rustc_query_system::query::plumbing::get_query_impl::{{closure}}
   1331918 (7.9%)   1287 (2.2%)  hashbrown::raw::RawTable<T>::reserve_rehash
    774434 (4.6%)  12043 (20.6%) core::ptr::drop_in_place
    294170 (1.7%)    499 (0.9%)  rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
    245410 (1.5%)   1552 (2.7%)  psm::on_stack::with_on_stack
    210311 (1.2%)      1 (0.0%)  rustc_target::spec::load_specific
    200962 (1.2%)    513 (0.9%)  rustc_query_system::query::plumbing::get_query_impl
    190704 (1.1%)      1 (0.0%)  rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::alloc_self_profile_query_strings
    180272 (1.1%)    468 (0.8%)  rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory
    177396 (1.1%)    114 (0.2%)  rustc_query_system::query::plumbing::force_query_impl
    161134 (1.0%)    445 (0.8%)  rustc_query_system::dep_graph::graph::DepGraph<K>::with_anon_task
    141551 (0.8%)    186 (0.3%)  rustc_query_system::query::plumbing::incremental_verify_ich
    110191 (0.7%)      7 (0.0%)  rustc_middle::ty::context::_DERIVE_rustc_serialize_Decodable_D_FOR_TypeckResults::<impl rustc_serialize::serialize::Decodable<__D> for rustc_middle::ty::context::TypeckResults>::decode::{{closure}}
    108590 (0.6%)    420 (0.7%)  core::ops::function::FnOnce::call_once
     88488 (0.5%)     21 (0.0%)  rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
     86368 (0.5%)      1 (0.0%)  rustc_middle::ty::query::stats::query_stats
     85654 (0.5%)   3973 (6.8%)  <&T as core::fmt::Debug>::fmt
     84475 (0.5%)      1 (0.0%)  rustc_middle::ty::query::Queries::try_collect_active_jobs
     81220 (0.5%)    862 (1.5%)  <hashbrown::raw::RawIterHash<T> as core::iter::traits::iterator::Iterator>::next
     77636 (0.5%)     54 (0.1%)  core::slice::sort::recurse
     66484 (0.4%)    461 (0.8%)  <hashbrown::raw::RawIter<T> as core::iter::traits::iterator::Iterator>::next
```

All `.ll` files together had 4.4GB. After my change they had 4.2GB. So a few percent less code LLVM has to process. Hurray!
Sadly, I couldn't measure an actual wall-time improvement. Watching YouTube while compiling added to much noise...

Here is the top of the list after the change:
```
  16460866 (100%)  58341 (100%)  (TOTAL)
   1903085 (11.6%)   504 (0.9%)  rustc_query_system::query::plumbing::get_query_impl::{{closure}}
   1331918 (8.1%)   1287 (2.2%)  hashbrown::raw::RawTable<T>::reserve_rehash
    777796 (4.7%)  12031 (20.6%) core::ptr::drop_in_place
    551462 (3.4%)   1519 (2.6%)  rustc_data_structures::stack::ensure_sufficient_stack::{{closure}}
```
Note that the total was reduced by 430 000 lines and `psm::on_stack::with_on_stack` has disappeared. Instead `rustc_data_structures::stack::ensure_sufficient_stack::{{closure}}` appeared. I'm confused about that one, but it seems to consist of inlined calls to `rustc_query_system::*` stuff.

Further note the other two big culprits in this list: `rustc_query_system` and `hashbrown`. These two are monomorphized many times, the query system summing to more than 20% of all lines, not even counting code that's probably inlined elsewhere.
Assuming compile times scale linearly with llvm-lines, that means a possible 20% compile time reduction.

Reducing eg. `get_query_impl` would probably need a major refactoring of the qery system though. _Everything_ in there is generic over multiple types, has associated types and passes generic Self arguments by value. Which means you can't simply make things `dyn`.

---------------------------------------
This PR is a small step to make rustc compile faster and thus make contributing to rustc less painful. Nonetheless I love Rust and I find the work around rustc fascinating :)

3 years agoAuto merge of #77013 - RalfJung:rollup-84ut0xq, r=RalfJung
bors [Mon, 21 Sep 2020 15:06:20 +0000 (15:06 +0000)]
Auto merge of #77013 - RalfJung:rollup-84ut0xq, r=RalfJung

Rollup of 10 pull requests

Successful merges:

 - #76439 (Add error explanation for E0755)
 - #76521 (Fix segfault if pthread_getattr_np fails)
 - #76835 (make replace_prefix only take &str as arguments )
 - #76967 (Revert adding Atomic::from_mut.)
 - #76977 (Add a regression test for copy propagation miscompilation)
 - #76981 (liballoc bench use imported path Bencher)
 - #76983 (BTreeMap: extra testing & fixed comments)
 - #76996 (Fix typo in rustc_lexer docs)
 - #77009 (Dogfood total_cmp in the test crate)
 - #77012 (update Miri for another bugfix)

Failed merges:

 - #76489 (Add explanation for E0756)

r? `@ghost`

3 years agoRollup merge of #77012 - RalfJung:miri, r=RalfJung
Ralf Jung [Mon, 21 Sep 2020 13:30:51 +0000 (15:30 +0200)]
Rollup merge of #77012 - RalfJung:miri, r=RalfJung

update Miri for another bugfix

3 years agoRollup merge of #77009 - est31:dogfood_total_cmp, r=lcnr
Ralf Jung [Mon, 21 Sep 2020 13:30:49 +0000 (15:30 +0200)]
Rollup merge of #77009 - est31:dogfood_total_cmp, r=lcnr

Dogfood total_cmp in the test crate

3 years agoRollup merge of #76996 - LingMan:patch-1, r=ecstatic-morse
Ralf Jung [Mon, 21 Sep 2020 13:30:47 +0000 (15:30 +0200)]
Rollup merge of #76996 - LingMan:patch-1, r=ecstatic-morse

Fix typo in rustc_lexer docs

Also add an Oxford comma while we're editing that line.

3 years agoRollup merge of #76983 - ssomers:btree_extra_test, r=Mark-Simulacrum
Ralf Jung [Mon, 21 Sep 2020 13:30:46 +0000 (15:30 +0200)]
Rollup merge of #76983 - ssomers:btree_extra_test, r=Mark-Simulacrum

BTreeMap: extra testing & fixed comments

r? @Mark-Simulacrum

3 years agoRollup merge of #76981 - pickfire:patch-5, r=Mark-Simulacrum
Ralf Jung [Mon, 21 Sep 2020 13:30:44 +0000 (15:30 +0200)]
Rollup merge of #76981 - pickfire:patch-5, r=Mark-Simulacrum

liballoc bench use imported path Bencher

test is already in scope, no need to use the full path

3 years agoRollup merge of #76977 - tmiasko:issue-76740, r=wesleywiser
Ralf Jung [Mon, 21 Sep 2020 13:30:42 +0000 (15:30 +0200)]
Rollup merge of #76977 - tmiasko:issue-76740, r=wesleywiser

Add a regression test for copy propagation miscompilation

3 years agoRollup merge of #76967 - fusion-engineering-forks:revert-atomic-from-mut, r=kodrAus
Ralf Jung [Mon, 21 Sep 2020 13:30:41 +0000 (15:30 +0200)]
Rollup merge of #76967 - fusion-engineering-forks:revert-atomic-from-mut, r=kodrAus

Revert adding Atomic::from_mut.

This reverts #74532, which made too many assumptions about platforms, breaking some things.

Will need to be added later with a better way of gating on proper alignment, without hardcoding cfg(target_arch)s.

---

To be merged if fixing from_mut (#76965) takes too long.

r? @ghost

3 years agoRollup merge of #76835 - matthiaskrgr:replace_prefix, r=lcnr
Ralf Jung [Mon, 21 Sep 2020 13:30:39 +0000 (15:30 +0200)]
Rollup merge of #76835 - matthiaskrgr:replace_prefix, r=lcnr

make replace_prefix only take &str as arguments

included the clippy::manual strip commit to not run into merge conflicts later.

r? @lcnr

3 years agoRollup merge of #76521 - tavianator:fix-pthread-getattr-destroy, r=Amanieu
Ralf Jung [Mon, 21 Sep 2020 13:30:37 +0000 (15:30 +0200)]
Rollup merge of #76521 - tavianator:fix-pthread-getattr-destroy, r=Amanieu

Fix segfault if pthread_getattr_np fails

glibc [destroys][1] the passed pthread_attr_t if pthread_getattr_np()
fails.  Destroying it again leads to a segfault.  Fix it by only
destroying it on success for glibc.

[1]: https://sourceware.org/git/?p=glibc.git;a=blob;f=nptl/pthread_getattr_np.c;h=ce437205e41dc05653e435f6188768cccdd91c99;hb=HEAD#l205

3 years agoRollup merge of #76439 - GuillaumeGomez:add-error-explanation-e0755, r=pickfire,jyn514
Ralf Jung [Mon, 21 Sep 2020 13:30:34 +0000 (15:30 +0200)]
Rollup merge of #76439 - GuillaumeGomez:add-error-explanation-e0755, r=pickfire,jyn514

Add error explanation for E0755

r? @pickfire

3 years agoupdate Miri for another bugfix
Ralf Jung [Mon, 21 Sep 2020 13:26:50 +0000 (15:26 +0200)]
update Miri for another bugfix

3 years agoAuto merge of #74040 - lcnr:const-occurs-check, r=nikomatsakis
bors [Mon, 21 Sep 2020 12:52:09 +0000 (12:52 +0000)]
Auto merge of #74040 - lcnr:const-occurs-check, r=nikomatsakis

fix unification of const variables

r? `@nikomatsakis` `@varkor` `@eddyb` let's just ping everyone here :sweat_smile:

3 years agoadd tests
Bastian Kauschke [Wed, 9 Sep 2020 07:43:53 +0000 (09:43 +0200)]
add tests

3 years agocheck for cycles when unifying const variables
Bastian Kauschke [Wed, 9 Sep 2020 07:43:47 +0000 (09:43 +0200)]
check for cycles when unifying const variables

3 years agoAuto merge of #77004 - RalfJung:rollup-usac4nv, r=RalfJung
bors [Mon, 21 Sep 2020 10:26:59 +0000 (10:26 +0000)]
Auto merge of #77004 - RalfJung:rollup-usac4nv, r=RalfJung

Rollup of 13 pull requests

Successful merges:

 - #76135 (Stabilize some Option methods as const)
 - #76628 (Add sample defaults for config.toml )
 - #76846 (Avoiding unnecesary allocations at rustc_errors)
 - #76867 (Use intra-doc links in core/src/iter when possible)
 - #76868 (Finish moving to intra doc links for std::sync)
 - #76872 (Remove DeclareMethods)
 - #76936 (Add non-`unsafe` `.get_mut()` for `Unsafecell`)
 - #76958 (Replace manual as_nanos and as_secs_f64 reimplementations)
 - #76959 (Replace write_fmt with write!)
 - #76961 (Add test for issue #34634)
 - #76962 (Use const_cstr macro in consts.rs)
 - #76963 (Remove unused static_assert macro)
 - #77000 (update Miri)

Failed merges:

r? `@ghost`

3 years agoDogfood total_cmp in the test crate
est31 [Mon, 21 Sep 2020 10:13:26 +0000 (12:13 +0200)]
Dogfood total_cmp in the test crate

3 years agofix InterpCx resolve
Bastian Kauschke [Wed, 9 Sep 2020 07:43:18 +0000 (09:43 +0200)]
fix InterpCx resolve

3 years agoRollup merge of #77000 - RalfJung:miri, r=RalfJung
Ralf Jung [Mon, 21 Sep 2020 08:40:49 +0000 (10:40 +0200)]
Rollup merge of #77000 - RalfJung:miri, r=RalfJung

update Miri

I'd like to get https://github.com/rust-lang/miri/pull/1556 out there to avoid some backwards-incompatible changes.
r? @ghost Cc @rust-lang/miri

3 years agoRollup merge of #76963 - est31:remove_static_assert, r=oli-obk
Ralf Jung [Mon, 21 Sep 2020 08:40:47 +0000 (10:40 +0200)]
Rollup merge of #76963 - est31:remove_static_assert, r=oli-obk

Remove unused static_assert macro

3 years agoRollup merge of #76962 - est31:const_cstr, r=oli-obk
Ralf Jung [Mon, 21 Sep 2020 08:40:45 +0000 (10:40 +0200)]
Rollup merge of #76962 - est31:const_cstr, r=oli-obk

Use const_cstr macro in consts.rs

3 years agoRollup merge of #76961 - bugadani:test-34634, r=Mark-Simulacrum
Ralf Jung [Mon, 21 Sep 2020 08:40:43 +0000 (10:40 +0200)]
Rollup merge of #76961 - bugadani:test-34634, r=Mark-Simulacrum

Add test for issue #34634

Closes #34634

3 years agoRollup merge of #76959 - est31:write, r=oli-obk
Ralf Jung [Mon, 21 Sep 2020 08:40:41 +0000 (10:40 +0200)]
Rollup merge of #76959 - est31:write, r=oli-obk

Replace write_fmt with write!

Latter is simpler

3 years agoRollup merge of #76958 - est31:ns, r=oli-obk
Ralf Jung [Mon, 21 Sep 2020 08:40:39 +0000 (10:40 +0200)]
Rollup merge of #76958 - est31:ns, r=oli-obk

Replace manual as_nanos and as_secs_f64 reimplementations

3 years agoRollup merge of #76936 - danielhenrymantilla:unsafecell_get_mut, r=RalfJung
Ralf Jung [Mon, 21 Sep 2020 08:40:37 +0000 (10:40 +0200)]
Rollup merge of #76936 - danielhenrymantilla:unsafecell_get_mut, r=RalfJung

Add non-`unsafe` `.get_mut()` for `Unsafecell`

  - Tracking issue: https://github.com/rust-lang/rust/issues/76943

As discussed in: https://internals.rust-lang.org/t/add-non-unsafe-get-mut-for-unsafecell/12407

  - ### [Rendered documentation](https://modest-dubinsky-1f9f47.netlify.app/core/cell/struct.unsafecell)

This PR tries to move the sound `&mut UnsafeCell<T> -> &mut T` projection that all the "downstream" constructions were already relying on, up to the root abstraction, where it rightfully belongs, and officially blessing it.

  - this **helps reduce the amount of `unsafe` snippets out there** (_c.f._, the second commit of this PR: https://github.com/rust-lang/rust/pull/76936/commits/09503fd1b30c83ca605546fa3f899721e41e68c6)

The fact that this getter is now expose for `UnsafeCell<T>` itself, will also help convey the idea that **`UnsafeCell` is not magical _w.r.t._ `&mut` accesses**, contrary to what some people incorrectly think.

  - Even the standard library itself at some point had such a confusion, _c.f._ this comment where there is a mention of multi-threaded (and thus _shared_) access despite dealing with exclusive references over unique ownership: https://github.com/rust-lang/rust/blob/59fb88d061544a035f3043b47594b34789204cee/library/core/src/cell.rs#L498-L499

r? @RalfJung

3 years agoRollup merge of #76872 - khyperia:remove_declare_methods, r=eddyb
Ralf Jung [Mon, 21 Sep 2020 08:40:35 +0000 (10:40 +0200)]
Rollup merge of #76872 - khyperia:remove_declare_methods, r=eddyb

Remove DeclareMethods

Most of the `DeclareMethods` API was only used internally by rustc_codegen_llvm. As such, it makes no sense to require other backends to implement them.

(`get_declared_value` and `declare_cfn` were used, in one place, specific to the `main` symbol, which I've replaced with a more specialized function to allow more flexibility in implementation - the intent is that `declare_c_main` can go away once we do something more clever, e.g. @eddyb has ideas around having a MIR shim or somesuch we can explore in a follow-up PR)

3 years agoRollup merge of #76868 - poliorcetics:intra-doc-std-sync, r=jyn514
Ralf Jung [Mon, 21 Sep 2020 08:40:33 +0000 (10:40 +0200)]
Rollup merge of #76868 - poliorcetics:intra-doc-std-sync, r=jyn514

Finish moving to intra doc links for std::sync

Helps with #75080.

@rustbot modify labels: T-doc A-intra-doc-links

r? @jyn514

3 years agoRollup merge of #76867 - poliorcetics:intra-doc-core-iter, r=jyn514
Ralf Jung [Mon, 21 Sep 2020 08:40:32 +0000 (10:40 +0200)]
Rollup merge of #76867 - poliorcetics:intra-doc-core-iter, r=jyn514

Use intra-doc links in core/src/iter when possible

Helps with #75080.

I also updated lots of links to use `fn()` instead of `fn` when possible.

@rustbot modify labels: T-doc A-intra-doc-links

r? @jyn514

3 years agoRollup merge of #76846 - botika:master, r=davidtwco
Ralf Jung [Mon, 21 Sep 2020 08:40:30 +0000 (10:40 +0200)]
Rollup merge of #76846 - botika:master, r=davidtwco

Avoiding unnecesary allocations at rustc_errors

Simplify the code avoiding allocations with easy alternative

3 years agoRollup merge of #76628 - jyn514:default-config-files, r=Mark-Simulacrum
Ralf Jung [Mon, 21 Sep 2020 08:40:28 +0000 (10:40 +0200)]
Rollup merge of #76628 - jyn514:default-config-files, r=Mark-Simulacrum

Add sample defaults for config.toml

- Allow including defaults in `src/bootstrap/defaults` using `profile = "..."`.
- Add default config files, with a README noting they're experimental and asking you to open an issue if you run into trouble. The config files have comments explaining why the defaults are set.
- Combine config files using the `merge` dependency.

This introduces a new dependency on `merge` that hasn't yet been vetted.

I want to improve the output when `include = "x"` isn't found:

```
thread 'main' panicked at 'fs::read_to_string(&file) failed with No such file or directory (os error 2) ("configuration file did not exist")', src/bootstrap/config.rs:522:28
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
failed to run: /home/joshua/rustc/build/bootstrap/debug/bootstrap test tidy
Build completed unsuccessfully in 0:00:00
```

However that seems like it could be fixed in a follow-up.

Closes #76619

3 years agoRollup merge of #76135 - CDirkx:const-option, r=dtolnay,oli-obk
Ralf Jung [Mon, 21 Sep 2020 08:40:26 +0000 (10:40 +0200)]
Rollup merge of #76135 - CDirkx:const-option, r=dtolnay,oli-obk

Stabilize some Option methods as const

Stabilize the following methods of `Option` as const:
 - `is_some`
 - `is_none`
 - `as_ref`

These methods are currently const under the unstable feature `const_option` (tracking issue: #67441).
I believe these methods to be eligible for stabilization because of the stabilization of #49146 (Allow if and match in constants) and the trivial implementations, see also:  [PR#75463](https://github.com/rust-lang/rust/pull/75463).

Related: #76225

3 years agoRemove duplicated library links between std and libc
Josh Triplett [Mon, 21 Sep 2020 04:13:04 +0000 (21:13 -0700)]
Remove duplicated library links between std and libc

The libc crate is already responsible for linking in the appropriate
libraries, and std doing the same thing results in duplicated library
names on the linker command line. Removing this duplication slightly
reduces linker time, and makes it simpler to adjust the set or order of
linked libraries in one place (such as to add static linking support).

3 years agoAuto merge of #76843 - kornelski:longtypetofile, r=ecstatic-morse
bors [Mon, 21 Sep 2020 08:20:38 +0000 (08:20 +0000)]
Auto merge of #76843 - kornelski:longtypetofile, r=ecstatic-morse

Let user see the full type of type-length limit error

Seeing the full type of the error is sometimes essential to diagnosing the problem, but the type itself is too long to be displayed in the terminal in a useful fashion. This change solves this dilemma by writing the full offending type name to a file, and displays this filename as a note.

> note: the full type name been written to '$TEST_BUILD_DIR/issues/issue-22638/issue-22638.long-type.txt'

Closes #76777

3 years agoupdate Miri
Ralf Jung [Mon, 21 Sep 2020 07:42:34 +0000 (09:42 +0200)]
update Miri

3 years agoAdd an unused field of type `Option<DefId>` to `ParamEnv` struct.
Bram van den Heuvel [Sat, 19 Sep 2020 10:06:17 +0000 (12:06 +0200)]
Add an unused field of type `Option<DefId>` to `ParamEnv` struct.

3 years agoAuto merge of #75974 - SkiFire13:peekmut-opt-sift, r=LukasKalbertodt
bors [Mon, 21 Sep 2020 05:31:01 +0000 (05:31 +0000)]
Auto merge of #75974 - SkiFire13:peekmut-opt-sift, r=LukasKalbertodt

Avoid useless sift_down when std::collections::binary_heap::PeekMut is never mutably dereferenced

If `deref_mut` is never called then it's not possible for the element to be mutated without internal mutability, meaning there's no need to call `sift_down`.

This could be a little improvement in cases where you want to mutate the biggest element of the heap only if it satisfies a certain predicate that needs only read access to the element.

3 years agoFix typo in rustc_lexer docs
LingMan [Mon, 21 Sep 2020 03:43:39 +0000 (05:43 +0200)]
Fix typo in rustc_lexer docs

Also add an Oxford comma while we're editing that line.

3 years agoAuto merge of #76806 - jethrogb:jb/update-llvm, r=cuviper
bors [Mon, 21 Sep 2020 03:32:01 +0000 (03:32 +0000)]
Auto merge of #76806 - jethrogb:jb/update-llvm, r=cuviper

Update LLVM

This (partially?) addresses rust-lang/rust#74632

r? `@cuviper`

3 years agoAuto merge of #76295 - mati865:remove-mmx, r=Amanieu,oli-obk
bors [Mon, 21 Sep 2020 00:43:26 +0000 (00:43 +0000)]
Auto merge of #76295 - mati865:remove-mmx, r=Amanieu,oli-obk

Remove MMX from Rust

Follow-up to https://github.com/rust-lang/stdarch/pull/890
This removes most of MMX from Rust (tests pass with small changes), keeping stable `is_x86_feature_detected!("mmx")` working.

3 years agoLet user see the full type of type-length limit error
Kornel Lesiński [Wed, 16 Sep 2020 02:45:58 +0000 (03:45 +0100)]
Let user see the full type of type-length limit error

3 years agoAuto merge of #76544 - Mark-Simulacrum:less-python, r=alexcrichton
bors [Sun, 20 Sep 2020 22:00:36 +0000 (22:00 +0000)]
Auto merge of #76544 - Mark-Simulacrum:less-python, r=alexcrichton

De-couple Python and bootstrap slightly

This revises rustbuild's entry points from Python to rely less on magic environment variables, preferring to use Cargo-provided environment variables where feasible.

Notably, BUILD_DIR and BOOTSTRAP_CONFIG are *not* moved, because both more-or-less have some non-trivial discovery logic and replicating it in rustbuild seems unfortunate; if it moved to Cargo that would be a different story.

Best reviewed by-commit.

3 years agoRemove `can_suggest` from Clippy.
Christiaan Dirkx [Sun, 20 Sep 2020 22:00:33 +0000 (00:00 +0200)]
Remove `can_suggest` from Clippy.

Removes `can_suggest` from as it is no longer used.
Reverts rust-clippy#5724.

3 years agoUpdate Clippy testcases
Christiaan Dirkx [Sun, 20 Sep 2020 21:59:34 +0000 (23:59 +0200)]
Update Clippy testcases

Update the test `redundant_pattern_matching`: check if `is_some` and `is_none` are suggested within const contexts.

3 years agoMove const tests for `Option` to `library\core`
Christiaan Dirkx [Thu, 3 Sep 2020 22:13:25 +0000 (00:13 +0200)]
Move const tests for `Option` to `library\core`

Part of #76268

3 years agoStabilize some Option methods as const
CDirkx [Mon, 31 Aug 2020 00:11:48 +0000 (02:11 +0200)]
Stabilize some Option methods as const

Stabilize the following methods of `Option` as const:
 - `is_some`
 - `is_none`
 - `as_ref`

Possible because of stabilization of #49146 (Allow if and match in constants).

3 years agoSpecify output directory for bootstrap tests
Mark Rousskov [Thu, 10 Sep 2020 14:52:27 +0000 (10:52 -0400)]
Specify output directory for bootstrap tests

3 years agoProvide bootstrap tools with RUSTC in environment
Mark Rousskov [Thu, 10 Sep 2020 14:17:32 +0000 (10:17 -0400)]
Provide bootstrap tools with RUSTC in environment

3 years agoAdd sample defaults for config.toml
Joshua Nelson [Sat, 12 Sep 2020 04:42:52 +0000 (00:42 -0400)]
Add sample defaults for config.toml

- Allow including defaults in `src/bootstrap/defaults` using `profile = "..."`
- Add default config files
- Combine config files using the merge dependency.
- Add comments to default config files
- Add a README asking to open an issue if the defaults are bad
- Give a loud error if trying to merge `.target`, since it's not
  currently supported
- Use an exhaustive match
- Use `<none>` in config.toml.example to avoid confusion
- Fix bugs in `Merge` derives

Previously, it would completely ignore the profile defaults if there
were any settings in `config.toml`. I sent an email to the `merge` maintainer
asking them to make the behavior in this commit the default.

This introduces a new dependency on `merge` that hasn't yet been vetted.

I want to improve the output when `include = "x"` isn't found:

```
thread 'main' panicked at 'fs::read_to_string(&file) failed with No such file or directory (os error 2) ("configuration file did not exist")', src/bootstrap/config.rs:522:28
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
failed to run: /home/joshua/rustc/build/bootstrap/debug/bootstrap test tidy
Build completed unsuccessfully in 0:00:00
```

However that seems like it could be fixed in a follow-up.

3 years agoDiscover Rust toolchain without Python
Mark Rousskov [Mon, 7 Sep 2020 16:02:50 +0000 (12:02 -0400)]
Discover Rust toolchain without Python

3 years agoRemove support for different src directory
Mark Rousskov [Mon, 7 Sep 2020 01:32:55 +0000 (21:32 -0400)]
Remove support for different src directory

This requires that bootstrap is run from the same worktree as the sources it'll
build, but this is basically required for the build to work anyway. You can
still run it from a different directory, just that the files it builds must be
beside it.

3 years agoSet BUILD_TRIPLE via build script
Mark Rousskov [Sun, 6 Sep 2020 23:57:07 +0000 (19:57 -0400)]
Set BUILD_TRIPLE via build script

This moves build triple discovery for rustbuild from bootstrap.py into a build
script, meaning it will "just work" if building rustbuild via Cargo rather than
Python.

3 years agoAuto merge of #76848 - RalfJung:miri, r=RalfJung
bors [Sun, 20 Sep 2020 20:00:17 +0000 (20:00 +0000)]
Auto merge of #76848 - RalfJung:miri, r=RalfJung

update Miri

Let's get https://github.com/rust-lang/miri/pull/1540 shipped.
Fixes https://github.com/rust-lang/rust/issues/76968.
Cc `@rust-lang/miri` r? `@ghost`

3 years agoBTreeMap: extra testing unveiling mistakes in future PR
Stein Somers [Sat, 19 Sep 2020 22:45:29 +0000 (00:45 +0200)]
BTreeMap: extra testing unveiling mistakes in future PR

3 years agoAuto merge of #75119 - simonvandel:early-otherwise, r=oli-obk
bors [Sun, 20 Sep 2020 17:54:44 +0000 (17:54 +0000)]
Auto merge of #75119 - simonvandel:early-otherwise, r=oli-obk

New MIR optimization pass to reduce branches on match of tuples of enums

Fixes #68867 by adding a new pass that turns something like
```rust
let x: Option<()>;
let y: Option<()>;
match (x,y) {
    (Some(_), Some(_)) => {0},
    _ => {1}
}
```
into something like
```rust
let x: Option<()>;
let y: Option<()>;
let discriminant_x = // get discriminant of x
let discriminant_y = // get discriminant of x
if discriminant_x != discriminant_y {1} else {0}
```

The opt-diffs still have the old basic blocks like
```
bb3: {
          _8 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early-otherwise-branch-68867.rs:21:21: 21:30
          switchInt(move _8) -> [1_isize: bb7, otherwise: bb2]; // scope 0 at $DIR/early-otherwise-branch-68867.rs:21:21: 21:30
      }

      bb4: {
          _9 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early-otherwise-branch-68867.rs:22:23: 22:34
          switchInt(move _9) -> [2_isize: bb8, otherwise: bb2]; // scope 0 at $DIR/early-otherwise-branch-68867.rs:22:23: 22:34
      }

      bb5: {
          _10 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early-otherwise-branch-68867.rs:23:23: 23:34
          switchInt(move _10) -> [3_isize: bb9, otherwise: bb2]; // scope 0 at $DIR/early-otherwise-branch-68867.rs:23:23: 23:34
      }
```

These do get removed on later passes. I'm not sure if I should include those passes in the test to make it clear?

3 years agoTo avoid monomorphizing `psm::on_stack::with_on_stack` 1500 times, I made a change...
Julian Wollersberger [Sun, 20 Sep 2020 17:07:52 +0000 (19:07 +0200)]
To avoid monomorphizing `psm::on_stack::with_on_stack` 1500 times, I made a change in `stacker` to wrap the callback in `dyn`.

3 years agoliballoc bench use imported path Bencher
Ivan Tham [Sun, 20 Sep 2020 16:46:40 +0000 (00:46 +0800)]
liballoc bench use imported path Bencher

test is already in scope, no need to use the full path

3 years agoFix nits
Alexis Bourget [Sun, 20 Sep 2020 16:37:05 +0000 (18:37 +0200)]
Fix nits

3 years agoReplace unneeded `unsafe` calls to `.get()` with calls to `.get_mut()`
Daniel Henry-Mantilla [Sat, 19 Sep 2020 19:33:40 +0000 (21:33 +0200)]
Replace unneeded `unsafe` calls to `.get()` with calls to `.get_mut()`

3 years agoAdd non-`unsafe` `.get_mut()` for `UnsafeCell`
Daniel Henry-Mantilla [Sat, 19 Sep 2020 19:32:33 +0000 (21:32 +0200)]
Add non-`unsafe` `.get_mut()` for `UnsafeCell`

Update the tracking issue number

Updated the documentation for `UnsafeCell`

Address review comments

Address more review comments + minor changes

3 years agouse iter:: before free functions
Alexis Bourget [Sun, 20 Sep 2020 16:04:12 +0000 (18:04 +0200)]
use iter:: before free functions

3 years agoAuto merge of #76975 - RalfJung:rollup-s2wiuqr, r=RalfJung
bors [Sun, 20 Sep 2020 15:12:40 +0000 (15:12 +0000)]
Auto merge of #76975 - RalfJung:rollup-s2wiuqr, r=RalfJung

Rollup of 15 pull requests

Successful merges:

 - #76732 (Add docs for `BasicBlock`)
 - #76832 (Let backends define custom targets)
 - #76866 (Remove unused feature gates from library/ crates)
 - #76875 (Move to intra-doc links in library/alloc/src/collections/binary_heap.rs)
 - #76876 (Move to intra-doc links in collections/btree/map.rs and collections/linked_list.rs)
 - #76877 (Move to intra-doc links in collections/vec_deque.rs and collections/vec_deque/drain.rs)
 - #76878 (Move the version number to a plaintext file)
 - #76883 (README.md: Remove prompts from code blocks)
 - #76887 (Add missing examples on HashSet iter types)
 - #76890 (use matches!() macro for simple if let conditions)
 - #76891 (don't take `TyCtxt` by reference)
 - #76910 (transmute: use diagnostic item)
 - #76924 (Add tracking issue for feature(unix_socket_peek))
 - #76926 (BTreeMap: code readability tweaks)
 - #76940 (Don't allow implementing trait directly on type-alias-impl-trait)

Failed merges:

r? `@ghost`

3 years agoupdate Miri
Ralf Jung [Thu, 17 Sep 2020 18:04:20 +0000 (20:04 +0200)]
update Miri

3 years agoemit diff after SimplifyBranches-after-copy-prop
Simon Vandel Sillesen [Sun, 20 Sep 2020 12:45:08 +0000 (14:45 +0200)]
emit diff after SimplifyBranches-after-copy-prop

3 years agoRollup merge of #76940 - Aaron1011:fix/trait-on-tait, r=oli-obk
Ralf Jung [Sun, 20 Sep 2020 13:52:09 +0000 (15:52 +0200)]
Rollup merge of #76940 - Aaron1011:fix/trait-on-tait, r=oli-obk

Don't allow implementing trait directly on type-alias-impl-trait

This is specifically disallowed by the RFC, but we never added a check
for it.

Fixes #76202

3 years agoRollup merge of #76926 - ssomers:btree_cleanup_1, r=Mark-Simulacrum
Ralf Jung [Sun, 20 Sep 2020 13:52:07 +0000 (15:52 +0200)]
Rollup merge of #76926 - ssomers:btree_cleanup_1, r=Mark-Simulacrum

BTreeMap: code readability tweaks

Gathered over the past months

r? @Mark-Simulacrum

3 years agoRollup merge of #76924 - rijenkii:patch-1, r=oli-obk
Ralf Jung [Sun, 20 Sep 2020 13:52:06 +0000 (15:52 +0200)]
Rollup merge of #76924 - rijenkii:patch-1, r=oli-obk

Add tracking issue for feature(unix_socket_peek)

Feature was added in #73761

3 years agoRollup merge of #76910 - lcnr:foreign-item-like, r=oli-obk
Ralf Jung [Sun, 20 Sep 2020 13:52:04 +0000 (15:52 +0200)]
Rollup merge of #76910 - lcnr:foreign-item-like, r=oli-obk

transmute: use diagnostic item

closes #66075, we now have no remaining uses of `match_def_path`  in the compiler while some uses still remain in `clippy`.

cc @RalfJung

3 years agoRollup merge of #76891 - lcnr:less-ref, r=ecstatic-morse
Ralf Jung [Sun, 20 Sep 2020 13:52:03 +0000 (15:52 +0200)]
Rollup merge of #76891 - lcnr:less-ref, r=ecstatic-morse

don't take `TyCtxt` by reference

small cleanup

3 years agoRollup merge of #76890 - matthiaskrgr:matches_simpl, r=lcnr
Ralf Jung [Sun, 20 Sep 2020 13:52:01 +0000 (15:52 +0200)]
Rollup merge of #76890 - matthiaskrgr:matches_simpl, r=lcnr

use matches!() macro for simple if let conditions

3 years agoRollup merge of #76887 - GuillaumeGomez:hashset-iter-types-examples, r=Dylan-DPC
Ralf Jung [Sun, 20 Sep 2020 13:51:59 +0000 (15:51 +0200)]
Rollup merge of #76887 - GuillaumeGomez:hashset-iter-types-examples, r=Dylan-DPC

Add missing examples on HashSet iter types

3 years agoRollup merge of #76883 - qlcom:master, r=Mark-Simulacrum
Ralf Jung [Sun, 20 Sep 2020 13:51:58 +0000 (15:51 +0200)]
Rollup merge of #76883 - qlcom:master, r=Mark-Simulacrum

README.md: Remove prompts from code blocks

https://github.com/rust-lang/rust/issues/76863

3 years agoRollup merge of #76878 - pietroalbini:version, r=Mark-Simulacrum
Ralf Jung [Sun, 20 Sep 2020 13:51:56 +0000 (15:51 +0200)]
Rollup merge of #76878 - pietroalbini:version, r=Mark-Simulacrum

Move the version number to a plaintext file

The Rust version number is currently embedded in bootstrap's source code, which makes it hard to update it automatically or access it outside of ./x.py (as you'd have to parse the source code).

This PR moves the version number to a standalone plaintext file, which makes accessing or updating it trivial.

r? @Mark-Simulacrum

3 years agoRollup merge of #76877 - denisvasilik:intra-doc-links-alloc-vec-deque, r=jyn514
Ralf Jung [Sun, 20 Sep 2020 13:51:54 +0000 (15:51 +0200)]
Rollup merge of #76877 - denisvasilik:intra-doc-links-alloc-vec-deque, r=jyn514

Move to intra-doc links in collections/vec_deque.rs and collections/vec_deque/drain.rs

Helps with #75080.

@rustbot modify labels: T-doc, A-intra-doc-links

3 years agoRollup merge of #76876 - denisvasilik:intra-doc-links-alloc, r=jyn514
Ralf Jung [Sun, 20 Sep 2020 13:51:53 +0000 (15:51 +0200)]
Rollup merge of #76876 - denisvasilik:intra-doc-links-alloc, r=jyn514

Move to intra-doc links in collections/btree/map.rs and collections/linked_list.rs

Helps with #75080.

@rustbot modify labels: T-doc, A-intra-doc-links

3 years agoRollup merge of #76875 - denisvasilik:intra-doc-links-alloc-binary-heap, r=jyn514
Ralf Jung [Sun, 20 Sep 2020 13:51:51 +0000 (15:51 +0200)]
Rollup merge of #76875 - denisvasilik:intra-doc-links-alloc-binary-heap, r=jyn514

Move to intra-doc links in library/alloc/src/collections/binary_heap.rs

Helps with #75080.

@rustbot modify labels: T-doc, A-intra-doc-links

3 years agoRollup merge of #76866 - est31:master, r=lcnr
Ralf Jung [Sun, 20 Sep 2020 13:51:50 +0000 (15:51 +0200)]
Rollup merge of #76866 - est31:master, r=lcnr

Remove unused feature gates from library/ crates

Removes some unused feature gates from library crates. It's likely not a complete list as I only tested a subset for which it's more likely that it is unused.

3 years agoRollup merge of #76832 - khyperia:backend_target_override, r=eddyb
Ralf Jung [Sun, 20 Sep 2020 13:51:48 +0000 (15:51 +0200)]
Rollup merge of #76832 - khyperia:backend_target_override, r=eddyb

Let backends define custom targets

Add a target_override hook that takes priority over builtin targets.

3 years agoRollup merge of #76732 - camelid:mir-basic-block-docs, r=RalfJung
Ralf Jung [Sun, 20 Sep 2020 13:51:46 +0000 (15:51 +0200)]
Rollup merge of #76732 - camelid:mir-basic-block-docs, r=RalfJung

Add docs for `BasicBlock`

Fixes #76715.

---

@rustbot modify labels: A-mir T-doc C-enhancement

3 years agoRemove MMX from Rust
Mateusz Mikuła [Thu, 3 Sep 2020 18:14:15 +0000 (20:14 +0200)]
Remove MMX from Rust

3 years agoAuto merge of #76136 - CDirkx:const-result, r=dtolnay
bors [Sun, 20 Sep 2020 13:07:11 +0000 (13:07 +0000)]
Auto merge of #76136 - CDirkx:const-result, r=dtolnay

Stabilize some Result methods as const

Stabilize the following methods of Result as const:
 - `is_ok`
 - `is_err`
 - `as_ref`

A test is also included, analogous to the test for `const_option`.

These methods are currently const under the unstable feature `const_result` (tracking issue: #67520).
I believe these methods to be eligible for stabilization because of the stabilization of #49146 (Allow if and match in constants) and the trivial implementations, see also: [PR#75463](https://github.com/rust-lang/rust/pull/75463) and [PR#76135](https://github.com/rust-lang/rust/pull/76135).

Note: these methods are the only methods currently under the `const_result` feature, thus this PR results in the removal of the feature.

Related: #76225

3 years agoenable on mir-opt-level=1 to test perf
Simon Vandel Sillesen [Sat, 19 Sep 2020 23:40:58 +0000 (01:40 +0200)]
enable on mir-opt-level=1 to test perf

3 years agoadd cleanup of cfg
Simon Vandel Sillesen [Sat, 19 Sep 2020 23:18:05 +0000 (01:18 +0200)]
add cleanup of cfg

3 years agoinsert storageDead for not equal temp
Simon Vandel Sillesen [Sat, 19 Sep 2020 23:09:18 +0000 (01:09 +0200)]
insert storageDead for not equal temp

3 years agocorrect comment
Simon Vandel Sillesen [Sat, 19 Sep 2020 21:53:18 +0000 (23:53 +0200)]
correct comment

3 years agobless
Simon Vandel Sillesen [Sat, 19 Sep 2020 21:50:51 +0000 (23:50 +0200)]
bless

3 years agoreplace usize with u32 to make it easier to bless
Simon Vandel Sillesen [Sat, 19 Sep 2020 21:38:54 +0000 (23:38 +0200)]
replace usize with u32 to make it easier to bless

3 years agoUpdate src/librustc_mir/transform/early_otherwise_branch.rs
Simon Vandel Sillesen [Sat, 19 Sep 2020 21:27:20 +0000 (23:27 +0200)]
Update src/librustc_mir/transform/early_otherwise_branch.rs

Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
3 years agoNew MIR optimization pass to reduce branches on match of tuples of enums
Simon Vandel Sillesen [Sat, 1 Aug 2020 23:47:52 +0000 (01:47 +0200)]
New MIR optimization pass to reduce branches on match of tuples of enums

3 years agoAuto merge of #76964 - RalfJung:rollup-ybn06fs, r=RalfJung
bors [Sun, 20 Sep 2020 11:02:36 +0000 (11:02 +0000)]
Auto merge of #76964 - RalfJung:rollup-ybn06fs, r=RalfJung

Rollup of 15 pull requests

Successful merges:

 - #76722 (Test and fix Send and Sync traits of BTreeMap artefacts)
 - #76766 (Extract some intrinsics out of rustc_codegen_llvm)
 - #76800 (Don't generate bootstrap usage unless it's needed)
 - #76809 (simplfy condition in ItemLowerer::with_trait_impl_ref())
 - #76815 (Fix wording in mir doc)
 - #76818 (Don't compile regex at every function call.)
 - #76821 (Remove redundant nightly features)
 - #76823 (black_box: silence unused_mut warning when building with cfg(miri))
 - #76825 (use `array_windows` instead of `windows` in the compiler)
 - #76827 (fix array_windows docs)
 - #76828 (use strip_prefix over starts_with and manual slicing based on pattern length (clippy::manual_strip))
 - #76840 (Move to intra doc links in core/src/future)
 - #76845 (Use intra docs links in core::{ascii, option, str, pattern, hash::map})
 - #76853 (Use intra-doc links in library/core/src/task/wake.rs)
 - #76871 (support panic=abort in Miri)

Failed merges:

r? `@ghost`

3 years agoRevert adding Atomic::from_mut.
Mara Bos [Sun, 20 Sep 2020 10:50:13 +0000 (12:50 +0200)]
Revert adding Atomic::from_mut.

This made too many assumptions about platforms, breaking some things.

Will need to be added later with a better way of gating on proper
alignment, without hardcoding cfg(target_arch)s.

3 years agoUpdate src/tools/clippy/clippy_lints/src/matches.rs
CDirkx [Sun, 20 Sep 2020 10:21:23 +0000 (12:21 +0200)]
Update src/tools/clippy/clippy_lints/src/matches.rs

Co-authored-by: Ralf Jung <post@ralfj.de>
3 years agoRollup merge of #76871 - RalfJung:miri-panic-abort, r=dtolnay
Ralf Jung [Sun, 20 Sep 2020 10:08:36 +0000 (12:08 +0200)]
Rollup merge of #76871 - RalfJung:miri-panic-abort, r=dtolnay

support panic=abort in Miri

This is needed for https://github.com/rust-lang/miri/issues/1058 on Windows: we cannot run the inline-assembly versions of `abort`, so fall back to the intrinsic (which Miri supports).

3 years agoRollup merge of #76853 - denisvasilik:intra-doc-links-core-wake, r=jyn514
Ralf Jung [Sun, 20 Sep 2020 10:08:34 +0000 (12:08 +0200)]
Rollup merge of #76853 - denisvasilik:intra-doc-links-core-wake, r=jyn514

Use intra-doc links in library/core/src/task/wake.rs

Helps with #75080.

@rustbot modify labels: T-doc, A-intra-doc-links