Commit Graph

103988 Commits

Author SHA1 Message Date
Matthew Jasper
7b0cc6a439 Check const-propagation of borrows of unsized places 2019-12-18 20:09:11 +00:00
Matthew Jasper
7081c79b7e Add mir opt test for AddressOf 2019-12-18 20:09:11 +00:00
Matthew Jasper
5fb797ca75 Make slice drop shims use AddressOf 2019-12-18 20:09:10 +00:00
Matthew Jasper
35919ace70 Start generating AddressOf rvalues in MIR
`hir::BorrowKind::Raw` borrows and casting a reference to a raw
pointer no longer do a reborrow followed by a cast. Instead we
dereference and take the address.
2019-12-18 20:09:10 +00:00
Matthew Jasper
3a19fbf95d Add Rvalue::AddressOf to MIR
This operator creates a raw pointer to a Place directly, without first
creating a reference. See RFC #2582 for motivation.

The Rvalue is currently unused.
2019-12-18 20:09:10 +00:00
bors
19bd934676 Auto merge of #67379 - Mark-Simulacrum:revert-par-4-default, r=Mark-Simulacrum
Revert enabling parallelism by default

We will re-land a similar patch at a future date but for now we should get a nightly
released in a few hours with the parallel patch, so this should be
reverted to make sure that the next nightly is not parallel-enabled.

r? @ghost
2019-12-18 11:04:07 +00:00
Mark Rousskov
7f00a5f26a Revert "Auto merge of #67362 - Mark-Simulacrum:par-4-default, r=alexcrichton"
This reverts commit 3ed3b8bb7b, reversing
changes made to 99b89533d4.

We will reland a similar patch at a future date but for now we should get a nightly
released in a few hours with the parallel patch, so this should be
reverted to make sure that the next nightly is not parallel-enabled.
2019-12-17 16:28:33 -05:00
bors
3ed3b8bb7b Auto merge of #67362 - Mark-Simulacrum:par-4-default, r=alexcrichton
4 thread parallelism by default

The Session default here is super unusual but seems to both compile and do what we expect as best as I can tell.
2019-12-17 17:56:13 +00:00
Mark Rousskov
5d4e59bc91 Disable cargo tests for now
These depend on rustc being bug-free and it looks like that's not
currently entirely the case (e.g., we know of at least one bug that
introduces nondeterminism).
2019-12-17 12:55:45 -05:00
Mark Rousskov
c0dbd9978f Move AtomicU64 usage to AtomicUsize 2019-12-17 09:45:04 -05:00
Mark Rousskov
47bb7606f3 Always build and ship parallel-enabled compilers
This also removes the unused NO_PARALLEL_COMPILER flag; if we want that
functionality we can readd it but this makes sure we really are parallel
everywhere.

This also patches a test that has differing output in the parallel case
(hopefully deterministically so!).
2019-12-16 19:47:11 -05:00
Mark Rousskov
f6281e8586 Change the default thread count to min(4, vCPUs)
This avoids the problems of high thread counts (i.e., contention in the
kernel on the jobserver pipe due to thundering herd of readers) while
stil giving rustc some parallelism to work with.
2019-12-16 18:31:56 -05:00
bors
99b89533d4 Auto merge of #67356 - Centril:rollup-paaw3ju, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #67249 (Improve code generated for `starts_with(<literal char>)`)
 - #67308 (Delete flaky test net::tcp::tests::fast_rebind)
 - #67318 (Improve typeck & lowering docs for slice patterns)
 - #67322 (use Self alias in place of macros)
 - #67323 (make transparent enums more ordinary)
 - #67336 (Fix JS error when loading page with search)
 - #67344 (.gitignore: Don't ignore a file that exists in the repository)
 - #67349 (Minor: update Unsize docs for dyn syntax)

Failed merges:

r? @ghost
2019-12-16 18:55:07 +00:00
Mazdak Farrokhzad
733559b0c2
Rollup merge of #67349 - petertodd:2019-unsize-docs, r=Centril
Minor: update Unsize docs for dyn syntax
2019-12-16 17:33:16 +01:00
Mazdak Farrokhzad
a17535c095
Rollup merge of #67344 - joshtriplett:no-gitignore-of-committed-files, r=Dylan-DPC
.gitignore: Don't ignore a file that exists in the repository

.gitignore should not ignore files that exist in the repository. The
ignore of .cargo applies to the committed .cargo directory used in an
example:

$ git ls-files --exclude-standard --ignored
src/test/run-make/thumb-none-qemu/example/.cargo/config

Explicitly un-ignore that file.
2019-12-16 17:33:15 +01:00
Mazdak Farrokhzad
55753a62cc
Rollup merge of #67336 - GuillaumeGomez:fix-js-error, r=Dylan-DPC
Fix JS error when loading page with search

For example when you load this page: https://doc.rust-lang.org/nightly/std/num/struct.NonZeroI8.html?search=foo, you get a nice JS error:

```
TypeError: ev is undefined
```

r? @kinnison
2019-12-16 17:33:13 +01:00
Mazdak Farrokhzad
a1e8a0a84a
Rollup merge of #67323 - Centril:tes, r=davidtwco
make transparent enums more ordinary

By recognizing that structs & unions have one variant, we can make the treatment of transparent enums less ad-hoc.

cc https://github.com/rust-lang/rust/issues/60405

r? @davidtwco
2019-12-16 17:33:12 +01:00
Mazdak Farrokhzad
5609683fab
Rollup merge of #67322 - lzutao:nonzero-use-self, r=joshtriplett
use Self alias in place of macros
2019-12-16 17:33:10 +01:00
Mazdak Farrokhzad
f05646ec19
Rollup merge of #67318 - Centril:spdocs, r=matthewjasper
Improve typeck & lowering docs for slice patterns

cc #62254

r? @matthewjasper
2019-12-16 17:33:09 +01:00
Mazdak Farrokhzad
a1580e72da
Rollup merge of #67308 - dtolnay:fast_rebind, r=alexcrichton
Delete flaky test net::tcp::tests::fast_rebind

This test is unreliable for at least 3 users on two platforms: see #57509 and #51006. It was added 5 years ago in #22015. Do we know whether this is testing something important that would indicate a bug in our implementation, or if it's fine to remove?

r? @sfackler @alexcrichton because this somewhat resembles #59018

Closes #57509. Closes #51006.
2019-12-16 17:33:07 +01:00
Mazdak Farrokhzad
a6f817f429
Rollup merge of #67249 - ranma42:improve-starts-with-literal-char, r=BurntSushi
Improve code generated for `starts_with(<literal char>)`

This PR includes two minor improvements to the code generated when checking for string prefix/suffix.

The first commit simplifies the str/str operation, by taking advantage of the raw UTF-8 representation.

The second commit replaces the current str/char matching logic with a char->str encoding and then the previous method.

The resulting code should be equivalent in the generic case (one char is being encoded versus one char being decoded), but it becomes easy to optimize in the case of a literal char, which in most cases a developer might expect to be at least as simple as that of a literal string.

This PR should fix #41993
2019-12-16 17:33:01 +01:00
Andrea Canciani
3de1923d5d Add benchmarks for start_with and ends_with 2019-12-16 15:33:16 +01:00
Peter Todd
d16b088d09
Minor: update Unsize docs for dyn syntax 2019-12-16 07:22:40 -05:00
bors
f0d4b57193 Auto merge of #67342 - Centril:rollup-fl44n41, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #65778 (Stabilize `std::{rc,sync}::Weak::{weak_count, strong_count}`)
 - #66570 (stabilize Result::map_or)
 - #66735 (Add str::strip_prefix and str::strip_suffix)
 - #66771 (Stabilize the `core::panic` module)
 - #67317 (fix type_name_of_val doc comment)
 - #67324 (Fix repetition in matches/mod.rs)
 - #67325 (cleanup with push_fake_read)

Failed merges:

r? @ghost
2019-12-16 12:10:59 +00:00
Josh Triplett
00e7ff44ca .gitignore: Don't ignore a file that exists in the repository
.gitignore should not ignore files that exist in the repository. The
ignore of .cargo applies to the committed .cargo directory used in an
example:

$ git ls-files --exclude-standard --ignored
src/test/run-make/thumb-none-qemu/example/.cargo/config

Explicitly un-ignore that file.
2019-12-15 23:17:06 -08:00
Mazdak Farrokhzad
d9d1f2376f improve lower_pat_slice docs + while -> for 2019-12-16 06:55:01 +01:00
Mazdak Farrokhzad
71a9a993fb
Rollup merge of #67325 - Centril:push-fake-read, r=matthewjasper
cleanup with push_fake_read

...and make things a bit more readable.

r? @matthewjasper
2019-12-16 05:23:39 +01:00
Mazdak Farrokhzad
9f0cb17b21
Rollup merge of #67324 - Centril:mir-build-match-doc-fix, r=matthewjasper
Fix repetition in matches/mod.rs

r? @matthewjasper
2019-12-16 05:23:38 +01:00
Mazdak Farrokhzad
d18239755a
Rollup merge of #67317 - lcnr:type_name_docs, r=jonas-schievink
fix type_name_of_val doc comment

.
2019-12-16 05:23:36 +01:00
Mazdak Farrokhzad
6b9bb745fa
Rollup merge of #66771 - SimonSapin:panic-stability, r=KodrAus
Stabilize the `core::panic` module

`std::panic` is already stable.

`core::panic::PanicInfo` and `core::panic::Location` are stable and can be used through that path because of a bug in stability checking: #15702
2019-12-16 05:23:35 +01:00
Mazdak Farrokhzad
1c12dc8cdf
Rollup merge of #66735 - SOF3:feature/str_strip, r=KodrAus
Add str::strip_prefix and str::strip_suffix

Introduces a counterpart for `Path::strip_prefix` on `str`.

This was also discussed in https://internals.rust-lang.org/t/pre-pr-path-strip-prefix-counterpart-in-str/11364/.
2019-12-16 05:23:33 +01:00
Mazdak Farrokhzad
84ef88975b
Rollup merge of #66570 - lzutao:stabilize-result-map_or, r=Dylan-DPC
stabilize Result::map_or

r? @SimonSapin
Closes #66293
2019-12-16 05:23:30 +01:00
Mazdak Farrokhzad
c34ea91a9d
Rollup merge of #65778 - bdonlan:stable_weak_count, r=dtolnay
Stabilize `std::{rc,sync}::Weak::{weak_count, strong_count}`

* Original PR: #56696
* Tracking issue: #57977

Closes: #57977

Supporting comments:

> Although these were added for testing, it is occasionally useful to have a way to probe optimistically for whether a weak pointer has become dangling, without actually taking the overhead of manipulating atomics. Are there any plans to stabilize this?

_Originally posted by @bdonlan in https://github.com/rust-lang/rust/issues/57977#issuecomment-516970921_

> Having this stabilized would help. Currently, the only way to check if a weak pointer has become dangling is to call `upgrade`, which is by far expensive.

_Originally posted by @glebpom in https://github.com/rust-lang/rust/issues/57977#issuecomment-526934709_

Not sure if stabilizing these warrants a full RFC, so throwing this out here as a start for now.

Note: per CONTRIBUTING.md, I ran the tidy checks, but they seem to be failing on unchanged files (primarily in `src/stdsimd`).
2019-12-16 05:23:26 +01:00
Guillaume Gomez
5f68732b04 Fix JS error when loading page with search 2019-12-15 21:27:25 +01:00
Mazdak Farrokhzad
2d96f2097f cleanup with push_fake_read 2019-12-15 16:11:01 +01:00
Mazdak Farrokhzad
8a5969d2e9 Fix repetition in matches/mod.rs 2019-12-15 15:40:47 +01:00
Mazdak Farrokhzad
5d73af2d4c make transparent enums more ordinary 2019-12-15 15:11:34 +01:00
Lzu Tao
7bf55f4aa5 use Self alias in place of macros 2019-12-15 13:55:10 +00:00
Mazdak Farrokhzad
66bb978ab6 improve hir::PatKind::Slice docs 2019-12-15 13:16:29 +01:00
Mazdak Farrokhzad
d848ce0ddf document check_pat_slice 2019-12-15 13:16:01 +01:00
Mazdak Farrokhzad
f2d6413eb2 comment -> doc comment 2019-12-15 13:13:52 +01:00
lcnr/Bastian Kauschke
e28153e7a6 fix doc comment 2019-12-15 12:59:02 +01:00
SOFe
6176051dd0
Set tracking issue for str_strip 2019-12-15 17:07:57 +08:00
bors
a605441e04 Auto merge of #67310 - Centril:rollup-22jiyow, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #67255 (Remove i686-unknown-dragonfly target)
 - #67267 (Fix signature of `__wasilibc_find_relpath`)
 - #67282 (Fix example code of OpenOptions::open)
 - #67289 (Do not ICE on unnamed future)
 - #67300 (Restore original implementation of Vec::retain)
 - #67305 (Doc typo)

Failed merges:

r? @ghost
2019-12-15 07:17:06 +00:00
Mazdak Farrokhzad
e5c34411f9
Rollup merge of #67305 - kappa:patch-1, r=jonas-schievink
Doc typo
2019-12-15 05:57:28 +01:00
Mazdak Farrokhzad
64f83915de
Rollup merge of #67300 - aloucks:issue-65970, r=rkruppe
Restore original implementation of Vec::retain

This PR reverts #48065, which aimed to optimize `Vec::retain` by making use of `Vec::drain_filter`. Unfortunately at that time, `drain_filter` was unsound.

The soundness hole in `Vec::drain_filter` was fixed in #61224 by guaranteeing that cleanup logic runs via a nested `Drop`, even in the event of a panic. Implementing this nested drop affects codegen (apparently?) and results in slower code.

Fixes #65970
2019-12-15 05:57:27 +01:00
Mazdak Farrokhzad
8e2689c42e
Rollup merge of #67289 - estebank:unnamed-closure, r=Centril
Do not ICE on unnamed future

Fix #67252.
2019-12-15 05:57:25 +01:00
Mazdak Farrokhzad
541dc62d64
Rollup merge of #67282 - pjw91:patch-1, r=Dylan-DPC
Fix example code of OpenOptions::open

The example didn't set the access mode flag, which resulted in an `Err(InvalidInput)`.

r? @steveklabnik
2019-12-15 05:57:24 +01:00
Mazdak Farrokhzad
39c5d8199a
Rollup merge of #67267 - alexcrichton:update-wasi-libc, r=Dylan-DPC
Fix signature of `__wasilibc_find_relpath`

Looks like this function changed upstream, so it needs to be adjusted
for when used by libstd.
2019-12-15 05:57:22 +01:00
Mazdak Farrokhzad
009585ab29
Rollup merge of #67255 - tuxillo:remove-i686-unknown-dragonfly, r=alexcrichton
Remove i686-unknown-dragonfly target

DragonFly BSD removed support for i386 a while ago. It only supports x86_64 right now.
2019-12-15 05:57:21 +01:00