Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 17 pull requests #48104

Closed
wants to merge 37 commits into from
Closed

Rollup of 17 pull requests #48104

wants to merge 37 commits into from

Conversation

tinaun and others added 30 commits January 26, 2018 18:52
unlike the other Parse*Error types, ParseCharError didn't have these implemented for whatever reason
Currently if `--out-dir` is set to a non-existent directory, the
compiler will throw unfriendly messages like `error: could not write
output to subdir/example.crate.allocator.rcgu.o: No such file or
directory`, which, while not completely unreadable, isn’t very
user-friendly either. This change creates the directory automatically
if it does not yet exist.
Commit 7ed00ca improved our error reporting by including the target
function in our error messages when there is an argument count mismatch.
A simple example from the UI tests is:

```
error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments
  --> $DIR/closure-arg-count.rs:32:53
   |
32 |     let _it = vec![1, 2, 3].into_iter().enumerate().map(foo);
   |                                                     ^^^ expected function that takes a single 2-tuple as argument
...
44 | fn foo() {}
   | -------- takes 0 arguments
```

However, this assumed the target span was always available. This does
not hold true if the target function is in `std` or another crate. A
simple example from rust-lang#48046 is assigning `str::split` to a function type
with a different number of arguments.

Fix by removing all of the labels and suggestions related to the target
span when it's not found.

Fixes rust-lang#48046
Unfortunately left out it means that when the `#![feature(proc_macro)]` flag is
in effect it fails to find `rustc_args_required_const` for expansion. This
version, however, is verified to work with stdsimd's requirements!
This commit disallows acquiring a function pointer to functions tagged as
`#[rustc_args_required_const]`. This is intended to be used as future-proofing
for the stdsimd crate to avoid taking a function pointer to any intrinsic which
has a hard requirement that one of the arguments is a constant value.
Right now the ccache setting is only used for LLVM, but this tweaks it to also
be used for build scripts so C++ builds like `librustc_llvm` can be a bit
speedier.
A bug was recently fixed in dlmalloc which meant that released memory to the
system accidentally wasn't getting reused, causing programs to be far slower
than they should be!
Various versions of LLVM do various things with debuginfo but we're most curious
that our own code is working so let's just disable optimizations in this test to
ensure we have as much pristine debuginfo as possible.
Eventually the LLVM version of Emscripten and the main LLVM will diverge, and we
can't cross-compile an older version of LLVM using a newer version of LLVM's
`llvm-config`.
Right now the `--build` option was accidentally omitted, so we're bootstraping
from `x86_64` to `i686`. In addition to being slower (more compiles) that's not
actually bootstrapping!
derive PartialEq and Eq for `ParseCharError`

unlike the other Parse*Error types, ParseCharError didn't have these implemented for whatever reason
…, r=nikomatsakis

Remove unused data structures

Cleanup; as far as I can tell the compiler no longer uses these.
Create a directory for --out-dir if it does not already exist

Currently if `--out-dir` is set to a non-existent directory, the compiler will throw unfriendly messages like `error: could not write output to subdir/example.crate.allocator.rcgu.o: No such file or
directory`, which, while not completely unreadable, isn’t very user-friendly either. This change creates the directory automatically if it does not yet exist.
…lexcrichton

Customizable extended tools

This PR adds `build.tools` option to manage installation of extended rust tools.

By default it doesn't change installation. All tools are built and `rls` and `rustfmt` allowed to fail installation.

If some set of tools chosen only those tools are built and installed without any fails allowed.

It solves some slotting issues with extended build enabled: https://bugs.gentoo.org/show_bug.cgi?id=645498
…-on-target-without-span, r=estebank

Fix ICE for mismatched args on target without span

Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is:

```
error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments
  --> $DIR/closure-arg-count.rs:32:53
   |
32 |     let _it = vec![1, 2, 3].into_iter().enumerate().map(foo);
   |                                                     ^^^ expected function that takes a single 2-tuple as argument
...
44 | fn foo() {}
   | -------- takes 0 arguments
```

However, this assumed the target span was always available. This does not hold true if the target function is in `std` or another crate. A simple example from rust-lang#48046 is assigning `str::split` to a function type with a different number of arguments.

Fix by omitting all of the labels and suggestions related to the target span when it's not found.

Fixes rust-lang#48046

r? @estebank
…uietMisdreavus

rustdoc: Hide `-> ()` in cross crate inlined Fn* bounds
…lacrum

rustbuild: Pass `ccache` to build scripts

Right now the ccache setting is only used for LLVM, but this tweaks it to also
be used for build scripts so C++ builds like `librustc_llvm` can be a bit
speedier.
…Misdreavus

intra-doc-links: bail early for linky things

r? @QuietMisdreavus
…-proc-macro, r=eddyb

Disallow function pointers to #[rustc_args_required_const]

This commit disallows acquiring a function pointer to functions tagged as
`#[rustc_args_required_const]`. This is intended to be used as future-proofing
for the stdsimd crate to avoid taking a function pointer to any intrinsic which
has a hard requirement that one of the arguments is a constant value.

Note that the first commit here isn't related specifically to this feature, but was necessary to get this working in stdsimd!
@rust-highfive
Copy link
Collaborator

r? @pnkfelix

(rust_highfive has picked a reviewer for you, use r? to override)

@kennytm
Copy link
Member Author

kennytm commented Feb 9, 2018

@bors r+ p=17

@bors
Copy link
Contributor

bors commented Feb 9, 2018

📌 Commit 4cf8ce7 has been approved by kennytm

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Feb 9, 2018
@kennytm
Copy link
Member Author

kennytm commented Feb 9, 2018

@bors r+

Added #48101.

@bors
Copy link
Contributor

bors commented Feb 9, 2018

📌 Commit 050a707 has been approved by kennytm

@kennytm kennytm changed the title Rollup of 17 pull requests Rollup of 18 pull requests Feb 9, 2018
@kennytm kennytm changed the title Rollup of 18 pull requests Rollup of 17 pull requests Feb 9, 2018
@kennytm
Copy link
Member Author

kennytm commented Feb 9, 2018

@bors r+

Removed #48100 (comment)

@bors
Copy link
Contributor

bors commented Feb 9, 2018

📌 Commit 878e701 has been approved by kennytm

@bors
Copy link
Contributor

bors commented Feb 9, 2018

⌛ Testing commit 878e701 with merge 394ccaf...

bors added a commit that referenced this pull request Feb 9, 2018
Rollup of 17 pull requests

- Successful merges: #47790, #47835, #47854, #48015, #48047, #48051, #48058, #48059, #48064, #48078, #48080, #48085, #48086, #48090, #48093, #48098, #48101
- Failed merges:
@bors
Copy link
Contributor

bors commented Feb 10, 2018

💔 Test failed - status-travis

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 10, 2018
@estebank
Copy link
Contributor

@bors retry

[02:11:21] �[m�[m�[32m�[1m     Running�[m build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps/alloc-b0e10857ffbb389e
...
[02:12:24] test net::tcp::tests::clone_while_reading ... test net::tcp::tests::clone_while_reading has been running for over 60 seconds

[02:12:44] thread '<unnamed>' panicked at 'received error for `TcpStream::connect(&addr)`: Operation timed out (os error 60)', libstd/net/tcp.rs:1382:31



No output has been received in the last 30m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received

The build has been terminated

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 10, 2018
@estebank
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Feb 10, 2018

💡 This pull request was already approved, no need to approve it again.

@bors
Copy link
Contributor

bors commented Feb 10, 2018

📌 Commit 878e701 has been approved by estebank

@bors
Copy link
Contributor

bors commented Feb 10, 2018

🔒 Merge conflict

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 10, 2018
@bors
Copy link
Contributor

bors commented Feb 10, 2018

☔ The latest upstream changes (presumably #47828) made this pull request unmergeable. Please resolve the merge conflicts.

@kennytm kennytm closed this Feb 10, 2018
@Centril Centril added the rollup A PR which is a rollup label Oct 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet