]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agorustbuild: Don't try to build rustdoc API docs with compiler docs
Oliver Middleton [Sat, 14 Oct 2017 15:35:25 +0000 (16:35 +0100)]
rustbuild: Don't try to build rustdoc API docs with compiler docs

rustdoc is built separately to rustc now so the docs would need to be
generated separately as well. Also rustdoc doesn't build at stage 1
which prevented the compiler docs being built at stage 1.

6 years agoAuto merge of #45162 - chrisvittal:mir-testing, r=nikomatsakis
bors [Sat, 14 Oct 2017 11:22:46 +0000 (11:22 +0000)]
Auto merge of #45162 - chrisvittal:mir-testing, r=nikomatsakis

 Modify MIR testing to require consecutive lines

MIR testing now requires that lines be consecutive. To achive this,
instead of collecting the expected mir as a string, it is now wrapped in
an `ExpectedLine` enum, that is either `Elision` or `Text(T)` where `T:
AsRef<str>`. `Text` lines must be matched in order, unless separated by
`Elision` lines. Elision occurs lazily, that is, an Elision will skip
as few lines as possible.

To add a new elision marker. Put a comment containing only "..." and
whitespace in any MIR testing block. Like so:

```
// fn write_42(_1: *mut i32) -> bool {
//     ...
//     bb0: {
//         Validate(Acquire, [_1: *mut i32]);
//         Validate(Release, [_1: *mut i32]);
//         ...
//         return;
//     }
// }
```

Right now, all input before the line right after `// START` is elided,
and all input after the line right before `// END` is also not tested.

Many tests need to be updated. That will follow in the next commit.

cc #45153
r? @nikomatsakis

6 years agoAuto merge of #45155 - Nashenas88:nll-infer, r=nikomatsakis
bors [Sat, 14 Oct 2017 08:53:07 +0000 (08:53 +0000)]
Auto merge of #45155 - Nashenas88:nll-infer, r=nikomatsakis

NLL infer

r? @nikomatsakis

6 years agoAuto merge of #45137 - theotherjimmy:vtable-methods-query, r=nikomatsakis
bors [Sat, 14 Oct 2017 06:34:20 +0000 (06:34 +0000)]
Auto merge of #45137 - theotherjimmy:vtable-methods-query, r=nikomatsakis

Queryify Vtable methods

This query might come with a downside: It converts an iterator to a Vec, which may increase the working set of rustc on programs that use many many traits (I think that's where this is used).

6 years agoAuto merge of #45104 - vitiral:incr_auto_assert2, r=michaelwoerister
bors [Sat, 14 Oct 2017 04:11:49 +0000 (04:11 +0000)]
Auto merge of #45104 - vitiral:incr_auto_assert2, r=michaelwoerister

Incremental compilation auto assert (with except)

cc @michaelwoerister

bors merged part 1, so this is a WIP of part 2 of #45009  -- auto asserting DepNodes depending on the type of node rustc_clean/dirty is attached to

Framework:
- [x] finish auto-detection for specified DepNodes
- [x] finish auto-detection for remaining DepNodes

Test Refactors:
- [x] consts.rs
- [x] enum_constructors.rs
- [x] extern_mods.rs
- [x] inherent_impls.rs
- [x] statics.rs
- [x] struct_constructors.rs
- ~~**BLOCKED** trait_defs.rs, see FIXME~~
- ~~**BLOCKED** trait_impls.rs~~
- [x] type_defs.rs
- [x] enum_defs.rs

6 years agoAuto merge of #45102 - petrochenkov:noar, r=alexcrichton
bors [Sat, 14 Oct 2017 01:43:42 +0000 (01:43 +0000)]
Auto merge of #45102 - petrochenkov:noar, r=alexcrichton

cleanup: rustc doesn't use an external archiver

cc https://github.com/rust-lang/rust/pull/45090
r? @alexcrichton

6 years agoAuto merge of #45069 - sinkuu:tuple_arg, r=nikomatsakis
bors [Fri, 13 Oct 2017 20:14:38 +0000 (20:14 +0000)]
Auto merge of #45069 - sinkuu:tuple_arg, r=nikomatsakis

Better error for missing tuple pattern in args

#44150

Before:
```
error[E0593]: closure takes 2 arguments but 1 argument is required
 --> test.rs:5:40
  |
5 |     let it = v.into_iter().enumerate().map(|i, x| i);
  |                                        ^^^ -------- takes 2 arguments
  |                                        |
  |                                        expected closure that takes 1 argument
```

After:
```
error[E0593]: closure takes 2 arguments but a 2-tuple is required
 --> test.rs:5:40
  |
5 |     let it = v.into_iter().enumerate().map(|i, x| i);
  |                                        ^^^ ------ takes 2 arguments
  |                                        |
  |                                        expected closure that takes a 2-tuple
```

6 years agoAuto merge of #45261 - kennytm:rollup, r=kennytm
bors [Fri, 13 Oct 2017 17:42:25 +0000 (17:42 +0000)]
Auto merge of #45261 - kennytm:rollup, r=kennytm

Rollup of 14 pull requests

- Successful merges: #44855, #45110, #45122, #45133, #45173, #45178, #45189, #45203, #45209, #45221, #45236, #45240, #45245, #45253
- Failed merges:

6 years agofix review comments
Garrett Berg [Fri, 13 Oct 2017 16:04:59 +0000 (10:04 -0600)]
fix review comments

6 years agoRollup merge of #45253 - Gankro:drop_docs, r=kennytm
kennytm [Fri, 13 Oct 2017 15:38:05 +0000 (23:38 +0800)]
Rollup merge of #45253 - Gankro:drop_docs, r=kennytm

Clarify how needs_drop is conservative

6 years agoRollup merge of #45245 - stjepang:more-padding-between-impls, r=QuietMisdreavus
kennytm [Fri, 13 Oct 2017 15:38:04 +0000 (23:38 +0800)]
Rollup merge of #45245 - stjepang:more-padding-between-impls, r=QuietMisdreavus

Rustdoc: Increase padding between consecutive impls

Currently, [implementors](https://doc.rust-lang.org/nightly/std/iter/trait.IntoIterator.html#implementors) list is a bit too condensed. More spacing makes the list easier to read.
Check out [this comment](https://github.com/rust-lang/rust/issues/41879#issuecomment-333121118) to see what's the effect of this change.

Closes #41879.

cc @QuietMisdreavus

6 years agoRollup merge of #45240 - GuillaumeGomez:mobile-sidebar-improvements, r=QuietMisdreavus
kennytm [Fri, 13 Oct 2017 15:38:03 +0000 (23:38 +0800)]
Rollup merge of #45240 - GuillaumeGomez:mobile-sidebar-improvements, r=QuietMisdreavus

Mobile sidebar improvements

Very small changes, I just made the width of the sidebar of 100% and centered vertically both items a bit more:

<img width="1440" alt="screen shot 2017-10-12 at 20 00 47" src="https://user-images.githubusercontent.com/3050060/31511496-302bb474-af88-11e7-8dab-2c88799eafcc.png">

r? @rust-lang/docs

6 years agoRollup merge of #45236 - alexcrichton:build-less, r=Mark-Simulacrum
kennytm [Fri, 13 Oct 2017 15:38:02 +0000 (23:38 +0800)]
Rollup merge of #45236 - alexcrichton:build-less, r=Mark-Simulacrum

rustbuild: Prevent spurious rebuilds of the RLS

The RLS currently is rebuilt every time you test it because the `OPENSSL_DIR`
env var is changing, which is in turn caused by an accidental omission of
`prepare_tool_cargo` when testing the RLS.

6 years agoRollup merge of #45221 - estebank:issue-41790, r=nikomatsakis
kennytm [Fri, 13 Oct 2017 15:38:01 +0000 (23:38 +0800)]
Rollup merge of #45221 - estebank:issue-41790, r=nikomatsakis

Point at immutable outer variable

When attempting to mutate an immutable outer variable from a closure,
point at the outer variable and suggest making it mutable.

Fix #41790.

6 years agoRollup merge of #45209 - kennytm:treat-checksum-error-as-download-error, r=Mark-Simul...
kennytm [Fri, 13 Oct 2017 15:38:00 +0000 (23:38 +0800)]
Rollup merge of #45209 - kennytm:treat-checksum-error-as-download-error, r=Mark-Simulacrum

rustbuild: Make openssl download more reliable.

1. Add `-f` flag to curl, so when the server returns 403 or 500 it will fail immediately.
2. Moved the checksum part into the retry loop, assuming checksum failure is due to broken download that can be fixed by downloading again.

This PR is created responding to two recent spurious failures in https://github.com/rust-lang/rust/pull/45075#issuecomment-335202319 and https://github.com/rust-lang/rust/pull/45030#issuecomment-335029356.

r? @Mark-Simulacrum , cc @aidanhs

6 years agoRollup merge of #45203 - alexcrichton:update-llvm, r=michaelwoerister
kennytm [Fri, 13 Oct 2017 15:37:59 +0000 (23:37 +0800)]
Rollup merge of #45203 - alexcrichton:update-llvm, r=michaelwoerister

rustc: Update LLVM with a ThinLTO fix

This commit updates LLVM with a patch that's landed upstream to fix an assertion
that was tripping when ThinLTO was activated. Unfortunately I wasn't able to get
a reduced test case, but I've tested manually on the affected crates and the
assertion is indeed fixed.

Closes #45131

6 years agoRollup merge of #45189 - alexcrichton:thinlto-allocators, r=michaelwoerister
kennytm [Fri, 13 Oct 2017 15:37:58 +0000 (23:37 +0800)]
Rollup merge of #45189 - alexcrichton:thinlto-allocators, r=michaelwoerister

rustc: Handle `#[no_mangle]` anywhere in a crate

This commit updates the reachability pass of the compiler to seed the local
worklist with `#[no_mangle]`-like items anywhere in a crate, not just those
reachable from public items.

Closes #45165

6 years agoRollup merge of #45178 - Badel2:comma-after-struct, r=petrochenkov
kennytm [Fri, 13 Oct 2017 15:37:57 +0000 (23:37 +0800)]
Rollup merge of #45178 - Badel2:comma-after-struct, r=petrochenkov

Better error message for comma after base struct

#41834

This adds a better error for commas after the base struct:
```
let foo = Foo {
    one: 111,
    ..Foo::default(), // This comma is a syntax error
};
```

The current error is a generic `expected one of ...` which isn't beginner-friendly. My error looks like this:

```
error: cannot use a comma after the base struct
  --> tmp/example.rs:26:9
   |
26 |         ..Foo::default(),
   |         ^^^^^^^^^^^^^^^^- help: remove this comma
   |
   = note: the base struct expansion must always be the last field
```

I even added a note for people who don't know why this isn't allowed.

6 years agoRollup merge of #45173 - laumann:suggest-misspelled-labels, r=petrochenkov
kennytm [Fri, 13 Oct 2017 15:37:56 +0000 (23:37 +0800)]
Rollup merge of #45173 - laumann:suggest-misspelled-labels, r=petrochenkov

Add suggestions for misspelled labels

Another part of #30197

6 years agoRollup merge of #45133 - GuillaumeGomez:usize-index-msg, r=dtolnay
kennytm [Fri, 13 Oct 2017 15:37:55 +0000 (23:37 +0800)]
Rollup merge of #45133 - GuillaumeGomez:usize-index-msg, r=dtolnay

usize index message for vec

6 years agoRollup merge of #45122 - jean-lourenco:master, r=nikomatsakis
kennytm [Fri, 13 Oct 2017 15:37:54 +0000 (23:37 +0800)]
Rollup merge of #45122 - jean-lourenco:master, r=nikomatsakis

Better compile error output when using arguments instead of types

Following @estebank sugestion on issue https://github.com/rust-lang/rust/issues/18945#issuecomment-331251436

6 years agoRollup merge of #45110 - Nashenas88:master, r=arielb1
kennytm [Fri, 13 Oct 2017 15:37:53 +0000 (23:37 +0800)]
Rollup merge of #45110 - Nashenas88:master, r=arielb1

Improve newtype_index macro to handle description and constants consistently

6 years agoRollup merge of #44855 - federicomenaquintero:master, r=steveklabnik
kennytm [Fri, 13 Oct 2017 15:37:51 +0000 (23:37 +0800)]
Rollup merge of #44855 - federicomenaquintero:master, r=steveklabnik

Improved docs for CStr, CString, OsStr, OsString

This expands the documentation for those structs and their corresponding traits, per https://github.com/rust-lang/rust/issues/29354

6 years agoAuto merge of #45063 - michaelwoerister:bring-back-incremental-info, r=nikomatsakis
bors [Fri, 13 Oct 2017 15:04:12 +0000 (15:04 +0000)]
Auto merge of #45063 - michaelwoerister:bring-back-incremental-info, r=nikomatsakis

incr.comp.: Bring back output of -Zincremental-info.

This got kind lost during the transition to red/green.

I also switched back from `eprintln!()` to `println!()` since the former never actually produced any output. I suspect this has to do with `libterm` somehow monopolizing `stderr`.

r? @nikomatsakis

6 years agoRemove recursion from `define_{provider|map}_struct`
Jimmy Brisson [Thu, 12 Oct 2017 21:45:07 +0000 (16:45 -0500)]
Remove recursion from `define_{provider|map}_struct`

6 years agoRemove export of vtable_methods
Jimmy Brisson [Mon, 9 Oct 2017 15:41:19 +0000 (10:41 -0500)]
Remove export of vtable_methods

6 years agoWrap vtable_methods return type in RC
Jimmy Brisson [Mon, 9 Oct 2017 15:39:53 +0000 (10:39 -0500)]
Wrap vtable_methods return type in RC

6 years agoget_vtable_methods => vtable_methods query
Jimmy Brisson [Sat, 7 Oct 2017 21:55:09 +0000 (16:55 -0500)]
get_vtable_methods => vtable_methods query

6 years agoConvert return type of get_vtable_methods to Vec
Jimmy Brisson [Sat, 7 Oct 2017 14:20:13 +0000 (09:20 -0500)]
Convert return type of get_vtable_methods to Vec

6 years agoAdd License to infer.rs
Santiago Pastorino [Wed, 11 Oct 2017 21:41:20 +0000 (18:41 -0300)]
Add License to infer.rs

6 years agoTODO -> FIXME
Santiago Pastorino [Wed, 11 Oct 2017 21:40:35 +0000 (18:40 -0300)]
TODO -> FIXME

6 years agoAdd allow_dead code directive to unused methods
Santiago Pastorino [Tue, 10 Oct 2017 22:41:29 +0000 (19:41 -0300)]
Add allow_dead code directive to unused methods

6 years agoDo not move infcx, just borrow it
Santiago Pastorino [Tue, 10 Oct 2017 22:37:34 +0000 (19:37 -0300)]
Do not move infcx, just borrow it

6 years agoborrow block_data instead of moving it
Santiago Pastorino [Tue, 10 Oct 2017 22:23:30 +0000 (19:23 -0300)]
borrow block_data instead of moving it

6 years agosup_def is a mutable reference
Santiago Pastorino [Tue, 10 Oct 2017 22:23:16 +0000 (19:23 -0300)]
sup_def is a mutable reference

6 years agointeference_context should be mut
Santiago Pastorino [Tue, 10 Oct 2017 22:18:19 +0000 (19:18 -0300)]
inteference_context should be mut

6 years agoMark Region as public
Santiago Pastorino [Tue, 10 Oct 2017 17:25:39 +0000 (14:25 -0300)]
Mark Region as public

6 years agoMark free regions handling as TODO
Santiago Pastorino [Tue, 10 Oct 2017 17:25:04 +0000 (14:25 -0300)]
Mark free regions handling as TODO

6 years agoInitial attempt at implementation of inference layout for nll
Paul Faria [Tue, 10 Oct 2017 02:16:57 +0000 (22:16 -0400)]
Initial attempt at implementation of inference layout for nll

6 years agoAuto merge of #45055 - GuillaumeGomez:search-tabs, r=QuietMisdreavus
bors [Fri, 13 Oct 2017 11:34:11 +0000 (11:34 +0000)]
Auto merge of #45055 - GuillaumeGomez:search-tabs, r=QuietMisdreavus

Add tabs for search for better information access

A few screenshots:

<img width="1440" alt="screen shot 2017-10-06 at 00 54 51" src="https://user-images.githubusercontent.com/3050060/31256148-032c1a06-aa31-11e7-8e4c-fec59786b8e6.png">
<img width="1440" alt="screen shot 2017-10-06 at 00 54 58" src="https://user-images.githubusercontent.com/3050060/31256150-03312cb2-aa31-11e7-86f7-8c9f0d8d6d4f.png">
<img width="1440" alt="screen shot 2017-10-06 at 00 55 00" src="https://user-images.githubusercontent.com/3050060/31256149-0330d456-aa31-11e7-8f89-3b3c824e30b4.png">

r? @rust-lang/docs

cc @killercup @QuietMisdreavus

6 years agoAuto merge of #45032 - alexcrichton:target-cfu, r=michaelwoerister
bors [Fri, 13 Oct 2017 08:57:08 +0000 (08:57 +0000)]
Auto merge of #45032 - alexcrichton:target-cfu, r=michaelwoerister

rustc: Allow target-specific default cgus

Some targets, like msp430 and nvptx, don't work with multiple codegen units
right now for bugs or fundamental reasons. To expose this allow targets to
express a default.

Closes #45000

6 years agoAuto merge of #45031 - alexcrichton:nounwind, r=arielb1
bors [Fri, 13 Oct 2017 06:32:10 +0000 (06:32 +0000)]
Auto merge of #45031 - alexcrichton:nounwind, r=arielb1

rustc: Add LLVM `nounwind` with `-C panic=abort`

This informs LLVM that functions can't unwind, which while it should typically
have already been inferred when necessary or otherwise not impact codegen is
apparently needed on targets like ARM to avoid references to unnecessary
symbols.

Closes #44992

6 years agoClarify how needs_drop is conservative
Alexis Beingessner [Fri, 13 Oct 2017 06:29:10 +0000 (02:29 -0400)]
Clarify how needs_drop is conservative

6 years agoincr comp: rustc_clean/dirty auto assert
Garrett Berg [Fri, 6 Oct 2017 22:15:29 +0000 (16:15 -0600)]
incr comp: rustc_clean/dirty auto assert

This adds auto-assertion to `rustc_clean/dirty` and also implements
more comprehensive testing for

 - src/test/incremental/hashes/enum_constructors.rs
 - src/test/incremental/hashes/enum_defs.rs
 - src/test/incremental/hashes/extern_mods.rs
 - src/test/incremental/hashes/inherent_impls.rs
 - src/test/incremental/hashes/statics.rs
 - src/test/incremental/hashes/struct_constructors.rs
 - src/test/incremental/hashes/type_defs.rs

trait_defs.rs and trait_impl.rs are blocked on a hard to triage
compiler ICE (at least hard for a newbie like me) having to do
with some DepNodes not getting computed for traits.
A FIXME has been added in the source to reflect this continued
work.

6 years agoAuto merge of #45025 - pnkfelix:mir-borrowck-moves-of-supporting-prefixes-invalidate...
bors [Fri, 13 Oct 2017 04:00:55 +0000 (04:00 +0000)]
Auto merge of #45025 - pnkfelix:mir-borrowck-moves-of-supporting-prefixes-invalidate-uses-too, r=arielb1

MIR-borrowck: moves of prefixes invalidate uses too

I overlooked the fact that when we check if a path is moved, we need to check for interference between the (shallow) prefixes and the use in question.

~~Long term, we may want to revise how this computation is done. For example, it might be better to represent the set of invalidated prefixes in the dataflow computation (the `maybe_uninitialized` dataflow), and thus avoid one of the loops in the code here.~~
 * Update: I was wrong in my original recollection of the dataflow code, which actually does the right thing, in terms of precisely tracking substructure initialization and movement.

Fix #44833

----

Update: The initial version of this PR's description (and the code as well) erroneously focused on supporting prefixes. ~~But the two main cases of interest are: 1. the *shallow* prefixes, and 2. the deref-free prefix built off a local (if the lvalue is indeed built off a local)~~

Update 2: The main cases of interest are in fact: 1. the nearest prefix with a MovePath, and 2. the suffixes.

6 years agoAuto merge of #45013 - chrisvittal:mir_pretty_printing_pr, r=nikomatsakis
bors [Fri, 13 Oct 2017 01:33:34 +0000 (01:33 +0000)]
Auto merge of #45013 - chrisvittal:mir_pretty_printing_pr, r=nikomatsakis

Extend mir dump to dump each region

Building on #44878, implement the feature discussed in #44872.

Through discussions on the WG-nll-gitter, @nikomatsakis and I decided to implement this by extending `dump_mir` and all functions that it calls to take a callback of signature `FnMut(PassWhere, &mut Write) -> io::Result<()>` where `PassWhere` is an enum that represents possible locations that we may want to print out extra data in the process of dumping the MIR.

I'm not particularly wedded to the name `PassWhere`, but I felt that simply calling the enum `Where` wasn't the right thing to name it.

This work depends strongly on #44878, and should be rebased on the final version of that tree, whatever that may be.

6 years agoReword
sinkuu [Fri, 13 Oct 2017 00:56:50 +0000 (09:56 +0900)]
Reword

6 years agoAuto merge of #45233 - kennytm:rollup, r=kennytm
bors [Thu, 12 Oct 2017 23:01:34 +0000 (23:01 +0000)]
Auto merge of #45233 - kennytm:rollup, r=kennytm

Rollup of 9 pull requests

- Successful merges: #44989, #45005, #45049, #45105, #45121, #45166, #45172, #45190, #45231
- Failed merges: #45138

6 years agoIncrease padding between consecutive impls
Stjepan Glavina [Thu, 12 Oct 2017 20:57:51 +0000 (22:57 +0200)]
Increase padding between consecutive impls

6 years agoSmall improvement for the sidebar on mobile devices
Guillaume Gomez [Thu, 12 Oct 2017 18:00:34 +0000 (20:00 +0200)]
Small improvement for the sidebar on mobile devices

6 years agoRollup merge of #45231 - kennytm:patch-1, r=petrochenkov
kennytm [Thu, 12 Oct 2017 08:14:31 +0000 (16:14 +0800)]
Rollup merge of #45231 - kennytm:patch-1, r=petrochenkov

Fix typo in libsyntax/parse/lexer/unicode_chars.rs

`` ` `` (U+0060) should be the "grave" accent, not "Greek" accent.

6 years agoFix typo in libsyntax/parse/lexer/unicode_chars.rs
kennytm [Thu, 12 Oct 2017 06:53:26 +0000 (14:53 +0800)]
Fix typo in libsyntax/parse/lexer/unicode_chars.rs

` (U+0060) should be the "grave" accent, not "Greek" accent.

6 years agoRollup merge of #45190 - petrochenkov:shorten, r=alexcrichton
kennytm [Thu, 12 Oct 2017 08:14:30 +0000 (16:14 +0800)]
Rollup merge of #45190 - petrochenkov:shorten, r=alexcrichton

Shorten some test names

An immediate fix for the first issue in https://github.com/rust-lang/rust/issues/45103
r? @alexcrichton

6 years agoRollup merge of #45172 - oli-obk:patch-8, r=pnkfelix
kennytm [Thu, 12 Oct 2017 08:14:29 +0000 (16:14 +0800)]
Rollup merge of #45172 - oli-obk:patch-8, r=pnkfelix

Upgrade some comments to doc comments

6 years agoRollup merge of #45166 - tinaun:more_unstable_docs, r=steveklabnik
kennytm [Thu, 12 Oct 2017 08:14:28 +0000 (16:14 +0800)]
Rollup merge of #45166 - tinaun:more_unstable_docs, r=steveklabnik

Documented a few more unstable feature gates.

unboxed closures, fn_traits, and OIBIT. hope these are decent!

6 years agoRollup merge of #45121 - johnthagen:pep8-bootstrap, r=alexcrichton
kennytm [Thu, 12 Oct 2017 08:14:26 +0000 (16:14 +0800)]
Rollup merge of #45121 - johnthagen:pep8-bootstrap, r=alexcrichton

Fix PEP8 style issues in bootstrap code

This fixes PEP8 style issues (other than line-length) in the bootstrap Python code.

The most important fix is in the `set` function where the code was indented with 6 spaces instead of 4.

6 years agoRollup merge of #45105 - camsteffen:patch-2, r=pnkfelix
kennytm [Thu, 12 Oct 2017 08:14:25 +0000 (16:14 +0800)]
Rollup merge of #45105 - camsteffen:patch-2, r=pnkfelix

Fix rustc documentation typo

I'm new to rustc but this looks like a typo.

6 years agoRollup merge of #45049 - alexcrichton:update-jobserver, r=sfackler
kennytm [Thu, 12 Oct 2017 08:14:24 +0000 (16:14 +0800)]
Rollup merge of #45049 - alexcrichton:update-jobserver, r=sfackler

Update the `jobserver` crate

Brings in a bugfix to be compatible with the master branch of `make` where
jobserver fds are set in nonblocking mode

6 years agoRollup merge of #45005 - leodasvacas:inline-eq-slice-into-eq, r=jseyfried
kennytm [Thu, 12 Oct 2017 08:14:23 +0000 (16:14 +0800)]
Rollup merge of #45005 - leodasvacas:inline-eq-slice-into-eq, r=jseyfried

Inline eq_slice into str::eq

It's the only use of the function.

6 years agoRollup merge of #44989 - QuietMisdreavus:what-is-your-quest, r=GuillaumeGomez
kennytm [Thu, 12 Oct 2017 08:14:22 +0000 (16:14 +0800)]
Rollup merge of #44989 - QuietMisdreavus:what-is-your-quest, r=GuillaumeGomez

let rustdoc print the crate version into docs

This PR adds a new unstable flag to rustdoc, `--crate-version`, which when present will add a new entry to the sidebar of the root module, printing the given version number:

![Screenshot of a test crate, showing "Version 1.3.37" under the crate name](https://user-images.githubusercontent.com/5217170/31104096-805e3f4c-a7a0-11e7-96fc-368b6fe063d6.png)

Closes #24336

(The WIP status is because i don't want to merge this until i can get the std docs to use it, which i need help from rustbuild people to make sure i get right.)

6 years agoAuto merge of #45007 - undecidabot:optimize-iter, r=bluss
bors [Thu, 12 Oct 2017 17:34:21 +0000 (17:34 +0000)]
Auto merge of #45007 - undecidabot:optimize-iter, r=bluss

Optimize comparison functions of Iterator

Replaced matching on tuples which led to less performant code generation. Testing on microbenchmarks consistently showed ~1.35x improvement in performance on my machine.

Fixes #44729.

6 years agorustc: Handle `#[linkage]` anywhere in a crate
Alex Crichton [Tue, 10 Oct 2017 22:54:49 +0000 (15:54 -0700)]
rustc: Handle `#[linkage]` anywhere in a crate

This commit updates the reachability pass of the compiler to seed the local
worklist with `#[linkage]`-like items anywhere in a crate, not just those
reachable from public items.

Closes #45165

6 years agorustbuild: Prevent spurious rebuilds of the RLS
Alex Crichton [Thu, 12 Oct 2017 15:02:39 +0000 (08:02 -0700)]
rustbuild: Prevent spurious rebuilds of the RLS

The RLS currently is rebuilt every time you test it because the `OPENSSL_DIR`
env var is changing, which is in turn caused by an accidental omission of
`prepare_tool_cargo` when testing the RLS.

6 years agoAuto merge of #45176 - michaelwoerister:fix-region-and-trans-item-order, r=nikomatsakis
bors [Thu, 12 Oct 2017 11:20:16 +0000 (11:20 +0000)]
Auto merge of #45176 - michaelwoerister:fix-region-and-trans-item-order, r=nikomatsakis

incr.comp.: Fix HashStable for ty::RegionKind and trans item order

Fixes #45161 and the failing rust-icci tests.

r? @nikomatsakis

6 years agoAuto merge of #44967 - wesleywiser:trans_fulfill_obligation, r=nikomatsakis
bors [Thu, 12 Oct 2017 07:48:11 +0000 (07:48 +0000)]
Auto merge of #44967 - wesleywiser:trans_fulfill_obligation, r=nikomatsakis

Turn `trans_fulfill_obligation` into a query

Part of #44891

6 years agoAuto merge of #44985 - zilbuz:issue-44974, r=pnkfelix
bors [Thu, 12 Oct 2017 03:40:10 +0000 (03:40 +0000)]
Auto merge of #44985 - zilbuz:issue-44974, r=pnkfelix

MIR borrowck: print lvalues in error messages in the same way that the AST borrowck

Fix #44974

- Print fields with `.name` rather than `.<num>`
- Autoderef values if followed by a field or an index
- Output `[..]` when borrowing inside a slice

6 years agoAuto merge of #44969 - QuietMisdreavus:impls-for-everyone, r=steveklabnik
bors [Thu, 12 Oct 2017 01:00:15 +0000 (01:00 +0000)]
Auto merge of #44969 - QuietMisdreavus:impls-for-everyone, r=steveklabnik

document trait impls when the type appears in the trait's generics

Fixes #25264

![image](https://user-images.githubusercontent.com/5217170/31062309-4fc7c594-a6ef-11e7-892e-07f95bbc7976.png)

6 years agoSplit lines longer than 100 columns
Paul Faria [Thu, 12 Oct 2017 00:06:24 +0000 (20:06 -0400)]
Split lines longer than 100 columns

6 years agoMove const qualifier from brackets to constant values and remove comma from after...
Paul Faria [Thu, 12 Oct 2017 00:01:55 +0000 (20:01 -0400)]
Move const qualifier from brackets to constant values and remove comma from after identifier

6 years agoffi/mod.rs: Use only one space after a period ending a sentence
Federico Mena Quintero [Wed, 11 Oct 2017 22:57:56 +0000 (17:57 -0500)]
ffi/mod.rs: Use only one space after a period ending a sentence

6 years agoPoint at immutable outer variable
Esteban Küber [Wed, 11 Oct 2017 21:38:52 +0000 (14:38 -0700)]
Point at immutable outer variable

When attempting to mutate an immutable outer variable from a closure,
point at the outer variable and suggest making it mutable.

6 years agoffi/mod.rs: Keep the one-sentence summary at the beginning of the module
Federico Mena Quintero [Wed, 11 Oct 2017 22:55:01 +0000 (17:55 -0500)]
ffi/mod.rs: Keep the one-sentence summary at the beginning of the module

6 years agoffi/c_str.rs: Use only one space after a period ending a sentence
Federico Mena Quintero [Wed, 11 Oct 2017 22:53:13 +0000 (17:53 -0500)]
ffi/c_str.rs: Use only one space after a period ending a sentence

6 years agoffi/c_str.rs: Fix method/function confusion
Federico Mena Quintero [Wed, 11 Oct 2017 22:52:39 +0000 (17:52 -0500)]
ffi/c_str.rs: Fix method/function confusion

Per https://github.com/rust-lang/rust/pull/44855#discussion_r144049179

6 years agoffi/c_str.rs: Make all descriptions have a single-sentence summary at the beginning
Federico Mena Quintero [Wed, 11 Oct 2017 22:51:37 +0000 (17:51 -0500)]
ffi/c_str.rs: Make all descriptions have a single-sentence summary at the beginning

Per https://github.com/rust-lang/rust/pull/44855#discussion_r144048837
and subsequent ones.

6 years agoAdded `revisions: ast mir` template to tests that this PR sync'ed ast+mir borrowcks.
Felix S. Klock II [Wed, 11 Oct 2017 10:46:47 +0000 (12:46 +0200)]
Added `revisions: ast mir` template to tests that this PR sync'ed ast+mir borrowcks.

(There are other tests that this PR also improves, but were not
completely synchronized. I chose to wait until later to pull those
into the `revisions: ast mir` testing pattern; later being either when
they *are* synchronized, or in some PR where we migrate all borrowck
tests, regardless of whether MIR-borrowck is "finished" for them or
not.)

6 years agoTest case illustrating some variants of the issue pointed out by ariel.
Felix S. Klock II [Thu, 5 Oct 2017 12:32:05 +0000 (14:32 +0200)]
Test case illustrating some variants of the issue pointed out by ariel.

Expanded to cover partial-initialization ideas.

6 years agoTest against accesses to uninitialized fields.
Felix S. Klock II [Wed, 4 Oct 2017 15:47:19 +0000 (17:47 +0200)]
Test against accesses to uninitialized fields.

6 years agoMIR-borrowck: Big fix to `fn check_if_path_is_moved`.
Felix S. Klock II [Wed, 4 Oct 2017 15:46:46 +0000 (17:46 +0200)]
MIR-borrowck: Big fix to `fn check_if_path_is_moved`.

Fix #44833 (a very specific instance of a very broad bug).

In `check_if_path_is_moved(L)`, check nearest prefix of L with
MovePath, and suffixes of L with MovePaths.

Over the course of review, ariel pointed out a number of issues that
led to this version of the commit:

1. Looking solely at supporting prefixes does not suffice: it
   overlooks checking if the path was ever actually initialized in the
   first place. So you need to be willing to consider non-supporting
   prefixes.  Once you are looking at all prefixes, you *could* just
   look at the local that forms the base of the projection, but to
   handle partial initialization (which still needs to be formally
   specified), this code instead looks at the nearest prefix of L that
   has an associated MovePath (which, in the limit, will end up being
   a local).

2. You also need to consider the suffixes of the given Lvalue, due to
   how dataflow is representing partial moves of individual fields out
   of struct values.

3. (There was originally a third search, but ariel pointed out that
   the first and third could be folded into one.)

Also includes some drive-by refactorings to simplify some method
signatures and prefer `for _ in _` over `loop { }` (at least when it
comes semi-naturally).

6 years agoAuto merge of #44963 - JLockerman:fix_spsc, r=alexcrichton
bors [Wed, 11 Oct 2017 19:32:19 +0000 (19:32 +0000)]
Auto merge of #44963 - JLockerman:fix_spsc, r=alexcrichton

Improve performance of spsc_queue and stream.

This PR makes two main changes:

1. It switches the `spsc_queue` node caching strategy from keeping a shared
counter of the number of nodes in the cache to keeping a consumer only counter
of the number of node eligible to be cached.
2. It separates the consumer and producers fields of `spsc_queue` and `stream` into
a producer cache line and consumer cache line.

Overall, it speeds up `mpsc` in `spsc` mode by 2-10x.
Variance is higher than I'd like (that 2-10x speedup is on one benchmark), I believe this is due to the drop check in `send` (`fn stream::Queue::send:107`). I think this check can be combined with the sleep detection code into a version which only uses 1 shared variable, and only one atomic access per `send`, but I haven't looked through the select implementation enough to be sure.

The code currently assumes a cache line size of 64 bytes. I added a CacheAligned newtype in `mpsc` which I expect to reuse for `shared`. It doesn't really belong there, it would probably be best put in `core::sync::atomic`, but putting it in `core` would involve making it public, which I thought would require an RFC.

Benchmark runner is [here](https://github.com/JLockerman/queues/tree/3eca46279c53eb75833c5ecd416de2ac220bd022/shootout), benchmarks [here](https://github.com/JLockerman/queues/blob/3eca46279c53eb75833c5ecd416de2ac220bd022/queue_bench/src/lib.rs#L170-L293).

Fixes #44512.

6 years agorustbuild: Make openssl download more reliable.
kennytm [Wed, 11 Oct 2017 17:20:55 +0000 (01:20 +0800)]
rustbuild: Make openssl download more reliable.

1. Add -f flag to curl, so when the server returns 403 or 500 it will fail
   immediately.
2. Moved the checksum part into the retry loop, assuming checksum failure
   is due to broken download that can be fixed by downloading again.

6 years agorustc: Update LLVM with a ThinLTO fix
Alex Crichton [Wed, 11 Oct 2017 15:33:46 +0000 (08:33 -0700)]
rustc: Update LLVM with a ThinLTO fix

This commit updates LLVM with a patch that's landed upstream to fix an assertion
that was tripping when ThinLTO was activated. Unfortunately I wasn't able to get
a reduced test case, but I've tested manually on the affected crates and the
assertion is indeed fixed.

Closes #45131

6 years agorustc: Add LLVM `nounwind` with `-C panic=abort`
Alex Crichton [Wed, 4 Oct 2017 21:54:28 +0000 (14:54 -0700)]
rustc: Add LLVM `nounwind` with `-C panic=abort`

This informs LLVM that functions can't unwind, which while it should typically
have already been inferred when necessary or otherwise not impact codegen is
apparently needed on targets like ARM to avoid references to unnecessary
symbols.

Closes #44992

6 years agoAuto merge of #44888 - tirr-c:binder-hr-region, r=arielb1
bors [Wed, 11 Oct 2017 16:00:25 +0000 (16:00 +0000)]
Auto merge of #44888 - tirr-c:binder-hr-region, r=arielb1

Refactor fmt::Display and fmt::Debug impls in ppaux

Also fixes #44887.

There was a problem that unnamed late-bound regions are *always* named `'r` while they are displayed using `std::fmt::Display`.

---

```rust
fn main() {
    f(|_: (), _: ()| {});
}
fn f<F>(_: F) where F: Fn(&(), for<'r> fn(&'r ())) {}
```

Before (incorrectly shadows lifetime, `for<'r>` omitted for the second argument):

```
error[E0631]: type mismatch in closure arguments
 --> test.rs:2:5
  |
2 |     f(|_: (), _: ()| {});
  |     ^ ----------------- found signature of `fn((), ()) -> _`
  |     |
  |     expected signature of `for<'r> fn(&'r (), fn(&'r ())) -> _`
  |
  = note: required by `f`
```

After:

```
error[E0631]: type mismatch in closure arguments
 --> test.rs:2:5
  |
2 |     f(|_: (), _: ()| {});
  |     ^ ----------------- found signature of `fn((), ()) -> _`
  |     |
  |     expected signature of `for<'s> fn(&'s (), for<'r> fn(&'r ())) -> _`
  |
  = note: required by `f`
```

r? @nikomatsakis

6 years agoAuto merge of #45192 - steveklabnik:rollup, r=steveklabnik
bors [Wed, 11 Oct 2017 13:26:09 +0000 (13:26 +0000)]
Auto merge of #45192 - steveklabnik:rollup, r=steveklabnik

Rollup of 5 pull requests

- Successful merges: #45071, #45139, #45148, #45171, #45180
- Failed merges: #45121

6 years agoFix typo during merge from master
johnthagen [Wed, 11 Oct 2017 11:36:43 +0000 (07:36 -0400)]
Fix typo during merge from master

6 years agoMerge branch 'master' into pep8-bootstrap
johnthagen [Wed, 11 Oct 2017 11:33:46 +0000 (07:33 -0400)]
Merge branch 'master' into pep8-bootstrap

6 years agoAuto merge of #45193 - alexcrichton:fix-travis, r=alexcrichton
bors [Wed, 11 Oct 2017 05:18:13 +0000 (05:18 +0000)]
Auto merge of #45193 - alexcrichton:fix-travis, r=alexcrichton

ci: Fix installing the Android SDK

Apparently the https urls are broken due to some certificate validation
whatnots, and so far the least intrusive solution I've found is to just disable
that.

6 years agoformatting fixes
tinaun [Tue, 10 Oct 2017 09:03:47 +0000 (05:03 -0400)]
formatting fixes

6 years agooutput compiler message updated
Jean Lourenço [Sun, 8 Oct 2017 18:01:44 +0000 (15:01 -0300)]
output compiler message updated

output message is shown in another 'help:' block

line with +100 columns formatted

test adjusted

6 years agoci: Fix installing the Android SDK
Alex Crichton [Wed, 11 Oct 2017 01:59:40 +0000 (18:59 -0700)]
ci: Fix installing the Android SDK

Apparently the https urls are broken due to some certificate validation
whatnots, and so far the least intrusive solution I've found is to just disable
that.

6 years agorender the rust version into std/compiler/test docs
QuietMisdreavus [Mon, 9 Oct 2017 20:21:11 +0000 (15:21 -0500)]
render the rust version into std/compiler/test docs

6 years agoAdd error for comma after base struct field
Badel2 [Tue, 10 Oct 2017 02:11:22 +0000 (04:11 +0200)]
Add error for comma after base struct field

`let x = { ..default(), } // This comma is an error`

6 years agoRollup merge of #45180 - 0xAX:fix-help-message-in-configure.py, r=Mark-Simulacrum
Steve Klabnik [Wed, 11 Oct 2017 00:22:29 +0000 (20:22 -0400)]
Rollup merge of #45180 - 0xAX:fix-help-message-in-configure.py, r=Mark-Simulacrum

Fix path to x.py in bootstrap/configure.py script

We may see a help message in the end of the output of the ./configure script:

```
$ ./configure
configure: processing command line
configure:
configure: build.configure-args := []
configure:
configure: writing `config.toml` in current directory
configure:
configure: run `python ./src/bootstrap/x.py --help`
configure:
```

but the `x.py` script is actually in the rust root directory and
executing of such help string will give us error:

```
$ python ./src/bootstrap/x.py --help
python: can't open file './src/bootstrap/x.py': [Errno 2] No such file
or directory
```

This patch fixes path to the x.py script in the output of the ./configure

6 years agoRollup merge of #45171 - rust-lang:petrochenkov-patch-2, r=steveklabnik
Steve Klabnik [Wed, 11 Oct 2017 00:22:28 +0000 (20:22 -0400)]
Rollup merge of #45171 - rust-lang:petrochenkov-patch-2, r=steveklabnik

Fix a mistake in release notes for 1.21.0

Also reorder changes to put the important one first.

6 years agoRollup merge of #45148 - gaurikholkar:master, r=nikomatsakis
Steve Klabnik [Wed, 11 Oct 2017 00:22:27 +0000 (20:22 -0400)]
Rollup merge of #45148 - gaurikholkar:master, r=nikomatsakis

Update let-expressions.rs with DepNode labels

As a part of #44924, the PR has tests verified for the following dependency nodes for **let-expressions**
```
- MirValidated
- MirOptimized
- TypeCheckTables
- TypeOfItem
- GenericsOfItem
- PredicatesOfItem
- FnSignature
```

As we are more concerned with the function body,  the following fingerprints do not change over compilation sessions.
```- TypeOfItem
- GenericsOfItem
- PredicatesOfItem
- FnSignature
```

r? @nikomatsakis
cc @michaelwoerister

P.S. Will add more tests as and when possible :)

6 years agoRollup merge of #45139 - michaelwoerister:document-force_from_dep_node, r=nikomatsakis
Steve Klabnik [Wed, 11 Oct 2017 00:22:26 +0000 (20:22 -0400)]
Rollup merge of #45139 - michaelwoerister:document-force_from_dep_node, r=nikomatsakis

incr.comp.: Add some documentation to force_from_dep_node().

r? @nikomatsakis

6 years agoRollup merge of #45071 - tromey:use-gdb-lazy-string, r=michaelwoerister
Steve Klabnik [Wed, 11 Oct 2017 00:22:24 +0000 (20:22 -0400)]
Rollup merge of #45071 - tromey:use-gdb-lazy-string, r=michaelwoerister

Implement display_hint in gdb pretty printers

A few pretty-printers were returning a quoted string from their
to_string method.  It's preferable in gdb to return a lazy string and to
let gdb handle the display by having a "display_hint" method that
returns "string" -- it lets gdb settings (like "set print ...") work, it
handles corrupted strings a bit better, and it passes the information
along to IDEs.

6 years agoShorten some test names
Vadim Petrochenkov [Tue, 10 Oct 2017 23:36:40 +0000 (02:36 +0300)]
Shorten some test names

Paths to object files generated from them were too long and caused errors

6 years agoFix path to x.py in configure.py script
Alexander Kuleshov [Tue, 10 Oct 2017 10:36:53 +0000 (16:36 +0600)]
Fix path to x.py in configure.py script

We may see a help message in the end of the output of the ./configure script:

$ ./configure
configure: processing command line
configure:
configure: build.configure-args := []
configure:
configure: writing `config.toml` in current directory
configure:
configure: run `python ./src/bootstrap/x.py --help`
configure:

but the x.py script is actually in the rust root directory and
executing of such help string will give us error:

$ python ./src/bootstrap/x.py --help
python: can't open file './src/bootstrap/x.py': [Errno 2] No such file
or directory

This patch fixes path to the x.py script in the output of the ./configure