Commit Graph

103991 Commits

Author SHA1 Message Date
Matthew Jasper a74911662e Fix comment ordering 2019-12-18 20:30:00 +00:00
Matthew Jasper 6dcc78997f Add more tests for raw_ref_op 2019-12-18 20:30:00 +00:00
Matthew Jasper 15931947f5 Update test now that reference to pointer casts have more checks 2019-12-18 20:30:00 +00:00
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