Commit graph

124634 commits

Author SHA1 Message Date
bors
98922795f6 Auto merge of #75121 - tmiasko:str-slicing, r=Mark-Simulacrum
Avoid `unwrap_or_else` in str indexing

This provides a small reduction of generated LLVM IR, and leads to a
simpler assembly code.

Closes #68874.
2020-08-07 04:51:04 +00:00
bors
63e34422bb Auto merge of #75233 - RalfJung:miri, r=RalfJung
update Miri

Fixes https://github.com/rust-lang/rust/issues/74999
Cc @rust-lang/miri r? @ghost
2020-08-07 03:04:38 +00:00
bors
6396dbbd62 Auto merge of #75238 - JohnTitor:rollup-llbk0sq, r=JohnTitor
Rollup of 12 pull requests

Successful merges:

 - #74888 (compiletest: ignore-endian-big, fixes #74829, fixes #74885)
 - #75175 (Make doctests of Ipv4Addr::from(u32) easier to read)
 - #75179 (Remove unused FromInner impl for Ipv4Addr)
 - #75181 (Fix typo in  `librustc_feature/active.rs`)
 - #75183 (Label rustfmt toolstate issues with A-rustfmt)
 - #75188 (Handle fieldless tuple structs in diagnostic code)
 - #75190 (Clean up E0746 explanation)
 - #75210 (Change the type of `AssertModuleSource::available_cgus`.)
 - #75211 (Note about endianness of returned value of {integer}::from_be_bytes and friends)
 - #75217 (Clean up E0747 explanation)
 - #75232 (Fix typo "TraitObligatiom" -> "TraitObligation")
 - #75236 (Fix typo "biset" -> "bitset")

Failed merges:

r? @ghost
2020-08-07 01:16:47 +00:00
Yuki Okushi
3c131d6738
Rollup merge of #75236 - syntacticsugarglider:patch-1, r=jonas-schievink
Fix typo "biset" -> "bitset"
2020-08-07 09:35:31 +09:00
Yuki Okushi
6f2fa1ef51
Rollup merge of #75232 - leijurv:patch-1, r=jonas-schievink
Fix typo "TraitObligatiom" -> "TraitObligation"
2020-08-07 09:35:29 +09:00
Yuki Okushi
76086a2d76
Rollup merge of #75217 - GuillaumeGomez:cleanup-e0747, r=Dylan-DPC
Clean up E0747 explanation

r? @Dylan-DPC
2020-08-07 09:35:28 +09:00
Yuki Okushi
26705d5bcb
Rollup merge of #75211 - lzutao:native-endian-notes, r=lcnr
Note about endianness of returned value of {integer}::from_be_bytes and friends

[`u32::from_be`](https://doc.rust-lang.org/nightly/src/core/num/mod.rs.html#2883-2892) documents about endianness of returned value.

I was confused by endianness of `from_be_bytes` in #75086 .
2020-08-07 09:35:26 +09:00
Yuki Okushi
19d4e1dcac
Rollup merge of #75210 - nnethercote:change-type-of-available_cgus, r=ecstatic-morse
Change the type of `AssertModuleSource::available_cgus`.

It's currently a `BTreeSet<Symbol>`, which is a strange type. The
`BTreeSet` suggests that element order is important, but `Symbol` is a
type whose ordering isn't useful to humans. The ordering of the
collection only manifests in an obscure error message ("no module named
`...`") that doesn't appear in any tests.

This commit changes the `Symbol` to a `String`, which is more
typical.
2020-08-07 09:35:24 +09:00
Yuki Okushi
f49e47348d
Rollup merge of #75190 - GuillaumeGomez:cleanup-e0746, r=Dylan-DPC
Clean up E0746 explanation

r? @Dylan-DPC
2020-08-07 09:35:23 +09:00
Yuki Okushi
665138c977
Rollup merge of #75188 - Aaron1011:fix/fieldless-tuple-error, r=varkor
Handle fieldless tuple structs in diagnostic code

Fixes #75062
2020-08-07 09:35:21 +09:00
Yuki Okushi
5542fba2d3
Rollup merge of #75183 - Aaron1011:toolstate/a-rustfmt, r=nikomatsakis
Label rustfmt toolstate issues with A-rustfmt

This makes it easier to filter toolstate issues by the tool involved.
2020-08-07 09:35:19 +09:00
Yuki Okushi
d36087bdac
Rollup merge of #75181 - WaffleLapkin:patch-2, r=ecstaticmorse
Fix typo in  `librustc_feature/active.rs`
2020-08-07 09:35:18 +09:00
Yuki Okushi
1b61fd3ccf
Rollup merge of #75179 - lzutao:unsed-ipv4-frominner, r=alexcrichton
Remove unused FromInner impl for Ipv4Addr

The removed is a unused unstable implementation.
2020-08-07 09:35:16 +09:00
Yuki Okushi
c9c7048038
Rollup merge of #75175 - lzutao:doctest-ipv4-fromu32, r=cuviper
Make doctests of Ipv4Addr::from(u32) easier to read

There are many zeroes in `0x0d0c0b0au32` which makes it hard to read.
2020-08-07 09:35:14 +09:00
Yuki Okushi
9d5bd597ac
Rollup merge of #74888 - infinity0:ignore-endian-big, r=nikomatsakis
compiletest: ignore-endian-big, fixes #74829, fixes #74885

See discussion on #74829

I tested it on a Debian s390x machine, works well.
2020-08-07 09:35:13 +09:00
Izzy Swart
b809f453ca
Fix typo "biset" -> "bitset" 2020-08-06 16:13:29 -07:00
Ralf Jung
854d8e8ceb update Miri 2020-08-06 23:55:30 +02:00
Leijurv
6eeae7d420
Fix typo "TraitObligatiom" -> "TraitObligation" 2020-08-06 14:37:32 -07:00
Nicholas Nethercote
ebbf07a154 Change the type of AssertModuleSource::available_cgus.
It's currently a `BTreeSet<Symbol>`, which is a strange type. The
`BTreeSet` suggests that element order is important, but `Symbol` is a
type whose ordering isn't useful to humans. The ordering of the
collection only manifests in an obscure error message ("no module named
`...`") that doesn't appear in any tests.

This commit changes the `Symbol` to a `String`, which is more
typical.
2020-08-07 06:58:14 +10:00
bors
71f8d0c8f1 Auto merge of #75228 - tmiasko:keep-stdout-open, r=ecstatic-morse
Keep stdout open in limit_vector_count test
2020-08-06 20:22:20 +00:00
bors
0d75c91def Auto merge of #75218 - Aaron1011:feature/prof-metadata-query, r=Mark-Simulacrum
Record query name when profiling "metadata_decode_entry"
2020-08-06 18:26:50 +00:00
bors
c15bae53b5 Auto merge of #75086 - lzutao:u32const, r=oli-obk
Use u32::from_ne_bytes to fix a FIXME and add comment about that

`u32::from_ne_bytes` has been const stable since 1.44.
2020-08-06 14:21:48 +00:00
Aaron Hill
c9bd9431d0
Record query name when profiling "metadata_decode_entry" 2020-08-06 09:33:34 -04:00
bors
4b0882cfaa Auto merge of #74889 - JohnTitor:hrtb-tests, r=nikomatsakis
Add HRTB-related regression test

Closes #59311 and cc #71546
This closes the former but the test is taken from https://github.com/rust-lang/rust/issues/71546#issuecomment-620638437 since it seems they have the same cause and it's simplified.
2020-08-06 12:12:59 +00:00
Guillaume Gomez
57b517bf1d Clean up E0747 explanation 2020-08-06 13:33:54 +02:00
Lzu Tao
eff7d568d8 Note about endianness of returned value
in {integer}::from_be_bytes and friends.
2020-08-06 07:33:07 +00:00
bors
3cfc7fe78e Auto merge of #75008 - eddyb:rmeta-indexed-trait-impls, r=nikomatsakis
rustc_metadata: track the simplified Self type for every trait impl.

For the `traits_impls_of` query, we index the impls by `fast_reject::SimplifiedType` (a "shallow type"), which allows some simple cases like `impl Trait<..> for Foo<..>` to be efficiently iterated over, by e.g. `for_each_relevant_impl`.

This PR encodes the `fast_reject::SimplifiedType` cross-crate to avoid needing to deserialize the `Self` type of every `impl` in order to simplify it - the simplification itself should be cheap, but the deserialization is less so.

We could go further from here and make loading the list of impls lazy, for a given simplified `Self` type, but that would have more complicated implications for performance, and this PR doesn't do anything in that regard.

r? @nikomatsakis cc @Mark-Simulacrum
2020-08-06 03:23:57 +00:00
Tomasz Miąsko
888bc07c6b Keep stdout open in limit_vector_count test 2020-08-06 00:00:00 +00:00
Yuki Okushi
cc36c3d140
Add a FIXME comment 2020-08-06 05:21:03 +09:00
bors
22ee68dc58 Auto merge of #75166 - JulianKnodt:i64494, r=lcnr
Add regression test for #64494

Add regression test to indicate if this compilation ever succeeds.
Fixes #64494

r? @lcnr
2020-08-05 20:20:56 +00:00
bors
52b179b4b5 Auto merge of #75005 - adamreichold:limit-vector-count, r=Amanieu
Limit I/O vector count on Unix

Unix systems enforce limits on the vector count when performing vectored I/O via the readv and writev system calls and return EINVAL when these limits are exceeded. This changes the standard library to handle those limits as short reads and writes to avoid forcing its users to query these limits using platform specific mechanisms.

Fixes #68042
2020-08-05 17:58:55 +00:00
bors
db870ea71b Auto merge of #75194 - Aaron1011:feature/macro-backtrace-numbers, r=eddyb
Show backtrace numbers in backtrace whenever more than one is involved

Previously, we only displayed 'frame' numbers in a macro backtrace when more
than two frames were involved. This commit should help make backtrace
more readable, since these kinds of messages can quickly get confusing.
2020-08-05 16:08:53 +00:00
Adam Reichold
9073acdc98 Add fallback for cfg(unix) targets that do not define libc::_SC_IOV_MAX. 2020-08-05 17:15:08 +02:00
Aaron Hill
f9f8923393
Show backtrace numbers in backtrace whenever more than one is involved
Previously, we only displayed 'frame' numbers in a macro backtrace when more
than two frames were involved. This commit should help make backtrace
more readable, since these kinds of messages can quickly get confusing.
2020-08-05 11:05:12 -04:00
Adam Reichold
04a0114e7e Rely only on POSIX semantics for I/O vector count
All #[cfg(unix)] platforms follow the POSIX standard and define _SC_IOV_MAX so
that we rely purely on POSIX semantics to determine the limits on I/O vector
count.
2020-08-05 16:57:02 +02:00
Adam Reichold
87edccf0f0 Reduce synchronization overhead of I/O vector count memoization 2020-08-05 16:57:02 +02:00
Adam Reichold
6672f7be03 Memoize the I/O vector count limit
Keep the I/O vector count limit in a `SyncOnceCell` to avoid the overhead of
repeatedly calling `sysconf` as these limits are guaranteed to not change during
the lifetime of a process by POSIX.
2020-08-05 16:57:02 +02:00
Adam Reichold
9468752581 Query maximum vector count on Linux and macOS
Both Linux and MacOS enforce limits on the vector count when performing vectored
I/O via the readv and writev system calls and return EINVAL when these limits
are exceeded. This changes the standard library to handle those limits as short
reads and writes to avoid forcing its users to query these limits using
platform specific mechanisms.
2020-08-05 16:57:02 +02:00
bors
ec9d5241f7 Auto merge of #75165 - JulianKnodt:i72787, r=lcnr
Add regression test for #72787

Add regression test for Issue #72787
Fixes #72787

~~Still waiting on running tests locally to bless the error output~~

r? @lcnr
2020-08-05 14:00:00 +00:00
Guillaume Gomez
cd4633917d Clean up E0746 explanation 2020-08-05 14:14:21 +02:00
Aaron Hill
48bc398207
Handle fieldless tuple structs in diagnostic code
Fixes #75062
2020-08-05 07:59:26 -04:00
bors
8b84156c6e Auto merge of #75169 - ehuss:update-cargo, r=ehuss
Update cargo

8 commits in 2d5c2381e4e50484bf281fc1bfe19743aa9eb37a..1653f354644834073d6d2541e27fae94588e685e
2020-07-31 21:56:08 +0000 to 2020-08-04 23:14:37 +0000
- Fix close_output test. (rust-lang/cargo#8587)
- clippy fixes, use matches! macro in more places (rust-lang/cargo#8575)
- Display embedded man pages for built-in commands. (rust-lang/cargo#8456)
- Add mdman for generating man pages. (rust-lang/cargo#8577)
- Fix typo 'more then' -&gt; 'more than' in error and comments (rust-lang/cargo#8581)
- cargo login: make login message less ambiguous (rust-lang/cargo#8579)
- Fix broken link in Build Cache chapter. (rust-lang/cargo#8578)
- Fix intra-doc tests for renamed lint. (rust-lang/cargo#8576)
2020-08-05 11:17:36 +00:00
bors
1d69e3b1d7 Auto merge of #75124 - nnethercote:clean-up-rustdoc-main, r=oli-obk
Clean up rustdoc's `main()`

It can be simplified and made more similar to rustc's `main()`.

r? @oli-obk
2020-08-05 09:09:17 +00:00
Aaron Hill
0d8260ee48
Label rustfmt toolstate issues with A-rustfmt
This makes it easier to filter toolstate issues by the tool involved.
2020-08-05 05:03:08 -04:00
Waffle Lapkin
188ef3a200
Fix typo in librustc_feature/active.rs 2020-08-05 11:02:47 +03:00
bors
7f8ff84b51 Auto merge of #75155 - davidtwco:polymorphization-incr-comp-optimisations, r=lcnr
polymorphization: various improvements

This PR includes a handful of polymorphisation-related changes:

- @Mark-Simulacrum's suggestions [from this comment](https://github.com/rust-lang/rust/pull/74633#issuecomment-668684433):
    - Use a `FiniteBitSet<u32>` over a `FiniteBitSet<u64>` as most functions won't have 64 generic parameters.
    - Don't encode polymorphisation results in metadata when every parameter is used (in this case, just invoking polymorphisation will probably be quicker).
- @lcnr's suggestion [from this comment](https://github.com/rust-lang/rust/pull/74717#discussion_r463690015).
    - Add an debug assertion in `ensure_monomorphic_enough` to make sure that polymorphisation did what we expect.

r? @lcnr
2020-08-05 06:55:42 +00:00
Lzu Tao
d9f260e95e Remove unused FromInner impl for Ipv4Addr 2020-08-05 05:53:07 +00:00
Lzu Tao
725d37cae0 Make doctests of Ipv4Addr::from(u32) easier to read 2020-08-05 05:31:17 +00:00
bors
dab2ae0404 Auto merge of #75037 - richkadel:llvm-coverage-map-gen-5.2, r=wesleywiser
Completes support for coverage in external crates

Follow-up to #74959 :

The prior PR corrected for errors encountered when trying to generate
the coverage map on source code inlined from external crates (including
macros and generics) by avoiding adding external DefIds to the coverage
map.

This made it possible to generate a coverage report including external
crates, but the external crate coverage was incomplete (did not include
coverage for the DefIds that were eliminated.

The root issue was that the coverage map was converting Span locations
to source file and locations, using the SourceMap for the current crate,
and this would not work for spans from external crates (compliled with a
different SourceMap).

The solution was to convert the Spans to filename and location during
MIR generation instead, so precompiled external crates would already
have the correct source code locations embedded in their MIR, when
imported into another crate.

@wesleywiser FYI
r? @tmandry
2020-08-05 05:08:19 +00:00
bors
119d2a1a98 Auto merge of #75174 - JohnTitor:rollup-z9djftk, r=JohnTitor
Rollup of 5 pull requests

Successful merges:

 - #75139 (Remove log alias from librustdoc)
 - #75140 (Clean up E0745)
 - #75149 (Correct a typo in interpret/memory.rs)
 - #75152 (Replace `Memoryblock` with `NonNull<[u8]>`)
 - #75168 (Update books)

Failed merges:

r? @ghost
2020-08-05 03:04:21 +00:00