]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoremove duplicate stubs
tinaun [Fri, 13 Oct 2017 06:00:45 +0000 (02:00 -0400)]
remove duplicate stubs

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 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 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 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 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 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 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 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

6 years agoAuto merge of #45169 - kennytm:rollup, r=kennytm
bors [Tue, 10 Oct 2017 16:55:39 +0000 (16:55 +0000)]
Auto merge of #45169 - kennytm:rollup, r=kennytm

Rollup of 9 pull requests

- Successful merges: #44775, #45089, #45095, #45099, #45101, #45108, #45116, #45135, #45146
- Failed merges:

6 years agoincr.comp.: Fix instability in CodegenUnitExt::items_in_deterministic_order().
Michael Woerister [Tue, 10 Oct 2017 15:11:08 +0000 (17:11 +0200)]
incr.comp.: Fix instability in CodegenUnitExt::items_in_deterministic_order().

6 years agoincr.comp.: Add missing match branch in HashStable impl for ty::RegionKind.
Michael Woerister [Tue, 10 Oct 2017 15:08:29 +0000 (17:08 +0200)]
incr.comp.: Add missing match branch in HashStable impl for ty::RegionKind.

6 years agoRollup merge of #45146 - petrochenkov:lessrec, r=estebank
kennytm [Tue, 10 Oct 2017 12:08:29 +0000 (20:08 +0800)]
Rollup merge of #45146 - petrochenkov:lessrec, r=estebank

Fix a bug in diagnostics for `x as usize < y`

Also improve diagnostics for `x as usize << y`.

Fixes https://github.com/rust-lang/rust/issues/44406
r? @estebank

6 years agoRollup merge of #45135 - michaelwoerister:move-incr-comp-with-macro-export, r=alexcri...
kennytm [Tue, 10 Oct 2017 12:08:28 +0000 (20:08 +0800)]
Rollup merge of #45135 - michaelwoerister:move-incr-comp-with-macro-export, r=alexcrichton

incr.comp.: Move macro-export test case to src/test/incremental.

`compile-fail/incr_comp_with_macro_export.rs` was trying to role its own incremental compilation setup. This started to cause problems. There's no reason to not just make this a regular `src/test/incremental` test.

Fixes #45062.

6 years agoRollup merge of #45116 - johnthagen:typo-fix, r=alexcrichton
kennytm [Tue, 10 Oct 2017 12:08:27 +0000 (20:08 +0800)]
Rollup merge of #45116 - johnthagen:typo-fix, r=alexcrichton

Fix typos

6 years agoRollup merge of #45108 - phil-opp:patch-2, r=japaric
kennytm [Tue, 10 Oct 2017 12:08:26 +0000 (20:08 +0800)]
Rollup merge of #45108 - phil-opp:patch-2, r=japaric

Fix data-layout field in x86_64-unknown-linux-gnu.json test file

The current data-layout causes the following error:

> rustc: /checkout/src/llvm/lib/CodeGen/MachineFunction.cpp:151: void llvm::MachineFunction::init(): Assertion `Target.isCompatibleDataLayout(getDataLayout()) && "Can't create a MachineFunction using a Module with a " "Target-incompatible DataLayout attached\n"' failed.

The new value was generated according to [this comment by @japaric](https://github.com/rust-lang/rust/issues/31367#issuecomment-213595571).

6 years agoRollup merge of #45101 - lfairy:proc-macro-string-escape, r=jseyfried
kennytm [Tue, 10 Oct 2017 12:08:25 +0000 (20:08 +0800)]
Rollup merge of #45101 - lfairy:proc-macro-string-escape, r=jseyfried

Make the result of `Literal::string()` more readable

Closes #45076

6 years agoRollup merge of #45099 - mikeyhew:fix-astconv-self-type-comments, r=nikomatsakis
kennytm [Tue, 10 Oct 2017 12:08:24 +0000 (20:08 +0800)]
Rollup merge of #45099 - mikeyhew:fix-astconv-self-type-comments, r=nikomatsakis

Update comments referring to old check_method_self_type

I was browsing the code base, trying to figure out how #44874 could be implemented, and noticed some comments that were out of date and a bit misleading (`check_method_self_type` has since been renamed to `check_method_receiver`). Thought it would be an easy first contribution to Rust!

6 years agoRollup merge of #45095 - bluss:discriminant-send-sync, r=alexcrichton
kennytm [Tue, 10 Oct 2017 12:08:23 +0000 (20:08 +0800)]
Rollup merge of #45095 - bluss:discriminant-send-sync, r=alexcrichton

Ensure std::mem::Discriminant is Send + Sync

`PhantomData<*const T>` has the implication of Send / Syncness following
the *const T type, but the discriminant should always be Send and Sync.

Use `PhantomData<fn() -> T>` which has the same variance in T, but is Send + Sync

6 years agoRollup merge of #45089 - rkruppe:master, r=bluss
kennytm [Tue, 10 Oct 2017 12:08:22 +0000 (20:08 +0800)]
Rollup merge of #45089 - rkruppe:master, r=bluss

Fix typo in codegen test

Without the `:`, the `CHECK-NOT` is ignored by FileCheck, making the line not test anything.

6 years agoRollup merge of #44775 - MaloJaffre:debug-struct, r=sfackler
kennytm [Tue, 10 Oct 2017 12:08:20 +0000 (20:08 +0800)]
Rollup merge of #44775 - MaloJaffre:debug-struct, r=sfackler

Refactor to use `debug_struct` in several Debug impls

Also use `pad` and derive `Debug` for `Edge`.

Fixes #44771.

6 years agoAuto merge of #45170 - rust-lang:aphs-no-unsynchronised-llvm-err-global, r=alexcrichton
bors [Tue, 10 Oct 2017 14:26:13 +0000 (14:26 +0000)]
Auto merge of #45170 - rust-lang:aphs-no-unsynchronised-llvm-err-global, r=alexcrichton

Band-aid fix to stop race conditions in llvm errors

This is a big hammer, but should be effective at completely removing a
few issues, including inconsistent error messages and segfaults when
LLVM workers race to report results

`LLVM_THREAD_LOCAL` has been present in LLVM since 8 months before 3.7
(the earliest supported LLVM version that Rust can use)

Maybe fixes #43402 (third time lucky?)

r? @alexcrichton

------

You can see that in https://github.com/rust-lang/rust/blob/5f578dfad0dd5d43b28eff71a7e857d10c3f55fe/src/librustc_trans/back/write.rs#L75-L100 there's a small window where the static global error message (made thread local in this PR) could be altered by another thread.

Note that we can't use `thread_local` because gcc 4.7 (permitted according to the readme) does not support it.

Maybe ideally all the functions should be modified to not use a global, but this PR makes things deterministic at least. My only hesitation is whether errors are checked in different threads to where they occur, but I figure that's probably unlikely (and is less bad than racing code).

As an aside, segfault evidence before this patch when I was doing some debugging:
```
$ while grep 'No such file or directory' log2; do RUST_LOG=debug ./build/x86_64-unknown-linux-gnu/stage1/bin/rustc -o "" y.rs >log2 2>&1; done
error: could not write output to : No such file or directory
error: could not write output to : No such file or directory
error: could not write output to : No such file or directory
error: could not write output to : No such file or directory
error: could not write output to : No such file or directory
error: could not write output to : No such file or directory
error: could not write output to : No such file or directory
Segmentation fault (core dumped)
error: could not write output to : No such file or directory
error: could not write output to : No such file or directory
```

6 years agoUpgrade some comments to doc comments
Oliver Schneider [Tue, 10 Oct 2017 14:12:11 +0000 (16:12 +0200)]
Upgrade some comments to doc comments

6 years agoFix a mistake in release notes for 1.21.0
Vadim Petrochenkov [Tue, 10 Oct 2017 12:45:04 +0000 (15:45 +0300)]
Fix a mistake in release notes for 1.21.0

Also reorder changes to put the important one first.

6 years agoBand-aid fix to stop race conditions in llvm errors
Aidan Hobson Sayers [Tue, 10 Oct 2017 12:11:28 +0000 (13:11 +0100)]
Band-aid fix to stop race conditions in llvm errors

This is a big hammer, but should be effective at completely removing a
few issues, including inconsistent error messages and segfaults when
LLVM workers race to report results

LLVM_THREAD_LOCAL has been present in LLVM since 8 months before 3.7
(the earliest supported LLVM version that Rust can use)

Maybe fixes #43402 (third time lucky?)

6 years agoAuto merge of #44877 - nvzqz:box-conversions, r=alexcrichton
bors [Tue, 10 Oct 2017 11:07:25 +0000 (11:07 +0000)]
Auto merge of #44877 - nvzqz:box-conversions, r=alexcrichton

Improve raw Box conversions

This PR has two goals:

- Reduce use of `mem::transmute` in `Box` conversions

  I understand that `mem::transmute`-ing non `#[repr(C)]` types is implementation-defined behavior.  This may not matter within the reference implementation of Rust, but I believe it's important to remain consistent. For example, I noticed that `str::from_utf8_unchecked` went from using `mem::transmute` to using pointer casts.

- Make `Box` pointer conversions more straightforward regarding `Unique`

6 years agounstable book: fn_traits
tinaun [Tue, 10 Oct 2017 08:51:39 +0000 (04:51 -0400)]
unstable book: fn_traits

6 years agounstable book: unboxed_closures
tinaun [Tue, 10 Oct 2017 08:42:59 +0000 (04:42 -0400)]
unstable book: unboxed_closures

6 years agoAuto merge of #45141 - kennytm:rollup, r=kennytm
bors [Tue, 10 Oct 2017 08:30:10 +0000 (08:30 +0000)]
Auto merge of #45141 - kennytm:rollup, r=kennytm

Rollup of 9 pull requests

- Successful merges: #44962, #45051, #45091, #45106, #45117, #45118, #45120, #45125, #45136
- Failed merges:

6 years agounstable book: OIBIT
tinaun [Tue, 10 Oct 2017 08:20:49 +0000 (04:20 -0400)]
unstable book: OIBIT

6 years agoRename test Linux target to avoid conflict with built-in target
Philipp Oppermann [Tue, 10 Oct 2017 08:05:29 +0000 (10:05 +0200)]
Rename test Linux target to avoid conflict with built-in target

It seems like the file wasn't actually used, since there is a built-in target with the same name. See https://github.com/rust-lang/rust/pull/45108#issuecomment-335173165 for more details.

6 years agoAuto merge of #44822 - frewsxcv:frewsxcv-eprintln, r=Kimundi
bors [Tue, 10 Oct 2017 02:54:14 +0000 (02:54 +0000)]
Auto merge of #44822 - frewsxcv:frewsxcv-eprintln, r=Kimundi

Migrate to eprint/eprintln macros where appropriate.

None

6 years agoRefactor to use `debug_struct` in several Debug impls
Malo Jaffré [Mon, 9 Oct 2017 18:09:08 +0000 (20:09 +0200)]
Refactor to use `debug_struct` in several Debug impls

Fixes #44771.

6 years agoUpdate let-expressions.rs
gaurikholkar [Fri, 6 Oct 2017 19:44:44 +0000 (01:14 +0530)]
Update let-expressions.rs

6 years agoFix a bug in diagnostics for `x as usize < y`
Vadim Petrochenkov [Mon, 9 Oct 2017 17:02:17 +0000 (20:02 +0300)]
Fix a bug in diagnostics for `x as usize < y`

Improve diagnostics for `x as usize << y`

6 years agoAuto merge of #45111 - aidanhs:aphs-bubble-worker-failures, r=alexcrichton
bors [Mon, 9 Oct 2017 16:31:15 +0000 (16:31 +0000)]
Auto merge of #45111 - aidanhs:aphs-bubble-worker-failures, r=alexcrichton

Don't panic in the coordinator thread, bubble up the failure

Fixes #43402 (take 2)

Followup to #45019, this makes the coordinator thread not panic on worker failures since they can be reported reasonably back in the main thread.

The output also now has no evidence of backtraces at all, unlike the previous PR:
```
$ ./build/x86_64-unknown-linux-gnu/stage1/bin/rustc -o "" x.rs
error: could not write output to : No such file or directory

error: aborting due to previous error
```

r? @alexcrichton

6 years agoRollup merge of #45136 - johnthagen:patch-1, r=QuietMisdreavus
kennytm [Mon, 9 Oct 2017 16:16:28 +0000 (00:16 +0800)]
Rollup merge of #45136 - johnthagen:patch-1, r=QuietMisdreavus

Clarify RAM usage during build in README

The sentence wasn't immediately clear if it meant RAM or disk space before reading the next sentence.

I think this helps clarify it.

6 years agoRollup merge of #45125 - bleibig:grammar-update, r=alexcrichton
kennytm [Mon, 9 Oct 2017 16:16:27 +0000 (00:16 +0800)]
Rollup merge of #45125 - bleibig:grammar-update, r=alexcrichton

Update grammar to parse current rust syntax

Mainly addressing #32723. This PR updates the bison grammar so that it can parse the current rust syntax, except for feature-gated syntax additions. It has been tested with all the tests in run-pass.

The grammar in this repo doesn't have build logic anymore, but you can test it out in https://github.com/bleibig/rust-grammar, which has all of what's in this PR. If you are interested in having build logic and grammar tests again, I can look into implementing that as well.

I'm aware that things are somewhat undecided as to what an official rust grammar should be from the discussion in #30942. With this PR we can go back to having an up-to-date flex/bison based grammar, but the rustypop grammar looks interesting as well.

6 years agoRollup merge of #45120 - johnthagen:none-identity-test, r=sfackler
kennytm [Mon, 9 Oct 2017 16:16:26 +0000 (00:16 +0800)]
Rollup merge of #45120 - johnthagen:none-identity-test, r=sfackler

Use identity operator `is` when comparing to None

This is very minor, but idiomatic Python code uses `is` for comparisons to `None`. This is because semantically we want to compare to the "identity" of `None`, not its value.

See [PEP8 for details](https://www.python.org/dev/peps/pep-0008/#programming-recommendations).

6 years agoRollup merge of #45118 - johnthagen:fix-section-key-name, r=alexcrichton
kennytm [Mon, 9 Oct 2017 16:16:25 +0000 (00:16 +0800)]
Rollup merge of #45118 - johnthagen:fix-section-key-name, r=alexcrichton

Fix variable name reference

As best I can tell, this was a typo due to how similar it looks to the function above it. PyCharm found this as a unbound local variable.

6 years agoRollup merge of #45117 - johnthagen:fix-str-raise, r=alexcrichton
kennytm [Mon, 9 Oct 2017 16:16:24 +0000 (00:16 +0800)]
Rollup merge of #45117 - johnthagen:fix-str-raise, r=alexcrichton

Fix raising a bare str as an exception in configure.py

Raising a bare `str` has been [deprecated since Python 2.5](https://docs.python.org/2/whatsnew/2.5.html#pep-352-exceptions-as-new-style-classes).

On Python 2.7 it produces the following error:

```
TypeError: exceptions must be old-style classes or derived from BaseException, not str
```

For maximum compatibility with Python 2.7 and 3.x, we wrap the error message in `RuntimeError` which derives from `Exception`.

6 years agoRollup merge of #45106 - Pirh:process_stdio_docs, r=dtolnay
kennytm [Mon, 9 Oct 2017 16:16:23 +0000 (00:16 +0800)]
Rollup merge of #45106 - Pirh:process_stdio_docs, r=dtolnay

Add links and examples for std::process::Stdio

As per #29370

6 years agoRollup merge of #45091 - kennytm:fix-45086, r=michaelwoerister
kennytm [Mon, 9 Oct 2017 16:16:22 +0000 (00:16 +0800)]
Rollup merge of #45091 - kennytm:fix-45086, r=michaelwoerister

debuginfo-test: Fix #45086.

Fixes #45086, where all debuginfo-lldb fails when using LLDB from Xcode 9.

6 years agoRollup merge of #45051 - k0pernicus:master, r=michaelwoerister
kennytm [Mon, 9 Oct 2017 16:16:21 +0000 (00:16 +0800)]
Rollup merge of #45051 - k0pernicus:master, r=michaelwoerister

Debugger pretty printer files are take into account in test execution time-stamping

This PR is proposed to solve the issue #45022.

6 years agoRollup merge of #44962 - shepmaster:no-ignore-result, r=steveklabnik
kennytm [Mon, 9 Oct 2017 16:16:19 +0000 (00:16 +0800)]
Rollup merge of #44962 - shepmaster:no-ignore-result, r=steveklabnik

Don't encourage people to ignore threading errors in the docs

6 years agoincr.comp.: Add some documentation to force_from_dep_node().
Michael Woerister [Mon, 9 Oct 2017 15:29:59 +0000 (17:29 +0200)]
incr.comp.: Add some documentation to force_from_dep_node().

6 years agolet rustdoc print the crate version into docs
QuietMisdreavus [Mon, 2 Oct 2017 23:29:03 +0000 (18:29 -0500)]
let rustdoc print the crate version into docs

6 years agoClarify RAM usage during build
johnthagen [Mon, 9 Oct 2017 14:02:50 +0000 (10:02 -0400)]
Clarify RAM usage during build

6 years agoAuto merge of #45075 - alexcrichton:inline-less, r=michaelwoerister
bors [Mon, 9 Oct 2017 14:00:12 +0000 (14:00 +0000)]
Auto merge of #45075 - alexcrichton:inline-less, r=michaelwoerister

rustc: Don't inline in CGUs at -O0

This commit tweaks the behavior of inlining functions into multiple codegen
units when rustc is compiling in debug mode. Today rustc will unconditionally
treat `#[inline]` functions by translating them into all codegen units that
they're needed within, marking the linkage as `internal`. This commit changes
the behavior so that in debug mode (compiling at `-O0`) rustc will instead only
translate `#[inline]` functions into *one* codegen unit, forcing all other
codegen units to reference this one copy.

The goal here is to improve debug compile times by reducing the amount of
translation that happens on behalf of multiple codegen units. It was discovered
in #44941 that increasing the number of codegen units had the adverse side
effect of increasing the overal work done by the compiler, and the suspicion
here was that the compiler was inlining, translating, and codegen'ing more
functions with more codegen units (for example `String` would be basically
inlined into all codegen units if used). The strategy in this commit should
reduce the cost of `#[inline]` functions to being equivalent to one codegen
unit, which is only translating and codegen'ing inline functions once.

Collected [data] shows that this does indeed improve the situation from [before]
as the overall cpu-clock time increases at a much slower rate and when pinned to
one core rustc does not consume significantly more wall clock time than with one
codegen unit.

One caveat of this commit is that the symbol names for inlined functions that
are only translated once needed some slight tweaking. These inline functions
could be translated into multiple crates and we need to make sure the symbols
don't collideA so the crate name/disambiguator is mixed in to the symbol name
hash in these situations.

[data]: https://github.com/rust-lang/rust/issues/44941#issuecomment-334880911
[before]: https://github.com/rust-lang/rust/issues/44941#issuecomment-334583384

6 years agoincr.comp.: Move macro-export test case to src/test/incremental.
Michael Woerister [Mon, 9 Oct 2017 13:38:51 +0000 (15:38 +0200)]
incr.comp.: Move macro-export test case to src/test/incremental.

6 years agoNew rebase for the issue #45022
k0pernicus [Thu, 5 Oct 2017 20:34:49 +0000 (22:34 +0200)]
New rebase for the issue #45022

Add pretty printer files into test execution time-stamping

Move find_rust_src_path() as a method for Config

Move find_rust_src_path() as a method for Config

Call find_rust_src_path() from Config

Move find_rust_src_path() from common.rs to header.rs

Add pretty printer files as relevant files to get up_to_date information

Remove dead code

Add two pretty printer files to keep a close watch on

Move find_rust_src_path() as a method for Config

Move find_rust_src_path() as a method for Config

Call find_rust_src_path() from Config

Move find_rust_src_path() from common.rs to header.rs

Remove dead code

Add two pretty printer files to keep a close watch on

6 years agoAuto merge of #45064 - alexcrichton:reduce-codegen-units, r=michaelwoerister
bors [Mon, 9 Oct 2017 08:49:38 +0000 (08:49 +0000)]
Auto merge of #45064 - alexcrichton:reduce-codegen-units, r=michaelwoerister

rustc: Reduce default CGUs to 16

Rationale explained in the included comment as well as #44941

6 years agoAuto merge of #45041 - est31:master, r=alexcrichton
bors [Mon, 9 Oct 2017 04:59:02 +0000 (04:59 +0000)]
Auto merge of #45041 - est31:master, r=alexcrichton

Remove support for the PNaCl target (le32-unknown-nacl)

This removes support for the `le32-unknown-nacl` target which is currently supported by rustc on tier 3. Despite the "nacl" in the name, the target doesn't output native code (x86, ARM, MIPS), instead it outputs binaries in the PNaCl format.

There are two reasons for the removal:

* Google [has announced](https://blog.chromium.org/2017/05/goodbye-pnacl-hello-webassembly.html) deprecation of the PNaCl format. The suggestion is to migrate to wasm. Happens we already have a wasm backend!
* Our PNaCl LLVM backend is provided by the fastcomp patch set that the LLVM fork used by rustc contains in addition to vanilla LLVM (`src/llvm/lib/Target/JSBackend/NaCl`). Upstream LLVM doesn't have PNaCl support. Removing PNaCl support will enable us to move away from fastcomp (#44006) and have a lighter set of patches on top of upstream LLVM inside our LLVM fork. This will help distribution packagers of Rust.

Fixes #42420

6 years agoAuto merge of #45035 - alexcrichton:no-empty, r=michaelwoerister
bors [Mon, 9 Oct 2017 02:42:30 +0000 (02:42 +0000)]
Auto merge of #45035 - alexcrichton:no-empty, r=michaelwoerister

rustc: Don't create empty codegen units

This'll end up just creating a bunch of object files that otherwise wouldn't
exist, so skip that extra work if possible.

6 years agoUpdate grammar to parse current rust syntax
Brian Leibig [Mon, 9 Oct 2017 01:46:42 +0000 (18:46 -0700)]
Update grammar to parse current rust syntax

6 years agoRemove Queue::new.
Joshua Lockerman [Fri, 29 Sep 2017 19:58:11 +0000 (15:58 -0400)]
Remove Queue::new.

6 years agoAuto merge of #45033 - eddyb:capture-me-not, r=nikomatsakis
bors [Mon, 9 Oct 2017 00:18:51 +0000 (00:18 +0000)]
Auto merge of #45033 - eddyb:capture-me-not, r=nikomatsakis

rustc_trans: do not set NoCapture for anonymous lifetime &T arguments.

This was both unsound (due to lifetime elision & unsafe code) and dead code (we erase lifetimes).

r? @nikomatsakis

6 years agoFix PEP8 style issues in bootstrap code
johnthagen [Mon, 9 Oct 2017 00:08:11 +0000 (20:08 -0400)]
Fix PEP8 style issues in bootstrap code

6 years agoUse identity operator `is` when comparing to None
johnthagen [Sun, 8 Oct 2017 23:46:58 +0000 (19:46 -0400)]
Use identity operator `is` when comparing to None

6 years agoFix variable name reference
johnthagen [Sun, 8 Oct 2017 23:36:37 +0000 (19:36 -0400)]
Fix variable name reference

6 years agoFix trying to raise a bare str as an exception. This has been deprecated since Python 2.5
johnthagen [Sun, 8 Oct 2017 23:28:21 +0000 (19:28 -0400)]
Fix trying to raise a bare str as an exception. This has been deprecated since Python 2.5

6 years agoFix typo in README
johnthagen [Sun, 8 Oct 2017 23:15:17 +0000 (19:15 -0400)]
Fix typo in README

6 years agoFix typo in comment
johnthagen [Sun, 8 Oct 2017 23:11:34 +0000 (19:11 -0400)]
Fix typo in comment

6 years agocfg out Queue::new for emscripten
JLockerman [Sun, 8 Oct 2017 22:40:45 +0000 (18:40 -0400)]
cfg out Queue::new for emscripten

Queue::new is only used is tests atm, which causes warnings on emscripten which does not run queue tests.

6 years agoDon't panic in the coordinator thread, bubble up the failure
Aidan Hobson Sayers [Sun, 8 Oct 2017 20:57:03 +0000 (21:57 +0100)]
Don't panic in the coordinator thread, bubble up the failure

Fixes #43402 (take 2)

6 years agoAuto merge of #45030 - raggi:zircon-handle-t, r=alexcrichton
bors [Sun, 8 Oct 2017 20:36:57 +0000 (20:36 +0000)]
Auto merge of #45030 - raggi:zircon-handle-t, r=alexcrichton

zircon: the type of zx_handle_t is now unsigned

This is a kernel ABI change that landed today. I noticed some other ABI
issues and have left a note to cleanup once they are better defined.

6 years agoAuto merge of #45016 - pnkfelix:mir-borrowck-gather-and-signal-move-errors, r=nikomat...
bors [Sun, 8 Oct 2017 18:12:26 +0000 (18:12 +0000)]
Auto merge of #45016 - pnkfelix:mir-borrowck-gather-and-signal-move-errors, r=nikomatsakis

MIR-borrowck: gather and signal any move errors

When building up the `MoveData` structure for a given MIR, also accumulate any erroneous actions, and then report all of those errors when the construction is complete.

This PR adds a host of move-related error constructor methods to `trait BorrowckErrors`. I think I got the notes right; but we should plan to audit all of the notes before turning MIR-borrowck on by default.

Fix #44830

6 years agoRemove ./ prefix from relative URLs
Pirh [Sun, 8 Oct 2017 18:09:16 +0000 (19:09 +0100)]
Remove ./ prefix from relative URLs

Also remove trailing whitespace to pass tidy checks.

6 years agoFix data-layout field
Philipp Oppermann [Sun, 8 Oct 2017 16:19:51 +0000 (18:19 +0200)]
Fix data-layout field

The value was generated according to [this comment by @japaric](https://github.com/rust-lang/rust/issues/31367#issuecomment-213595571).

6 years agoAdd links and examples for std::process::Stdio
Pirh [Sun, 8 Oct 2017 16:12:14 +0000 (17:12 +0100)]
Add links and examples for std::process::Stdio

As per #29370

6 years agoTurn `trans_fulfill_obligation` into a query
Wesley Wiser [Fri, 29 Sep 2017 03:13:43 +0000 (23:13 -0400)]
Turn `trans_fulfill_obligation` into a query

Part of #44891

6 years agofix documentation typo
Cameron Steffen [Sun, 8 Oct 2017 15:40:52 +0000 (10:40 -0500)]
fix documentation typo

6 years agoFix tests
Wonwoo Choi [Mon, 2 Oct 2017 17:04:02 +0000 (02:04 +0900)]
Fix tests

6 years agoAuto merge of #45020 - MaloJaffre:needs-test, r=alexcrichton
bors [Sun, 8 Oct 2017 14:44:12 +0000 (14:44 +0000)]
Auto merge of #45020 - MaloJaffre:needs-test, r=alexcrichton

Fix some E-needstest issues.

Also ignore `attr-on-trait` test on stage-1 to keep `./x.py test --stage 1` successful.

Fixes #30355.
Fixes #33241.
Fixes #36400.
Fixes #37887.
Fixes #44578.

6 years agoDon't encourage people to ignore threading errors in the docs
Jake Goulding [Sun, 1 Oct 2017 18:55:58 +0000 (14:55 -0400)]
Don't encourage people to ignore threading errors in the docs