Commit Graph

104311 Commits

Author SHA1 Message Date
Mark Mansi
17aa0cb2ca Remove a const-if-hack in RawVec 2019-12-18 20:19:05 -06:00
bors
c605199e89 Auto merge of #67402 - Mark-Simulacrum:stage0-step, r=alexcrichton
Switch bootstrap to 1.41

This updates the version number for master to 1.42 and switches the bootstrap compiler to yesterday's beta. Fallout of cfg(bootstrap) changes is also dealt with.
2019-12-18 22:03:29 +00:00
Mateusz Mikuła
44603a5cd6 Reenable static linking of libstdc++ on windows-gnu 2019-12-18 22:48:24 +01:00
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
Ohad Ravid
a4a2fc0af3 Suggest associated type when the specified one cannot be found 2019-12-18 21:07:32 +01:00
Mark Mansi
4c7f5af42a Separate region inference logic from error handling better 2019-12-18 13:12:58 -06:00
Mark Rousskov
241d2e765d Fix compiletest fallout from stage0 bump 2019-12-18 13:28:14 -05:00
Mark Rousskov
82184440ec Propagate cfg bootstrap 2019-12-18 12:16:19 -05:00
Mark Rousskov
6a400ee149 Bump stage0 2019-12-18 11:51:31 -05: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
csmoe
ff4f6a1258 record previous unresolve span for generator error reporting 2019-12-18 18:31:35 +08:00
csmoe
c1241bf7a7 add debuginfo in generator_interior 2019-12-18 18:30:22 +08:00
Markus Reiter
58910255aa Remove SO_NOSIGPIPE dummy variable on platforms that don't use it. 2019-12-18 08:46:00 +01:00
Andre Bogus
c6321a4df8 Add benchmarks for string::insert(_str) 2019-12-18 07:18:05 +01:00
Nicholas Nethercote
71278cbdcb Remove some unnecessary ATTR_* constants. 2019-12-18 11:11:15 +11:00
Matthew Healy
e77a55b5d9 Remove outdated references to @T from comments 2019-12-17 23:41:55 +01: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
Jeremy Fitzhardinge
ce56e75283 Move command-related tests into command/ 2019-12-16 14:44:16 -08:00
Jeremy Fitzhardinge
232022ff17 Fix up Command Debug output when arg0 is specified.
PR https://github.com/rust-lang/rust/pull/66512 added the ability to set argv[0] on
Command. As a side effect, it changed the Debug output to print both the program and
argv[0], which in practice results in stuttery output ("echo echo foo").

This PR reverts the behaviour to the the old one, so that the command is only printed
once - unless arg0 has been set. In that case it emits "[command] arg0 arg1 ...".
2019-12-16 14:44:16 -08:00
Alex Crichton
aa0ef5a01f Fix handling of wasm import modules and names
The WebAssembly targets of rustc have weird issues around name mangling
and import the same name from different modules. This all largely stems
from the fact that we're using literal symbol names in LLVM IR to
represent what a function is called when it's imported, and we're not
using the wasm-specific `wasm-import-name` attribute. This in turn leads
to two issues:

* If, in the same codegen unit, the same FFI symbol is referenced twice
  then rustc, when translating to LLVM IR, will only reference one
  symbol from the first wasm module referenced.

* There's also a bug in LLD [1] where even if two codegen units
  reference different modules, having the same symbol names means that
  LLD coalesces the symbols and only refers to one wasm module.

Put another way, all our imported wasm symbols from the environment are
keyed off their LLVM IR symbol name, which has lots of collisions today.
This commit fixes the issue by implementing two changes:

1. All wasm symbols with `#[link(wasm_import_module = "...")]` are
   mangled by default in LLVM IR. This means they're all given unique names.

2. Symbols then use the `wasm-import-name` attribute to ensure that the
   WebAssembly file uses the correct import name.

When put together this should ensure we don't trip over the LLD bug [1]
and we also codegen IR correctly always referencing the right symbols
with the right import module/name pairs.

Closes #50021
Closes #56309
Closes #63562

[1]: https://bugs.llvm.org/show_bug.cgi?id=44316
2019-12-16 14:43:46 -08: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
Tommaso Bianchi
b08d697236 Formatting fixes 2019-12-16 11:28:28 -05:00
Tommaso Bianchi
042d8553a1 Fix too restrictive checks on Drop impls 2019-12-16 11:27:28 -05: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