]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoAdd and fix BTreeMap comments
Stein Somers [Mon, 13 Jul 2020 14:50:27 +0000 (16:50 +0200)]
Add and fix BTreeMap comments

3 years agoAuto merge of #74245 - Manishearth:rollup-r0xq9dn, r=Manishearth
bors [Sun, 12 Jul 2020 08:57:10 +0000 (08:57 +0000)]
Auto merge of #74245 - Manishearth:rollup-r0xq9dn, r=Manishearth

Rollup of 10 pull requests

Successful merges:

 - #72920 (Stabilize `transmute` in constants and statics but not const fn)
 - #73715 (debuginfo:  Mangle tuples to be natvis friendly, typedef basic types)
 - #74066 (Optimize is_ascii for str and [u8].)
 - #74116 (Fix cross compilation of LLVM to aarch64 Windows targets)
 - #74167 (linker: illumos ld does not support --eh-frame-hdr)
 - #74168 (Add a help to use `in_band_lifetimes` in nightly)
 - #74197 (Reword incorrect `self` token suggestion)
 - #74213 (Minor refactor for rustc_resolve diagnostics match)
 - #74240 (Fix #74081 and add the test case from #74236)
 - #74241 (update miri)

Failed merges:

r? @ghost

3 years agoCorrectly sort const_fn_transmute
Manish Goregaokar [Sat, 11 Jul 2020 15:55:05 +0000 (08:55 -0700)]
Correctly sort const_fn_transmute

3 years agoRollup merge of #74241 - RalfJung:miri, r=RalfJung
Manish Goregaokar [Sat, 11 Jul 2020 15:53:29 +0000 (08:53 -0700)]
Rollup merge of #74241 - RalfJung:miri, r=RalfJung

update miri

This incorporates https://github.com/rust-lang/miri/pull/1474. [Last time](https://github.com/rust-lang/rust/pull/74146) that change caused trouble but I fixed xargo since then and [now it should work](https://github.com/rust-lang/rust/pull/74146#issuecomment-657051446).

Cc @rust-lang/miri r? @ghost

3 years agoRollup merge of #74240 - da-x:fix-74081, r=Manishearth
Manish Goregaokar [Sat, 11 Jul 2020 15:53:27 +0000 (08:53 -0700)]
Rollup merge of #74240 - da-x:fix-74081, r=Manishearth

Fix #74081 and add the test case from #74236

3 years agoRollup merge of #74213 - pickfire:patch-1, r=jonas-schievink
Manish Goregaokar [Sat, 11 Jul 2020 15:53:25 +0000 (08:53 -0700)]
Rollup merge of #74213 - pickfire:patch-1, r=jonas-schievink

Minor refactor for rustc_resolve diagnostics match

Use `matches!` instead of old `if let`

3 years agoRollup merge of #74197 - estebank:self-sugg, r=petrochenkov
Manish Goregaokar [Sat, 11 Jul 2020 15:53:23 +0000 (08:53 -0700)]
Rollup merge of #74197 - estebank:self-sugg, r=petrochenkov

Reword incorrect `self` token suggestion

3 years agoRollup merge of #74168 - JohnTitor:help-for-in-band-lifetimes, r=petrochenkov
Manish Goregaokar [Sat, 11 Jul 2020 15:53:21 +0000 (08:53 -0700)]
Rollup merge of #74168 - JohnTitor:help-for-in-band-lifetimes, r=petrochenkov

Add a help to use `in_band_lifetimes` in nightly

Fixes #73775

3 years agoRollup merge of #74167 - jclulow:illumos-linker-eh-frame-hdr-fix, r=petrochenkov
Manish Goregaokar [Sat, 11 Jul 2020 15:53:19 +0000 (08:53 -0700)]
Rollup merge of #74167 - jclulow:illumos-linker-eh-frame-hdr-fix, r=petrochenkov

linker: illumos ld does not support --eh-frame-hdr

As of rust-lang/rust#73564, the --eh-frame-hdr flag is unconditionally
passed to linkers on many platforms.  The illumos link editor does not
currently support this flag.

The linker machinery in the Rust toolchain currently seems to use the
(potentially cross-compiled) target to choose linker flags, rather than
looking at what might be running on the build system.  Disabling the
flag for all illumos/Solaris targets seems like the best we can do for
now without more serious surgery.

3 years agoRollup merge of #74116 - arlosi:aarch64build, r=pietroalbini
Manish Goregaokar [Sat, 11 Jul 2020 15:53:18 +0000 (08:53 -0700)]
Rollup merge of #74116 - arlosi:aarch64build, r=pietroalbini

Fix cross compilation of LLVM to aarch64 Windows targets

When cross-compiling, the LLVM build system recurses to build tools that need to run on the host system. However, since we pass cmake defines to set the compiler and target, LLVM still compiles these tools for the target system, rather than the host. The tools then fail to execute during the LLVM build.

This change sets defines for the tools that need to run on the host (llvm-nm, llvm-tablegen, and llvm-config), so that the LLVM build does not attempt to build them, and instead relies on the tools already built.

If compiling with clang-cl, adds the `--target` option to specify the target triple. MSVC compilers do not require this, since there is a separate compiler binary for each cross-compilation target.

Related issue: #72881
Requires LLVM change: rust-lang/llvm-project#67

3 years agoRollup merge of #74066 - thomcc:optimize-is-ascii, r=nagisa
Manish Goregaokar [Sat, 11 Jul 2020 15:53:16 +0000 (08:53 -0700)]
Rollup merge of #74066 - thomcc:optimize-is-ascii, r=nagisa

Optimize is_ascii for str and [u8].

This optimizes the `is_ascii` function for `[u8]` and `str`. I've been surprised this wasn't done for a while, so I just did it.

Benchmarks comparing before/after look like:

```
test ascii::long_readonly::is_ascii_slice_iter_all              ... bench:         174 ns/iter (+/- 79) = 40172 MB/s
test ascii::long_readonly::is_ascii_slice_libcore               ... bench:          16 ns/iter (+/- 5) = 436875 MB/s
test ascii::medium_readonly::is_ascii_slice_iter_all            ... bench:          12 ns/iter (+/- 3) = 2666 MB/s
test ascii::medium_readonly::is_ascii_slice_libcore             ... bench:           2 ns/iter (+/- 0) = 16000 MB/s
test ascii::short_readonly::is_ascii_slice_iter_all             ... bench:           3 ns/iter (+/- 0) = 2333 MB/s
test ascii::short_readonly::is_ascii_slice_libcore              ... bench:           4 ns/iter (+/- 0) = 1750 MB/s
```

(Taken on a x86_64 macbook 2.9 GHz Intel Core i9 with 6 cores)

Where `is_ascii_slice_iter_all` is the old version, and `is_ascii_slice_libcore` is the new.

I tried to document the code well, so hopefully it's understandable. It has fairly exhaustive tests ensuring size/align doesn't get violated -- because `miri` doesn't really help a lot for this sort of code right now, I tried to `debug_assert` all the safety invariants I'm depending on. (Of course, none of them are required for correctness or soundness -- just allows us to test that this sort of pointer manipulation is sound and such).

Anyway, thanks. Let me know if you have questions/desired changes.

3 years agoRollup merge of #73715 - MaulingMonkey:pr-natvis-tuples, r=Amanieu
Manish Goregaokar [Sat, 11 Jul 2020 15:53:13 +0000 (08:53 -0700)]
Rollup merge of #73715 - MaulingMonkey:pr-natvis-tuples, r=Amanieu

debuginfo:  Mangle tuples to be natvis friendly, typedef basic types

These changes are meant to unblock rust-lang/rust#70052 "Update hashbrown to 0.8.0" by allowing the use of `tuple<u64, u64>` as a .natvis expression in MSVC style debuggers (MSVC, WinDbg, CDB, etc.)

f8eb81b does the actual mangling of `(u64, u64)` -> `tuple<u64, 64>`
24a728a allows `u64` to resolve (fixing `$T1` / `$T2` when used to visualize `HashMap<u64, u64, ...>`)

3 years agoRollup merge of #72920 - oli-obk:const_transmute, r=RalfJung
Manish Goregaokar [Sat, 11 Jul 2020 15:53:06 +0000 (08:53 -0700)]
Rollup merge of #72920 - oli-obk:const_transmute, r=RalfJung

Stabilize `transmute` in constants and statics but not const fn

cc #53605 (leaving issue open so we can add `transmute` to `const fn` later)

Previous attempt: #64011

r? @RalfJung

cc @rust-lang/wg-const-eval

3 years agoAdd the test case mentioned in #74236
Dan Aloni [Sat, 11 Jul 2020 11:42:08 +0000 (14:42 +0300)]
Add the test case mentioned in #74236

3 years agoupdate miri
Ralf Jung [Sat, 11 Jul 2020 09:53:18 +0000 (11:53 +0200)]
update miri

3 years agoFix try_print_visible_def_path_recur for opt_def_id usage
Dan Aloni [Sat, 11 Jul 2020 08:03:54 +0000 (11:03 +0300)]
Fix try_print_visible_def_path_recur for opt_def_id usage

This to fix #74081.

3 years agoStabilize `transmute` in constants and statics but not const fn
Oliver Scherer [Fri, 30 Aug 2019 00:01:04 +0000 (02:01 +0200)]
Stabilize `transmute` in constants and statics but not const fn

3 years agoAuto merge of #74235 - Manishearth:rollup-bgs3q14, r=Manishearth
bors [Sat, 11 Jul 2020 06:28:04 +0000 (06:28 +0000)]
Auto merge of #74235 - Manishearth:rollup-bgs3q14, r=Manishearth

Rollup of 19 pull requests

Successful merges:

 - #71322 (Accept tuple.0.0 as tuple indexing (take 2))
 - #72303 (Add core::future::{poll_fn, PollFn})
 - #73862 (Stabilize casts and coercions to `&[T]` in const fn)
 - #73887 (stabilize const mem::forget)
 - #73989 (adjust ub-enum test to be endianess-independent)
 - #74045 (Explain effects of debugging options from config.toml)
 - #74076 (Add `read_exact_at` and `write_all_at` to WASI's `FileExt`)
 - #74099 (Add VecDeque::range* methods)
 - #74100 (Use str::strip* in bootstrap)
 - #74103 (Only add CFGuard on `windows-msvc` targets)
 - #74109 (Only allow `repr(i128/u128)` on enum)
 - #74122 (Start-up clean-up)
 - #74125 (Correctly mark the ending span of a match arm)
 - #74127 (Avoid "whitelist")
 - #74129 (:arrow_up: rust-analyzer)
 - #74135 (Update books)
 - #74145 (Update rust-installer to latest version)
 - #74161 (Fix  disabled dockerfiles)
 - #74162 (take self by value in ToPredicate)

Failed merges:

r? @ghost

3 years agoRollup merge of #74162 - lcnr:ToPredicate-no-ref, r=varkor
Manish Goregaokar [Sat, 11 Jul 2020 06:26:56 +0000 (23:26 -0700)]
Rollup merge of #74162 - lcnr:ToPredicate-no-ref, r=varkor

take self by value in ToPredicate

3 years agoRollup merge of #74161 - tblah:riscv64gc-dockerfile-improvment, r=Mark-Simulacrum
Manish Goregaokar [Sat, 11 Jul 2020 06:26:54 +0000 (23:26 -0700)]
Rollup merge of #74161 - tblah:riscv64gc-dockerfile-improvment, r=Mark-Simulacrum

Fix  disabled dockerfiles

When the dockerfiles were moved into the host-x86_64 directory, paths
for COPY commands were updated with the new host-x86_64/ prefix. This
suggested that the intended context was src/ci/docker. However, the context
for disabled docker images was src/ci/docker/host-x86_64. This broke the new
paths and prevented src/ci/docker/scripts from being included in the
context at all.

This commit corrects this context allowing docker to find the files it
needs for COPY commands.

Also includes a quick fix to riscv recommended by @bjorn3

3 years agoRollup merge of #74145 - michaelforney:rust-installer, r=Mark-Simulacrum
Manish Goregaokar [Sat, 11 Jul 2020 06:26:53 +0000 (23:26 -0700)]
Rollup merge of #74145 - michaelforney:rust-installer, r=Mark-Simulacrum

Update rust-installer to latest version

This pulls in a fix for the install script on some tr(1) implementations,
as well as an update to use `anyhow` instead of `failure` for error
handling.

3 years agoRollup merge of #74135 - ehuss:update-books, r=ehuss
Manish Goregaokar [Sat, 11 Jul 2020 06:26:51 +0000 (23:26 -0700)]
Rollup merge of #74135 - ehuss:update-books, r=ehuss

Update books

## book

3 commits in 4e7c00bece1544d409312ec93467beb62b5bd0cb..84a31397b34f9d405df44f2899ff17a4828dba18
2020-06-19 09:39:12 -0400 to 2020-07-04 10:50:18 -0500
- Update Windows install instructions (rust-lang/book#2389)
- Update ch01-02-hello-world.md (rust-lang/book#2386)
- bump mdbook version in github action (rust-lang/book#2380)

## reference

2 commits in 04d5d5d7ba624b6f5016298451f3a63d557f3260..0ea7bc494f1289234d8800bb9185021e0ad946f0
2020-06-16 15:08:05 -0700 to 2020-07-02 15:33:04 -0700
- Fix mis-capitalization of type name. (rust-lang-nursery/reference#844)
- Fix name of trait for array indexing. (rust-lang-nursery/reference#840)

## embedded-book

1 commits in 616962ad0dd80f34d8b802da038d0aed9dd691bb..94d9ea8460bcbbbfef1877b47cb930260b5849a7
2020-06-23 16:03:45 +0000 to 2020-07-05 14:17:40 +0000
- Note on transformation of static variables by attribute exception  (rust-embedded/book#251)

## rust-by-example

1 commits in 6f94ccb48da6fa4ed0031290f21411cf789f7d5e..229c6945a26a53a751ffa4f9cb418388c00029d3
2020-06-20 17:51:30 -0300 to 2020-07-06 10:13:15 -0300
- Modify comments (rust-lang/rust-by-example#1359)

3 years agoRollup merge of #74129 - matklad:rust-analyzer-2020-07-07, r=Mark-Simulacrum
Manish Goregaokar [Sat, 11 Jul 2020 06:26:49 +0000 (23:26 -0700)]
Rollup merge of #74129 - matklad:rust-analyzer-2020-07-07, r=Mark-Simulacrum

:arrow_up: rust-analyzer

This updates rust-analyzer submodule to the latest release.

I plan to do that every Monday after rust-analyzer release (about 16:00 CET).

This is semi-automated by https://github.com/rust-analyzer/rust-analyzer/pull/5253/files#diff-c06f6a9cbd0ad2421bcc2ddc28805457R77-R100.

Who would be the appropriate person to r? on Mondays?

3 years agoRollup merge of #74127 - tamird:allowlist, r=oli-obk
Manish Goregaokar [Sat, 11 Jul 2020 06:26:47 +0000 (23:26 -0700)]
Rollup merge of #74127 - tamird:allowlist, r=oli-obk

Avoid "whitelist"

Other terms are more inclusive and precise.

3 years agoRollup merge of #74125 - ayazhafiz:i/74050, r=matthewjasper
Manish Goregaokar [Sat, 11 Jul 2020 06:26:45 +0000 (23:26 -0700)]
Rollup merge of #74125 - ayazhafiz:i/74050, r=matthewjasper

Correctly mark the ending span of a match arm

Closes #74050

r? @matthewjasper

3 years agoRollup merge of #74122 - nnethercote:startup-cleanup, r=petrochenkov
Manish Goregaokar [Sat, 11 Jul 2020 06:26:43 +0000 (23:26 -0700)]
Rollup merge of #74122 - nnethercote:startup-cleanup, r=petrochenkov

Start-up clean-up

r? @petrochenkov

3 years agoRollup merge of #74109 - nbdd0121:issue-74082, r=petrochenkov
Manish Goregaokar [Sat, 11 Jul 2020 06:26:41 +0000 (23:26 -0700)]
Rollup merge of #74109 - nbdd0121:issue-74082, r=petrochenkov

Only allow `repr(i128/u128)` on enum

Fixes #74082

3 years agoRollup merge of #74103 - ajpaverd:cfguard-msvc-only, r=nikomatsakis
Manish Goregaokar [Sat, 11 Jul 2020 06:26:39 +0000 (23:26 -0700)]
Rollup merge of #74103 - ajpaverd:cfguard-msvc-only, r=nikomatsakis

Only add CFGuard on `windows-msvc` targets

As @ollie27 pointed out in #73893, the `cfguard` module flag causes incorrect behavior on `windows-gnu` targets. This patch restricts rustc to only add this flag for `windows-msvc` targets (this may need to be changed if other linkers gain support for CFGuard).

3 years agoRollup merge of #74100 - lzutao:strip-bootstrap, r=Mark-Simulacrum
Manish Goregaokar [Sat, 11 Jul 2020 06:26:38 +0000 (23:26 -0700)]
Rollup merge of #74100 - lzutao:strip-bootstrap, r=Mark-Simulacrum

Use str::strip* in bootstrap

This is technically a breaking change, replacing the use of `trim_start_matches` with `strip_prefix`. However, because in `rustc -Vv` output there are no lines starting with multiple "release:", this should go unnoticed in practice.

3 years agoRollup merge of #74099 - jonhoo:deque-range, r=dtolnay
Manish Goregaokar [Sat, 11 Jul 2020 06:26:36 +0000 (23:26 -0700)]
Rollup merge of #74099 - jonhoo:deque-range, r=dtolnay

Add VecDeque::range* methods

This patch adds `VecDeque::range` and `VecDeque::range_mut` to provide
iterators over a sub-range of a `VecDeque`. This behavior can be
emulated with `skip` and `take`, but directly providing a `Range` is
more ergonomic. This also partially makes up for `VecDeque`'s lack of
`SliceIndex` support.

3 years agoRollup merge of #74076 - sunfishcode:wasi-fileext-newmethods, r=alexcrichton
Manish Goregaokar [Sat, 11 Jul 2020 06:26:34 +0000 (23:26 -0700)]
Rollup merge of #74076 - sunfishcode:wasi-fileext-newmethods, r=alexcrichton

Add `read_exact_at` and `write_all_at` to WASI's `FileExt`

This adds `read_exact_at` and `write_all_at` to WASI's `FileExt`,
similar to the Unix versions of the same names.

3 years agoRollup merge of #74045 - tmiasko:config-debug, r=nikomatsakis
Manish Goregaokar [Sat, 11 Jul 2020 06:26:32 +0000 (23:26 -0700)]
Rollup merge of #74045 - tmiasko:config-debug, r=nikomatsakis

Explain effects of debugging options from config.toml

3 years agoRollup merge of #73989 - RalfJung:ub-enum-test, r=oli-obk
Manish Goregaokar [Sat, 11 Jul 2020 06:26:30 +0000 (23:26 -0700)]
Rollup merge of #73989 - RalfJung:ub-enum-test, r=oli-obk

adjust ub-enum test to be endianess-independent

@cuviper noted that our test fails on "other" endianess systems (I never know which is which^^), so let's fix that.

3 years agoRollup merge of #73887 - DutchGhost:master, r=oli-obk
Manish Goregaokar [Sat, 11 Jul 2020 06:26:28 +0000 (23:26 -0700)]
Rollup merge of #73887 - DutchGhost:master, r=oli-obk

stabilize const mem::forget

Stabilizes const `mem::forget` as implemented in https://github.com/rust-lang/rust/pull/69617 and tracked in https://github.com/rust-lang/rust/issues/69616.

Closes https://github.com/rust-lang/rust/issues/69616

3 years agoRollup merge of #73862 - oli-obk:const_array_to_slice, r=RalfJung
Manish Goregaokar [Sat, 11 Jul 2020 06:26:26 +0000 (23:26 -0700)]
Rollup merge of #73862 - oli-obk:const_array_to_slice, r=RalfJung

Stabilize casts and coercions to `&[T]` in const fn

Part of #64992

There was never a reason to not stabilize this, we just accidentally prevented them when we implemented the `min_const_fn` feature that gave us `const fn` on stable. This PR stabilizes these casts (which are already stable in `const` outside `const fn`), while keeping all other unsizing casts (so `T` -> `dyn Trait`) unstable within const fn.
These casts have no forward compatibility concerns with any future features for const eval and users were able to use them under the `const_fn` feature gate already since at least the miri merger, possibly longer.

r? @rust-lang/lang

3 years agoRollup merge of #72303 - yoshuawuyts:future-poll-fn, r=dtolnay
Manish Goregaokar [Sat, 11 Jul 2020 06:26:24 +0000 (23:26 -0700)]
Rollup merge of #72303 - yoshuawuyts:future-poll-fn, r=dtolnay

Add core::future::{poll_fn, PollFn}

This is a sibling PR to #70834, adding `future::poll_fn`. This is a small helper function that helps bridge the gap between "poll state machines" and "async/await". It was first introduced in [futures@0.1.7](https://docs.rs/futures/0.1.7/futures/future/fn.poll_fn.html) in December of 2016, and has been tried and tested as part of the ecosystem for the past 3.5 years.

## Implementation

Much of the same reasoning from #70834 applies: by returning a concrete struct rather than an `async fn` we get to mark the future as `Unpin`. It also becomes named which allows storing it in structs without boxing. This implementation has been modified from the implementation in `futures-rs`.

## References
- [`futures::future::poll_fn`](https://docs.rs/futures/0.3.5/futures/future/fn.poll_fn.html)
- [`async_std::future::poll_fn`](https://docs.rs/async-std/1.5.0/async_std/future/fn.poll_fn.html)

3 years agoRollup merge of #71322 - petrochenkov:tuple00, r=nikomatsakis
Manish Goregaokar [Sat, 11 Jul 2020 06:26:22 +0000 (23:26 -0700)]
Rollup merge of #71322 - petrochenkov:tuple00, r=nikomatsakis

Accept tuple.0.0 as tuple indexing (take 2)

If we expect something identifier-like when parsing a field name after `.`, but encounter a float token, we break that float token into parts, similarly to how we break `&&` into `&` `&`, or `<<` into `<` `<`, etc.

An alternative to https://github.com/rust-lang/rust/pull/70420.

3 years agoAuto merge of #74181 - pietroalbini:ci-gha-fallible-macos, r=Mark-Simulacrum
bors [Fri, 10 Jul 2020 13:52:24 +0000 (13:52 +0000)]
Auto merge of #74181 - pietroalbini:ci-gha-fallible-macos, r=Mark-Simulacrum

Gate GHA on everything but macOS

The macOS spurious failure started happening again. As we discussed during the infra team meeting, this gates on everything but macOS.

r? @Mark-Simulacrum

3 years agoci: allow gating gha on everything but macOS
Pietro Albini [Mon, 15 Jun 2020 13:12:43 +0000 (15:12 +0200)]
ci: allow gating gha on everything but macOS

In our GitHub Actions setup macOS is too unreliable to gate on it, but
the other builders work fine. This commit splits the macOS builders into
a separate job (called auto-fallible), allowing us to gate on the auto
job without failing due to macOS spurious failures.

3 years agoAdd tracking issue
Jon Gjengset [Fri, 10 Jul 2020 13:23:52 +0000 (09:23 -0400)]
Add tracking issue

3 years agoAvoid "whitelist"
Tamir Duberstein [Tue, 7 Jul 2020 15:12:44 +0000 (11:12 -0400)]
Avoid "whitelist"

Other terms are more inclusive and precise.

3 years agoOnly add cfguard module flag on windows-msvc
Andrew Paverd [Mon, 6 Jul 2020 15:10:42 +0000 (16:10 +0100)]
Only add cfguard module flag on windows-msvc

3 years agoMinor refactor for rustc_resolve diagnostics match
Ivan Tham [Fri, 10 Jul 2020 07:36:02 +0000 (15:36 +0800)]
Minor refactor for rustc_resolve diagnostics match

Use `matches!` instead of old `if let`

3 years agoUse str::strip* in bootstrap
Lzu Tao [Fri, 10 Jul 2020 07:18:19 +0000 (07:18 +0000)]
Use str::strip* in bootstrap

This commit replaces the use of `trim_start_matches`
because in `rustc -Vv` output there are no lines
starting with multiple "release:".

3 years agoChange some function names.
Nicholas Nethercote [Tue, 7 Jul 2020 03:41:08 +0000 (13:41 +1000)]
Change some function names.

A couple of these are quite long, but they do a much better job of
explaining what they do, which was non-obvious before.

3 years agoTweak `spawn_thread_pool`.
Nicholas Nethercote [Tue, 7 Jul 2020 03:15:02 +0000 (13:15 +1000)]
Tweak `spawn_thread_pool`.

This makes the two versions (parallel and non-parallel) more similar to
each other.

3 years agoAdd an explanatory comment to `scoped_thread`.
Nicholas Nethercote [Tue, 7 Jul 2020 03:10:19 +0000 (13:10 +1000)]
Add an explanatory comment to `scoped_thread`.

3 years agoEliminate `rust_input`.
Nicholas Nethercote [Tue, 7 Jul 2020 04:13:03 +0000 (14:13 +1000)]
Eliminate `rust_input`.

It has a single call site and having it as a separate (higher-order!)
function makes the code harder to read.

3 years agoTweak wording
Yuki Okushi [Thu, 9 Jul 2020 22:24:18 +0000 (07:24 +0900)]
Tweak wording

3 years agoAdd a help to use `in_band_lifetimes` in nightly
Yuki Okushi [Wed, 8 Jul 2020 23:12:59 +0000 (08:12 +0900)]
Add a help to use `in_band_lifetimes` in nightly

3 years agoAuto merge of #74195 - Manishearth:rollup-h3m0sl8, r=Manishearth
bors [Thu, 9 Jul 2020 21:32:02 +0000 (21:32 +0000)]
Auto merge of #74195 - Manishearth:rollup-h3m0sl8, r=Manishearth

Rollup of 14 pull requests

Successful merges:

 - #73292 (Fixing broken link for the Eq trait)
 - #73791 (Allow for parentheses after macro intra-doc-links)
 - #74070 ( Use for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>.)
 - #74077 (Use relative path for local links to primitives)
 - #74079 (Eliminate confusing "globals" terminology.)
 - #74107 (Hide `&mut self` methods from Deref in sidebar if there are no `DerefMut` impl for the type.)
 - #74136 (Fix broken link in rustdocdoc)
 - #74137 (Update cargo)
 - #74142 (Liballoc use vec instead of vector)
 - #74143 (Try remove unneeded ToString import in liballoc slice)
 - #74146 (update miri)
 - #74150 (Avoid "blacklist")
 - #74184 (Add docs for intra-doc-links)
 - #74188 (Tweak `::` -> `:` typo heuristic and reduce verbosity)

Failed merges:

 - #74122 (Start-up clean-up)
 - #74127 (Avoid "whitelist")

r? @ghost

3 years agoReword incorrect `self` token suggestion
Esteban Küber [Thu, 9 Jul 2020 20:01:20 +0000 (13:01 -0700)]
Reword incorrect `self` token suggestion

3 years agoRollup merge of #74188 - estebank:tweak-ascription-typo-heuristic, r=petrochenkov
Manish Goregaokar [Thu, 9 Jul 2020 18:50:50 +0000 (11:50 -0700)]
Rollup merge of #74188 - estebank:tweak-ascription-typo-heuristic, r=petrochenkov

Tweak `::` -> `:` typo heuristic and reduce verbosity

Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.

Clean up indentation.

r? @petrochenkov

3 years agoRollup merge of #74184 - Manishearth:doc-intra-doc, r=GuillaumeGomez
Manish Goregaokar [Thu, 9 Jul 2020 18:50:48 +0000 (11:50 -0700)]
Rollup merge of #74184 - Manishearth:doc-intra-doc, r=GuillaumeGomez

Add docs for intra-doc-links

Fixes https://github.com/rust-lang/rust/issues/66000

Hmm, for some reason my push closed the previous PR

3 years agoRollup merge of #74150 - tamird:blocklist, r=nikomatsakis
Manish Goregaokar [Thu, 9 Jul 2020 18:50:46 +0000 (11:50 -0700)]
Rollup merge of #74150 - tamird:blocklist, r=nikomatsakis

Avoid "blacklist"

Other terms are more inclusive and precise.

Clippy still has a lint named "blacklisted-name", but renaming it would
be a breaking change, so is left for future work.

The target configuration option "abi-blacklist" has been depreciated and
renamed to "unsupported-abis". The old name continues to work.

3 years agoRollup merge of #74146 - RalfJung:miri, r=RalfJung
Manish Goregaokar [Thu, 9 Jul 2020 18:50:44 +0000 (11:50 -0700)]
Rollup merge of #74146 - RalfJung:miri, r=RalfJung

update miri

Fixes https://github.com/rust-lang/rust/issues/74132
Cc @rust-lang/miri r? @ghost

3 years agoRollup merge of #74143 - pickfire:patch-2, r=jonas-schievink
Manish Goregaokar [Thu, 9 Jul 2020 18:50:42 +0000 (11:50 -0700)]
Rollup merge of #74143 - pickfire:patch-2, r=jonas-schievink

Try remove unneeded ToString import in liballoc slice

3 years agoRollup merge of #74142 - pickfire:patch-1, r=dtolnay
Manish Goregaokar [Thu, 9 Jul 2020 18:50:40 +0000 (11:50 -0700)]
Rollup merge of #74142 - pickfire:patch-1, r=dtolnay

Liballoc use vec instead of vector

Keep congruency with other parts, full word vector is rarely used.

3 years agoRollup merge of #74137 - ehuss:update-cargo, r=ehuss
Manish Goregaokar [Thu, 9 Jul 2020 18:50:39 +0000 (11:50 -0700)]
Rollup merge of #74137 - ehuss:update-cargo, r=ehuss

Update cargo

6 commits in fede83ccf973457de319ba6fa0e36ead454d2e20..4f74d9b2a771c58b7ef4906b2668afd075bc8081
2020-07-02 21:51:34 +0000 to 2020-07-08 17:13:00 +0000
- Disable long_file_names test if not supported on Windows. (rust-lang/cargo#8469)
- Add support for deserializing enums in config files (rust-lang/cargo#8454)
- Write GNU tar files, supporting long names. (rust-lang/cargo#8453)
- Don't overwrite existing `rustdoc` args with --document-private-items (rust-lang/cargo#8449)
- Add some help about rustup's +toolchain syntax. (rust-lang/cargo#8455)
- Update metadata man page. (rust-lang/cargo#8451)

3 years agoRollup merge of #74136 - JohnTitor:index-page-link, r=GuillaumeGomez
Manish Goregaokar [Thu, 9 Jul 2020 18:50:37 +0000 (11:50 -0700)]
Rollup merge of #74136 - JohnTitor:index-page-link, r=GuillaumeGomez

Fix broken link in rustdocdoc

The previous link redirects to https://www.rust-lang.org/learn.

3 years agoRollup merge of #74107 - nbdd0121:rustdoc, r=GuillaumeGomez
Manish Goregaokar [Thu, 9 Jul 2020 18:50:34 +0000 (11:50 -0700)]
Rollup merge of #74107 - nbdd0121:rustdoc, r=GuillaumeGomez

Hide `&mut self` methods from Deref in sidebar if there are no `DerefMut` impl for the type.

This partially addresses #74083.

3 years agoRollup merge of #74079 - nnethercote:session-globals, r=nikomatsakis
Manish Goregaokar [Thu, 9 Jul 2020 18:50:32 +0000 (11:50 -0700)]
Rollup merge of #74079 - nnethercote:session-globals, r=nikomatsakis

Eliminate confusing "globals" terminology.

There are some structures that are called "globals", but are they global
to a compilation session, and not truly global. I have always found this
highly confusing, so this commit renames them as "session globals" and
adds a comment explaining things.

Also, the commit fixes an unnecessary nesting of `set()` calls
`src/librustc_errors/json/tests.rs`

r? @Aaron1011

3 years agoRollup merge of #74077 - sethp:docs/fix-intra-doc-primitive-link, r=jyn514
Manish Goregaokar [Thu, 9 Jul 2020 18:50:30 +0000 (11:50 -0700)]
Rollup merge of #74077 - sethp:docs/fix-intra-doc-primitive-link, r=jyn514

Use relative path for local links to primitives

Else, links to `char::foo` would point into `/path/to/src/libcore/std/primitive.char.html#method.foo`.

Split out from #73804.

3 years agoRollup merge of #74070 - eddyb:forall-tcx-providers, r=nikomatsakis
Manish Goregaokar [Thu, 9 Jul 2020 18:50:28 +0000 (11:50 -0700)]
Rollup merge of #74070 - eddyb:forall-tcx-providers, r=nikomatsakis

 Use for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>.

In order to work around normalization-under-HRTB (for `provide!` in `rustc_metadata`), we ended up with this:
```rust
struct Providers<'tcx> {
    type_of: fn(TyCtxt<'tcx>, DefId) -> Ty<'tcx>,
    // ...
}
```
But what I initially wanted to do, IIRC, was this:
```rust
struct Providers {
    type_of: for<'tcx> fn(TyCtxt<'tcx>, DefId) -> Ty<'tcx>,
    // ...
}
```

This PR moves to the latter, for the simple reason that only the latter allows keeping a `Providers` value, or a subset of its `fn` pointer fields, around in a `static` or `thread_local!`, which can be really useful for custom drivers that override queries.
(@jyn514 and I came across a concrete usecase of that in `rustdoc`)

The `provide!` macro in `rustc_metadata` is fixed by making the query key/value types available as type aliases under `ty::query::query_{keys,values}`, not just associated types (this is the first commit).

r? @nikomatsakis

3 years agoRollup merge of #73791 - Manishearth:parens-intra-doc, r=GuillaumeGomez,jyn514
Manish Goregaokar [Thu, 9 Jul 2020 18:50:26 +0000 (11:50 -0700)]
Rollup merge of #73791 - Manishearth:parens-intra-doc, r=GuillaumeGomez,jyn514

Allow for parentheses after macro intra-doc-links

None

3 years agoRollup merge of #73292 - poliorcetics:fix-link-in-partialeq, r=Dylan-DPC
Manish Goregaokar [Thu, 9 Jul 2020 18:50:17 +0000 (11:50 -0700)]
Rollup merge of #73292 - poliorcetics:fix-link-in-partialeq, r=Dylan-DPC

Fixing broken link for the Eq trait

Fixes #73233.

3 years agoAdd test
Manish Goregaokar [Thu, 9 Jul 2020 17:27:48 +0000 (10:27 -0700)]
Add test

3 years agoMove to unstable section
Manish Goregaokar [Thu, 9 Jul 2020 15:36:41 +0000 (08:36 -0700)]
Move to unstable section

3 years agoTweak `::` -> `:` typo heuristic and reduce verbosity
Esteban Küber [Thu, 9 Jul 2020 16:09:25 +0000 (09:09 -0700)]
Tweak `::` -> `:` typo heuristic and reduce verbosity

Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.

3 years agoReduce indentation
Esteban Küber [Thu, 9 Jul 2020 16:05:40 +0000 (09:05 -0700)]
Reduce indentation

3 years agoAllow for parentheses after macro intra-doc-links
Manish Goregaokar [Sat, 27 Jun 2020 07:22:03 +0000 (00:22 -0700)]
Allow for parentheses after macro intra-doc-links

3 years agoUpdate src/doc/rustdoc/src/intra-doc-links.md
Manish Goregaokar [Thu, 9 Jul 2020 15:31:44 +0000 (08:31 -0700)]
Update src/doc/rustdoc/src/intra-doc-links.md

3 years agoAdd docs for intra-doc-links
Manish Goregaokar [Sat, 27 Jun 2020 19:12:55 +0000 (12:12 -0700)]
Add docs for intra-doc-links

3 years agoupdate miri
Ralf Jung [Thu, 9 Jul 2020 11:36:16 +0000 (13:36 +0200)]
update miri

3 years agoAuto merge of #74131 - ollie27:rustdoc_invalid_codeblock_attributes_name, r=Guillaume...
bors [Thu, 9 Jul 2020 07:00:27 +0000 (07:00 +0000)]
Auto merge of #74131 - ollie27:rustdoc_invalid_codeblock_attributes_name, r=GuillaumeGomez

rustdoc: Rename invalid_codeblock_attribute lint to be plural

Lint names should be plural as per the lint naming conventions: https://github.com/rust-lang/rfcs/blob/master/text/0344-conventions-galore.md#lints

r? @GuillaumeGomez

3 years agoEliminate confusing "globals" terminology.
Nicholas Nethercote [Mon, 6 Jul 2020 00:53:14 +0000 (10:53 +1000)]
Eliminate confusing "globals" terminology.

There are some structures that are called "globals", but are they global
to a compilation session, and not truly global. I have always found this
highly confusing, so this commit renames them as "session globals" and
adds a comment explaining things.

Also, the commit fixes an unnecessary nesting of `set()` calls
`src/librustc_errors/json/tests.rs`

3 years agolinker: illumos ld does not support --eh-frame-hdr
Joshua M. Clulow [Wed, 8 Jul 2020 23:28:16 +0000 (23:28 +0000)]
linker: illumos ld does not support --eh-frame-hdr

As of rust-lang/rust#73564, the --eh-frame-hdr flag is unconditionally
passed to linkers on many platforms.  The illumos link editor does not
currently support this flag.

The linker machinery in the Rust toolchain currently seems to use the
(potentially cross-compiled) target to choose linker flags, rather than
looking at what might be running on the build system.  Disabling the
flag for all illumos/Solaris targets seems like the best we can do for
now without more serious surgery.

3 years agoToPredicate by value
Bastian Kauschke [Wed, 8 Jul 2020 21:40:06 +0000 (23:40 +0200)]
ToPredicate by value

3 years agoci: fix context for disabled docker images
Tom Eccles [Wed, 8 Jul 2020 20:57:57 +0000 (21:57 +0100)]
ci: fix context for disabled docker images

When the dockerfiles were moved into the host-x86_64 directory, paths
for COPY commands were updated with the new host-x86_64/ prefix. This
suggested that the intended context was src/ci/docker. However, the context
for disabled docker images was src/ci/docker/host-x86_64. This broke the new
paths and prevented src/ci/docker/scripts from being included in the
context at all.

This commit corrects this context allowing docker to find the files it
needs for COPY commands.

3 years agoci: disabled: riscv: minimise docker overlays
Tom Eccles [Wed, 8 Jul 2020 18:23:51 +0000 (19:23 +0100)]
ci: disabled: riscv: minimise docker overlays

Suggested by @bjorn3

Every RUN command creates a new overlay on top of the image as of before
the RUN command. Using fewer RUN commands prevents intermediate overlays
(which in this case would have contained the entire Linux source tree).

3 years agoAuto merge of #74153 - ehuss:fix-bootstrap-test-librustc, r=Mark-Simulacrum
bors [Wed, 8 Jul 2020 20:03:32 +0000 (20:03 +0000)]
Auto merge of #74153 - ehuss:fix-bootstrap-test-librustc, r=Mark-Simulacrum

Fix x.py test for librustc crates.

#73352 introduced a bug where `x.py test src/librustc_ast` would fail to actually run the tests. The issue is that `krate` and `all_krates` were changed to return relative paths. This caused the code to do a test of "relative_path ends with absolute path" which is always false.  The solution is to swap that around.

The change to `Crate` isn't necessary, it just simplifies the code and makes it uniform with `CrateLibrustc`.

3 years agoUpdate cargo
Eric Huss [Tue, 7 Jul 2020 22:33:21 +0000 (15:33 -0700)]
Update cargo

3 years agoFix librustc_errors unit tests.
Eric Huss [Wed, 8 Jul 2020 17:44:29 +0000 (10:44 -0700)]
Fix librustc_errors unit tests.

3 years agoAvoid running test on Windows platforms
Seth Pellegrino [Wed, 8 Jul 2020 16:48:15 +0000 (09:48 -0700)]
Avoid running test on Windows platforms

There don't seem to be any other compiletests that are 1) building a standalone "no_core" create and then 2) trying to link against it. There seems to be a platform-specific limitation in doing so:

```
2020-07-08T16:07:42.9419409Z   = note:    Creating library D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll.lib and object D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll.exp
2020-07-08T16:07:42.9419810Z           LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12
2020-07-08T16:07:42.9420032Z           D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll : fatal error LNK1120: 1 unresolved externals
```

Possibly this could be resolved by adding a `__DllMainCRTStartup` or `__DllMainCRTStartup@12` symbol in an architecture- and platform-specific way.

3 years agoAvoid "blacklist"
Tamir Duberstein [Wed, 8 Jul 2020 13:36:52 +0000 (09:36 -0400)]
Avoid "blacklist"

Other terms are more inclusive and precise.

Clippy still has a lint named "blacklisted-name", but renaming it would
be a breaking change, so is left for future work.

The target configuration option "abi-blacklist" has been depreciated and
renamed to "unsupported-abis". The old name continues to work.

3 years agoFix x.py test for librustc crates.
Eric Huss [Wed, 8 Jul 2020 15:52:48 +0000 (08:52 -0700)]
Fix x.py test for librustc crates.

3 years agoApply #![crate_type = "rlib"] directly to the linker
Seth Pellegrino [Wed, 8 Jul 2020 15:20:43 +0000 (08:20 -0700)]
Apply #![crate_type = "rlib"] directly to the linker

3 years agoFix cross-compilation of LLVM to aarch64 Windows targets
Arlo Siemsen [Thu, 2 Jul 2020 17:45:10 +0000 (10:45 -0700)]
Fix cross-compilation of LLVM to aarch64 Windows targets

When cross-compiling, the LLVM build system recurses to build tools
that need to run on the host system. However, since we pass cmake defines
to set the compiler and target, LLVM still compiles these tools for the
target system, rather than the host. The tools then fail to execute
during the LLVM build.

This change sets defines for the tools that need to run on the
host (llvm-nm, llvm-tablegen, and llvm-config), so that the LLVM build
does not attempt to build them, and instead relies on the tools already built.

If compiling with clang-cl, this change also adds the `--target` option
to specify the target triple. MSVC compilers do not require this, since there
is a separate compiler binary for cross-compilation.

3 years agoCorrectly mark the ending span of a match arm
Ayaz Hafiz [Tue, 7 Jul 2020 14:50:49 +0000 (07:50 -0700)]
Correctly mark the ending span of a match arm

Closes #74050

r? @matthewjasper

3 years agoAuto merge of #74124 - ehuss:fix-doc-dry-run-up-to-date, r=Mark-Simulacrum
bors [Wed, 8 Jul 2020 09:47:41 +0000 (09:47 +0000)]
Auto merge of #74124 - ehuss:fix-doc-dry-run-up-to-date, r=Mark-Simulacrum

Fix occasional bootstrap panic in docs.

I am occasionally running into this panic when running `x.py`:

> thread 'main' panicked at 'source "/Users/eric/Proj/rust/rust/build/x86_64-apple-darwin/md-doc/unstable-book" failed to get metadata: No such file or directory (os error 2)', src/build_helper/lib.rs:173:19

I have not been able to figure out the exact sequence of commands that leads to this error (I tried for quite a while to reproduce it). I think it may involve updating my tree, but I am uncertain.  An artificial way to trigger it is to build the documentation, and then delete the `md-doc` directory manually.

The cause is that bootstrap does a "dry run" before every command, and in this case `up_to_date` panics because the destination exists (`build/x86_64-apple-darwin/doc/unstable-book/index.html `) but the source does not (`build/x86_64-apple-darwin/md-doc/unstable-book`).

I am uncertain if it is important that the last line `builder.run(…)` needs to be called during the dry run. This patch seems to fix the issue, though.

3 years agoRemove unneeded ToString import in liballoc slice
Ivan Tham [Wed, 8 Jul 2020 04:47:19 +0000 (12:47 +0800)]
Remove unneeded ToString import in liballoc slice

3 years agoLiballoc use vec instead of vector
Ivan Tham [Wed, 8 Jul 2020 04:44:43 +0000 (12:44 +0800)]
Liballoc use vec instead of vector

Keep congruency with other parts, full word vector is rarely used.

3 years agoMake WASI's FileExt's read_at/write_at consistent with other targets.
Dan Gohman [Tue, 7 Jul 2020 22:56:07 +0000 (15:56 -0700)]
Make WASI's FileExt's read_at/write_at consistent with other targets.

Rename the existing read_at/write_at to read_vectored_at/write_vectored_at,
for consistency with libstd's read_vectored/write_vectored. And,
introduce new read_at/write_at functions which take a single buffer,
similar to all other targets which provide these functions, so this will
make it easier for applications to share code between WASI and other
targets.

Note that WASI's FileExt is currently unstable.

3 years agoAdd `read_exact_at` and `write_all_at` to WASI's `FileExt`
Dan Gohman [Fri, 3 Jul 2020 23:20:37 +0000 (16:20 -0700)]
Add `read_exact_at` and `write_all_at` to WASI's `FileExt`

This adds `read_exact_at` and `write_all_at` to WASI's `FileExt`,
similar to the Unix versions of the same names.

3 years agoFix broken link in rustdocdoc
Yuki Okushi [Tue, 7 Jul 2020 22:15:17 +0000 (07:15 +0900)]
Fix broken link in rustdocdoc

3 years agoUpdate rust-installer to latest version
Michael Forney [Mon, 25 May 2020 00:08:45 +0000 (17:08 -0700)]
Update rust-installer to latest version

This pulls in a fix for the install script on some tr(1) implementations,
as well as an update to use `anyhow` instead of `failure` for error
handling.

3 years agoRevert "Add guard to check for local `core` crate"
Seth Pellegrino [Tue, 7 Jul 2020 21:15:31 +0000 (14:15 -0700)]
Revert "Add guard to check for local `core` crate"

This reverts commit ee3a0f867e938f469cbbb422a76ed5662be2ecc7.

3 years agoUpdate books
Eric Huss [Tue, 7 Jul 2020 20:53:46 +0000 (13:53 -0700)]
Update books

3 years agoAuto merge of #74006 - euclio:sys-unix-static-mut, r=oli-obk
bors [Tue, 7 Jul 2020 19:35:26 +0000 (19:35 +0000)]
Auto merge of #74006 - euclio:sys-unix-static-mut, r=oli-obk

libstd: remove some mutable statics in sys::unix

My understanding is that this achieves the same behavior and performance with safe code.

4 years agoignore-tidy-linelength for @has assertions
Seth Pellegrino [Tue, 7 Jul 2020 17:39:10 +0000 (10:39 -0700)]
ignore-tidy-linelength for @has assertions