]> git.lizzy.rs Git - rust.git/log
rust.git
7 years agoRollup merge of #41981 - gamazeps:thread-detach, r=frewsxcv
Mark Simulacrum [Fri, 2 Jun 2017 15:10:41 +0000 (09:10 -0600)]
Rollup merge of #41981 - gamazeps:thread-detach, r=frewsxcv

[Doc] Expands `detach` documentation in `thread::JoinHande`.

Part of #29378 .

- Adds an example of a thread detaching.
- Expands what `detaching` means.

r? @steveklabnik

7 years agoAuto merge of #42128 - kennytm:travis-folder, r=alexcrichton
bors [Fri, 2 Jun 2017 12:14:14 +0000 (12:14 +0000)]
Auto merge of #42128 - kennytm:travis-folder, r=alexcrichton

Improve Travis CI log (travis_fold, colors)

Result looks like (https://travis-ci.org/rust-lang/rust/jobs/234614611):

<details><summary>Full page screenshot</summary>

![1-fullpage](https://cloud.githubusercontent.com/assets/103023/26302841/2627c354-3f18-11e7-9299-52a2088639af.jpg)

</details>

---

* Bring back colors on Travis, which was disabled since #39036. Append `--color=always` to cargo when running in CI environment.
* Removed `set -x` from the shell scripts. The `retry` function already prints which command it is running, adding `-x` just adds noise to the output. Interesting information can be manually `echo`ed.
* Support `travis_fold`/`travis_time`. Matching pairs of these allow Travis CI to collapse the output in between. This greatly cut down the unnecessary "successful" output one need to scroll through before finding the failed statement.
* Passed `--quiet` to all tests, so tests not failing will not occupy a line of log, reducing bloat in the report.

Also include some minor changes, like changing the `script` of `.travis.yml` to execute a single-line command, so the log won't write the extremely long multi-line
`The command "if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then … " exited with 0` at the end.

7 years agoExpands `detach` documentation in `thread::JoinHande`.
Felix Raimundo [Sat, 13 May 2017 19:19:13 +0000 (21:19 +0200)]
Expands `detach` documentation in `thread::JoinHande`.

Part of #29378 .

- Adds an example of a thread detaching.
- Expands what `detaching` means.

7 years agoAuto merge of #41670 - scottmcm:slice-rotate, r=alexcrichton
bors [Fri, 2 Jun 2017 07:51:20 +0000 (07:51 +0000)]
Auto merge of #41670 - scottmcm:slice-rotate, r=alexcrichton

Add an in-place rotate method for slices to libcore

A helpful primitive for moving chunks of data around inside a slice.

For example, if you have a range selected and are drag-and-dropping it somewhere else (Example from [Sean Parent's talk](https://youtu.be/qH6sSOr-yk8?t=560)).

(If this should be an RFC instead of a PR, please let me know.)

Edit: changed example

7 years agoAuto merge of #41418 - hirschenberger:prefetch-intrinsic, r=nagisa
bors [Fri, 2 Jun 2017 04:58:09 +0000 (04:58 +0000)]
Auto merge of #41418 - hirschenberger:prefetch-intrinsic, r=nagisa

Adding support for the llvm `prefetch` intrinsic

Optimize `slice::binary_search` by using prefetching.

7 years agoci: Further tone down the test verbosity.
kennytm [Sun, 21 May 2017 20:27:47 +0000 (04:27 +0800)]
ci: Further tone down the test verbosity.

When `--quiet` is passed to rustbuild, suppress rustdoc test output unless
failure.

Added a `--quiet` flag to `tidy`, which suppresses the features table.

The actual `--quiet` flag is enabled in #42354.

Since details of failed tests will still be printed, and the name of slow
tests taking >60 to runtime will also be printed, the debugging difficulty
caused by information loss should be minimal; but it is very worthwhile to
keep the log under 10000 lines on Travis CI so that common errors can be
spotted without reading the raw log.

7 years agoChange .travis.yml's `language: minimal` to `generic`.
kennytm [Sun, 21 May 2017 11:29:42 +0000 (19:29 +0800)]
Change .travis.yml's `language: minimal` to `generic`.

There is no `minimal` language. Due to travis-ci/travis-ci#4895, it will
fallback to `ruby`, which certainly isn't what we want. `generic` is an
undocumented (travis-ci/docs-travis-ci-com#910) language that serves the
desired purpose.

7 years agoci: Improve log output (mainly Travis).
kennytm [Wed, 17 May 2017 16:33:20 +0000 (00:33 +0800)]
ci: Improve log output (mainly Travis).

* Bring back colors on Travis, which was disabled since #39036.
  Append --color=always to cargo when running in CI environment.
* Removed `set -x` in the shell scripts. The `retry` function already
  prints which command it is running, add `-x` just add noise to the
  output.
* Support travis_fold/travis_time. Matching pairs of these allow Travis CI
  to collapse the output in between. This greatly cut down the unnecessary
  "successful" output one need to scroll through before finding the failed
  statement.

7 years agoAdded --color flag to compiletest.
kennytm [Sat, 20 May 2017 16:35:53 +0000 (00:35 +0800)]
Added --color flag to compiletest.

7 years agoIgnore some folders.
kennytm [Fri, 19 May 2017 14:56:18 +0000 (22:56 +0800)]
Ignore some folders.

- /src/target -- created when trying to directly `cargo build` on a single
  package.

7 years agoAuto merge of #42281 - eddyb:well-adjusted, r=nikomatsakis
bors [Thu, 1 Jun 2017 11:34:13 +0000 (11:34 +0000)]
Auto merge of #42281 - eddyb:well-adjusted, r=nikomatsakis

Decompose Adjustment into smaller steps and remove the method map.

The method map held method callee information for:
* actual method calls (`x.f(...)`)
* overloaded unary, binary, indexing and call operators
* *every overloaded deref adjustment* (many can exist for each expression)

That last one was a historical ~~accident~~ hack, and part of the motivation for this PR, along with:
* a desire to compose adjustments more freely
* containing the autoderef logic better to avoid mutation within an inference snapshot
* not creating `TyFnDef` types which are incompatible with the original one
  * i.e. we used to take a`TyFnDef`'s `for<'a> &'a T -> &'a U` signature and instantiate `'a` using a region inference variable, *then* package the resulting `&'b T -> &'b U` signature in another `TyFnDef`, while keeping *the same* `DefId` and `Substs`
* to fix #3548 by explicitly writing autorefs for the RHS of comparison operators

Individual commits tell their own story, of "atomic" changes avoiding breaking semantics.

Future work based on this PR could include:
* removing the signature from `TyFnDef`, now that it's always "canonical"
  * some questions of variance remain, as subtyping *still* treats the signature differently
* moving part of the typeck logic for methods, autoderef and coercion into `rustc::traits`
* allowing LUB coercions (joining multiple expressions) to "stack up" many adjustments
* transitive coercions (e.g. reify or unsize after multiple steps of autoderef)

r? @nikomatsakis

7 years agoAuto merge of #42263 - alexcrichton:fix-copies, r=Mark-Simulacrum
bors [Thu, 1 Jun 2017 07:44:01 +0000 (07:44 +0000)]
Auto merge of #42263 - alexcrichton:fix-copies, r=Mark-Simulacrum

rustbuild: Fix copying duplicate crates into the sysroot

After compiling a project (e.g. libstd, libtest, or librustc) rustbuild needs to
copy over all artifacts into the sysroot of the compiler it's assembling.
Unfortunately rustbuild doesn't know precisely what files to copy! Today it has
a heuristic where it just looks at the most recent version of all files that
look like rlibs/dylibs and copies those over. This unfortunately leads to bugs
with different versions of the same crate as seen in #42261.

This commit updates rustbuild's strategy of copying artifacts to work off the
list of artifacts produced by `cargo build --message-format=json`. The build
system will now parse json messages coming out of Cargo to watch for files being
generated, and then it'll only copy over those precise files.

Note that there's still a bit of weird logic where Cargo prints that it's
creating `libstd.rlib` where we actually want `libstd-xxxxx.rlib`, so we still
do a bit of "most recent file" probing for those. This commit should take care
of the crates.io dependency issues, however, as they're all copied over
precisely.

Closes #42261

7 years agoAdding support for the llvm `prefetch` intrinsic
Falco Hirschenberger [Fri, 21 Apr 2017 07:00:34 +0000 (09:00 +0200)]
Adding support for the llvm `prefetch` intrinsic

Related to #37251

7 years agotests: fix fallout from changing the span of binop errors.
Eduard-Mihai Burtescu [Mon, 29 May 2017 11:55:54 +0000 (14:55 +0300)]
tests: fix fallout from changing the span of binop errors.

7 years agotests: fix fallout from empowering unused_allocation in comparisons.
Eduard-Mihai Burtescu [Sun, 28 May 2017 15:24:53 +0000 (18:24 +0300)]
tests: fix fallout from empowering unused_allocation in comparisons.

7 years agorustc: adjust the RHS of comparison operators instead of assuming autorefs.
Eduard-Mihai Burtescu [Sun, 28 May 2017 12:04:13 +0000 (15:04 +0300)]
rustc: adjust the RHS of comparison operators instead of assuming autorefs.

7 years agorustc: decompose Adjustment into a vector of adjustment steps.
Eduard-Mihai Burtescu [Sat, 27 May 2017 07:29:24 +0000 (10:29 +0300)]
rustc: decompose Adjustment into a vector of adjustment steps.

7 years agorustc: move autoref and unsize from Adjust::DerefRef to Adjustment.
Eduard-Mihai Burtescu [Sat, 20 May 2017 20:52:52 +0000 (23:52 +0300)]
rustc: move autoref and unsize from Adjust::DerefRef to Adjustment.

7 years agorustc: replace autoderefs' use of MethodCallee with OverloadedDeref.
Eduard-Mihai Burtescu [Sat, 20 May 2017 17:03:04 +0000 (20:03 +0300)]
rustc: replace autoderefs' use of MethodCallee with OverloadedDeref.

7 years agorustc: remove unused TypeFolder methods.
Eduard-Mihai Burtescu [Sat, 20 May 2017 14:52:05 +0000 (17:52 +0300)]
rustc: remove unused TypeFolder methods.

7 years agorustc: replace method_map with Def::Method and node_substs entries.
Eduard-Mihai Burtescu [Sat, 20 May 2017 13:11:07 +0000 (16:11 +0300)]
rustc: replace method_map with Def::Method and node_substs entries.

7 years agorustc: remove unnecessary ItemSubsts wrapper.
Eduard-Mihai Burtescu [Sat, 20 May 2017 07:26:08 +0000 (10:26 +0300)]
rustc: remove unnecessary ItemSubsts wrapper.

7 years agorustc: avoid using MethodCallee's signature where possible.
Eduard-Mihai Burtescu [Fri, 19 May 2017 09:46:34 +0000 (12:46 +0300)]
rustc: avoid using MethodCallee's signature where possible.

7 years agorustc: replace TyFnDef in MethodCallee with just the FnSig.
Eduard-Mihai Burtescu [Wed, 17 May 2017 19:51:18 +0000 (22:51 +0300)]
rustc: replace TyFnDef in MethodCallee with just the FnSig.

7 years agorustc: keep overloaded autoderef MethodCallee's in Adjust.
Eduard-Mihai Burtescu [Tue, 16 May 2017 21:54:04 +0000 (00:54 +0300)]
rustc: keep overloaded autoderef MethodCallee's in Adjust.

7 years agorustc: remove unused field of mc::Categorization::Deref.
Eduard-Mihai Burtescu [Tue, 16 May 2017 14:54:03 +0000 (17:54 +0300)]
rustc: remove unused field of mc::Categorization::Deref.

7 years agorustc: remove Copy from Adjustment and Adjust.
Eduard-Mihai Burtescu [Tue, 16 May 2017 09:03:09 +0000 (12:03 +0300)]
rustc: remove Copy from Adjustment and Adjust.

7 years agoAuto merge of #42348 - frewsxcv:rollup, r=frewsxcv
bors [Thu, 1 Jun 2017 05:24:11 +0000 (05:24 +0000)]
Auto merge of #42348 - frewsxcv:rollup, r=frewsxcv

Rollup of 9 pull requests

- Successful merges: #42136, #42275, #42286, #42297, #42302, #42306, #42314, #42324, #42347
- Failed merges:

7 years agoRollup merge of #42347 - frewsxcv:frewsxcv/improve-receiver-recv-timeout-docs, r...
Corey Farwell [Thu, 1 Jun 2017 04:09:27 +0000 (00:09 -0400)]
Rollup merge of #42347 - frewsxcv:frewsxcv/improve-receiver-recv-timeout-docs, r=QuietMisdreavus

Rewrite doc examples for `Receiver::recv_timeout`.

None

7 years agoRollup merge of #42324 - seanmonstar:41323-compare_const_impl, r=nikomatsakis
Corey Farwell [Thu, 1 Jun 2017 04:09:25 +0000 (00:09 -0400)]
Rollup merge of #42324 - seanmonstar:41323-compare_const_impl, r=nikomatsakis

associated_consts: check trait obligations and regionck for associated consts

Closes #41323

r? @nikomatsakis

7 years agoRollup merge of #42314 - jannic:patch-1, r=japaric
Corey Farwell [Thu, 1 Jun 2017 04:09:25 +0000 (00:09 -0400)]
Rollup merge of #42314 - jannic:patch-1, r=japaric

ARMv5 needs +strict-align

Without that flag, LLVM generates unaligned memory access instructions, which are not allowed on ARMv5.

For example, the 'hello world' example from `cargo --new` failed with:
```
$ ./hello
Hello, world!
thread 'main' panicked at 'assertion failed: end <= len', src/libcollections/vec.rs:1113
note: Run with `RUST_BACKTRACE=1` for a backtrace.
```

I traced this error back to the following assembler code in `BufWriter::flush_buf`:
```
    6f44:       e28d0018        add     r0, sp, #24
[...]
    6f54:       e280b005        add     fp, r0, #5
[...]
    7018:       e5cd001c        strb    r0, [sp, #28]
    701c:       e1a0082a        lsr     r0, sl, #16
    7020:       03a01001        moveq   r1, #1
    7024:       e5cb0002        strb    r0, [fp, #2]
    7028:       e1cba0b0        strh    sl, [fp]
```

Note that `fp` points to `sp + 29`, so the three `str*`-instructions should fill up a 32bit - value at `sp + 28`, which is later used as the value `n` in `Ok(n) => written += n`. This doesn't work on ARMv5 as the `strh` can't write to the unaligned contents of `fp`, so the upper bits of `n` won't get cleared, leading to the assertion failure in Vec::drain.

With `+strict-align`, the code works as expected.

7 years agoRollup merge of #42306 - efyang:rls-packaging, r=alexcrichton
Corey Farwell [Thu, 1 Jun 2017 04:09:24 +0000 (00:09 -0400)]
Rollup merge of #42306 - efyang:rls-packaging, r=alexcrichton

Add the RLS to .exe, .msi, and .pkg installers

This directly addresses issue #42157, adding the RLS as a non-default component in the mentioned installers. The windows installers appear to have the right functionality added, but I don't have a machine that runs OSX, so it would be great if someone could test whether my .pkg commit adds the RLS correctly. The final commit also fixes some formatting issues I'd noticed while working on the installers, but I don't know if that's within the scope of this PR, so input would be appreciated.

7 years agoRollup merge of #42302 - GuillaumeGomez:new-error-codes-next, r=Susurrus
Corey Farwell [Thu, 1 Jun 2017 04:09:23 +0000 (00:09 -0400)]
Rollup merge of #42302 - GuillaumeGomez:new-error-codes-next, r=Susurrus

New error codes next

Part #42229.
To be merged after #42264.

cc @Susurrus

7 years agoRollup merge of #42297 - tschottdorf:proj-ty, r=nikomatsakis
Corey Farwell [Thu, 1 Jun 2017 04:09:22 +0000 (00:09 -0400)]
Rollup merge of #42297 - tschottdorf:proj-ty, r=nikomatsakis

Upgrade ProjectionTy's Name to a DefId

Part of #42171, in preparation for downgrading the contained `TraitRef` to
only its `substs`.

Some inline questions in the diff. Look for `FIXME(tschottdorf)`. These comments
should be addressed before merging.

7 years agoRollup merge of #42286 - ollie27:rustdoc_assoc_const, r=GuillaumeGomez
Corey Farwell [Thu, 1 Jun 2017 04:09:21 +0000 (00:09 -0400)]
Rollup merge of #42286 - ollie27:rustdoc_assoc_const, r=GuillaumeGomez

rustdoc: Cleanup associated const value rendering

Rather than (ab)using Debug for outputting the type in plain text use the
alternate format parameter which already does exactly that. This fixes
type parameters for example which would output raw HTML.

Also cleans up adding parens around references to trait objects.

7 years agoRollup merge of #42275 - scottmcm:try-trait, r=nikomatsakis
Corey Farwell [Thu, 1 Jun 2017 04:09:20 +0000 (00:09 -0400)]
Rollup merge of #42275 - scottmcm:try-trait, r=nikomatsakis

Lower `?` to `Try` instead of `Carrier`

The easy parts of https://github.com/rust-lang/rfcs/pull/1859, whose FCP completed without further comments.

Just the trait and the lowering -- neither the error message improvements nor the insta-stable impl for Option nor exhaustive docs.

Based on a [github search](https://github.com/search?l=rust&p=1&q=question_mark_carrier&type=Code&utf8=%E2%9C%93), this will break the following:

- https://github.com/pfpacket/rust-9p/blob/00206e34c680198a0ac7c2f066cc2954187d4fac/src/serialize.rs#L38
- https://github.com/peterdelevoryas/bufparse/blob/b1325898f4fc2c67658049196c12da82548af350/src/result.rs#L50

The other results appear to be files from libcore or its tests.  I could also leave Carrier around after stage0 and `impl<T:Carrier> Try for T` if that would be better.

r? @nikomatsakis

Edit: Oh, and it might accidentally improve perf, based on https://github.com/rust-lang/rust/issues/37939#issuecomment-265803670, since `Try::into_result` for `Result` is an obvious no-op, unlike `Carrier::translate`.

7 years agoRollup merge of #42136 - petrochenkov:oldhard, r=nikomatsakis
Corey Farwell [Thu, 1 Jun 2017 04:09:19 +0000 (00:09 -0400)]
Rollup merge of #42136 - petrochenkov:oldhard, r=nikomatsakis

Turn sufficiently old compatibility lints into hard errors

It's been almost 7 months since https://github.com/rust-lang/rust/pull/36894 was merged, so it's time to take the next step.

[breaking-change], needs crater run.

PRs/issues submitted to affected crates:
https://github.com/alexcrichton/ctest/pull/17
https://github.com/Sean1708/rusty-cheddar/pull/55
https://github.com/m-r-r/helianto/pull/3
https://github.com/azdle/virgil/pull/1
https://github.com/rust-locale/rust-locale/issues/24
https://github.com/mneumann/acyclic-network-rs/pull/1
https://github.com/reem/rust-typemap/pull/38

cc https://internals.rust-lang.org/t/moving-forward-on-forward-compatibility-lints/4204
cc https://github.com/rust-lang/rust/issues/34537 https://github.com/rust-lang/rust/issues/36887
Closes https://github.com/rust-lang/rust/issues/36886
Closes https://github.com/rust-lang/rust/issues/36888
Closes https://github.com/rust-lang/rust/issues/36890
Closes https://github.com/rust-lang/rust/issues/36891
Closes https://github.com/rust-lang/rust/issues/36892
r? @nikomatsakis

7 years agoRewrite doc examples for `Receiver::recv_timeout`.
Corey Farwell [Thu, 1 Jun 2017 03:01:55 +0000 (23:01 -0400)]
Rewrite doc examples for `Receiver::recv_timeout`.

7 years agoAuto merge of #42336 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
bors [Wed, 31 May 2017 21:14:02 +0000 (21:14 +0000)]
Auto merge of #42336 - Mark-Simulacrum:rollup, r=Mark-Simulacrum

Rollup of 7 pull requests

- Successful merges: #42126, #42196, #42252, #42277, #42315, #42329, #42330
- Failed merges:

7 years agorustdoc: Cleanup associated const value rendering
Oliver Middleton [Wed, 31 May 2017 17:02:35 +0000 (18:02 +0100)]
rustdoc: Cleanup associated const value rendering

Rather than (ab)using Debug for outputting the type in plain text use the
alternate format parameter which already does exactly that. This fixes
type parameters for example which would output raw HTML.

Also cleans up adding parens around references to trait objects.

7 years agoRollup merge of #42330 - qnighy:macro-named-default, r=petrochenkov
Mark Simulacrum [Wed, 31 May 2017 16:52:50 +0000 (10:52 -0600)]
Rollup merge of #42330 - qnighy:macro-named-default, r=petrochenkov

Parse macros named "default" correctly.

Fixes #42292.

7 years agoRollup merge of #42329 - rap2hpoutre:patch-6, r=steveklabnik
Mark Simulacrum [Wed, 31 May 2017 16:52:49 +0000 (10:52 -0600)]
Rollup merge of #42329 - rap2hpoutre:patch-6, r=steveklabnik

fix links to "module-level documentation"

see https://github.com/rust-lang/rust/issues/42267

7 years agoRollup merge of #42315 - scottmcm:rangefrom-sizehint, r=alexcrichton
Mark Simulacrum [Wed, 31 May 2017 16:52:48 +0000 (10:52 -0600)]
Rollup merge of #42315 - scottmcm:rangefrom-sizehint, r=alexcrichton

RangeFrom should have an infinite size_hint

Before,
```rust
(0..).take(4).size_hint() == (0, Some(4))
```

With this change,
```rust
(0..).take(4).size_hint() == (4, Some(4))
```

7 years agoRollup merge of #42277 - citizen428:remove-crate-type-metadata, r=nikomatsakis
Mark Simulacrum [Wed, 31 May 2017 16:52:47 +0000 (10:52 -0600)]
Rollup merge of #42277 - citizen428:remove-crate-type-metadata, r=nikomatsakis

Remove --crate-type=metadata deprecation warning

Fixes #38640

7 years agoRollup merge of #42252 - stjepang:clarify-alignof-docs, r=nikomatsakis
Mark Simulacrum [Wed, 31 May 2017 16:52:46 +0000 (10:52 -0600)]
Rollup merge of #42252 - stjepang:clarify-alignof-docs, r=nikomatsakis

Clarify the docs for align_of and its variants

It's okay to have unaligned raw pointers and then use `ptr::write_unaligned` and `ptr::read_unaligned`.
However, using unaligned `&T` and `&mut T` would be undefined behavior.

The current documentation seems to indicate that everything has to be aligned, but in reality only references do. This PR changes the text of docs accordingly.

r? @sfackler

7 years agoRollup merge of #42196 - tommyip:explain_closure_err, r=nikomatsakis
Mark Simulacrum [Wed, 31 May 2017 16:52:45 +0000 (10:52 -0600)]
Rollup merge of #42196 - tommyip:explain_closure_err, r=nikomatsakis

Explain why a closure is `FnOnce` in closure errors.

Issue: #42065
@nikomatsakis Am I going the right direction with this?

~~I am stuck in a few bits:~~
~~1. How to trace the code to get the upvar instead of the original variable's span?~~
~~2. How to find the node id of the upvar where the move occured?~~

7 years agoRollup merge of #42126 - clarcharr:into_docs, r=steveklabnik
Mark Simulacrum [Wed, 31 May 2017 16:52:44 +0000 (10:52 -0600)]
Rollup merge of #42126 - clarcharr:into_docs, r=steveklabnik

Clarify docs on implementing Into.

This was suggested by @dtolnay in #40380.

This explicitly clarifies in what circumstances you should implement `Into` instead of `From`.

7 years agoUpgrade ProjectionTy's Name to a DefId
Tobias Schottdorf [Wed, 31 May 2017 16:35:13 +0000 (12:35 -0400)]
Upgrade ProjectionTy's Name to a DefId

Part of #42171, in preparation for downgrading the contained `TraitRef` to
only its `substs`.

7 years agoEmit proper expectation for the "default" keyword.
Masaki Hara [Wed, 31 May 2017 14:22:33 +0000 (23:22 +0900)]
Emit proper expectation for the "default" keyword.

7 years agoParse macros named "default" correctly.
Masaki Hara [Wed, 31 May 2017 10:24:01 +0000 (19:24 +0900)]
Parse macros named "default" correctly.

7 years agofix links to "module-level documentation"
Raphaël Huchet [Wed, 31 May 2017 09:38:19 +0000 (11:38 +0200)]
fix links to "module-level documentation"

7 years agoAdd some try_trait ramblings to the unstable book
Scott McMurray [Wed, 31 May 2017 09:16:01 +0000 (02:16 -0700)]
Add some try_trait ramblings to the unstable book

7 years agoUpdate closure errors to use `span_note`
Tommy Ip [Tue, 30 May 2017 23:07:09 +0000 (00:07 +0100)]
Update closure errors to use `span_note`

7 years agoAuto merge of #42318 - GuillaumeGomez:rustdoc-fix-signature, r=QuietMisdreavus
bors [Wed, 31 May 2017 08:48:16 +0000 (08:48 +0000)]
Auto merge of #42318 - GuillaumeGomez:rustdoc-fix-signature, r=QuietMisdreavus

Fix signature by adding parens when needed

Fixes #42299.

7 years agoGive the `try_trait` feature its own tracking issue
Scott McMurray [Wed, 31 May 2017 08:30:13 +0000 (01:30 -0700)]
Give the `try_trait` feature its own tracking issue

7 years agoassociated_consts: check trait obligations and regionck for associated consts
Sean McArthur [Wed, 31 May 2017 05:21:00 +0000 (22:21 -0700)]
associated_consts: check trait obligations and regionck for associated consts

Closes #41323

7 years agoFix signature by adding parens when needed
Guillaume Gomez [Tue, 30 May 2017 21:01:38 +0000 (23:01 +0200)]
Fix signature by adding parens when needed

7 years agoAdd 'the'
Stjepan Glavina [Tue, 30 May 2017 19:34:50 +0000 (21:34 +0200)]
Add 'the'

7 years agoTurn `invalid_type_param_default` into a lint again
Vadim Petrochenkov [Fri, 26 May 2017 22:52:25 +0000 (01:52 +0300)]
Turn `invalid_type_param_default` into a lint again

7 years agoTurn public reexporting of private extern crates into a lint again
Vadim Petrochenkov [Sun, 21 May 2017 12:50:38 +0000 (15:50 +0300)]
Turn public reexporting of private extern crates into a lint again

7 years agoTurn sufficiently old compatibility lints into hard errors
Vadim Petrochenkov [Sun, 21 May 2017 11:11:08 +0000 (14:11 +0300)]
Turn sufficiently old compatibility lints into hard errors

7 years agoAdd new error code
Guillaume Gomez [Mon, 29 May 2017 16:46:29 +0000 (18:46 +0200)]
Add new error code

7 years agoRangeFrom should have an infinite size_hint
Scott McMurray [Tue, 30 May 2017 16:15:25 +0000 (09:15 -0700)]
RangeFrom should have an infinite size_hint

This makes the size_hint from things like `take` more precise.

7 years agoARMv5 needs +strict-align
Jan Niehusmann [Tue, 30 May 2017 15:50:44 +0000 (17:50 +0200)]
ARMv5 needs +strict-align

Without that flag, LLVM generates unaligned memory access instructions, which are not allowed on ARMv5.

For example, the 'hello world' example from `cargo --new` failed with:
```
$ ./hello
Hello, world!
thread 'main' panicked at 'assertion failed: end <= len', src/libcollections/vec.rs:1113
note: Run with `RUST_BACKTRACE=1` for a backtrace.
```

I traced this error back to the following assembler code in `BufWriter::flush_buf`:
```
    6f44:       e28d0018        add     r0, sp, #24
[...]
    6f54:       e280b005        add     fp, r0, #5
[...]
    7018:       e5cd001c        strb    r0, [sp, #28]
    701c:       e1a0082a        lsr     r0, sl, #16
    7020:       03a01001        moveq   r1, #1
    7024:       e5cb0002        strb    r0, [fp, #2]
    7028:       e1cba0b0        strh    sl, [fp]
```

Note that `fp` points to `sp + 29`, so the three `str*`-instructions should fill up a 32bit - value at `sp + 28`, which is later used as the value `n` in `Ok(n) => written += n`. This doesn't work on ARMv5 as the `strh` can't write to the unaligned contents of `fp`, so the upper bits of `n` won't get cleared, leading to the assertion failure in Vec::drain.

With `+strict-align`, the code works as expected.

7 years agorustbuild: Fix copying duplicate crates into the sysroot
Alex Crichton [Sat, 27 May 2017 17:19:43 +0000 (10:19 -0700)]
rustbuild: Fix copying duplicate crates into the sysroot

After compiling a project (e.g. libstd, libtest, or librustc) rustbuild needs to
copy over all artifacts into the sysroot of the compiler it's assembling.
Unfortunately rustbuild doesn't know precisely what files to copy! Today it has
a heuristic where it just looks at the most recent version of all files that
look like rlibs/dylibs and copies those over. This unfortunately leads to bugs
with different versions of the same craet as seen in #42261.

This commit updates rustbuild's strategy of copying artifacts to work off the
list of artifacts produced by `cargo build --message-format=json`. The build
system will now parse json messages coming out of Cargo to watch for files being
generated, and then it'll only copy over those precise files.

Note that there's still a bit of weird logic where Cargo prints that it's
creating `libstd.rlib` where we actually want `libstd-xxxxx.rlib`, so we still
do a bit of "most recent file" probing for those. This commit should take care
of the crates.io dependency issues, however, as they're all copied over
precisely.

Closes #42261

7 years agoAuto merge of #42311 - bjorn3:patch-1, r=frewsxcv
bors [Tue, 30 May 2017 12:38:57 +0000 (12:38 +0000)]
Auto merge of #42311 - bjorn3:patch-1, r=frewsxcv

Syntax highlight all rust code in librustc/traits/README.md

Also replace `...` with `/*...*/`

7 years agoSyntax highlight all rust code in librustc/traits/README.md
bjorn3 [Tue, 30 May 2017 12:37:19 +0000 (14:37 +0200)]
Syntax highlight all rust code in librustc/traits/README.md

Also replace `...` with `/*...*/`

7 years agoUpdate fn_once-moved test
Tommy Ip [Tue, 30 May 2017 09:47:51 +0000 (10:47 +0100)]
Update fn_once-moved test

7 years agoExplain why closure is moved in error message
Tommy Ip [Sun, 28 May 2017 21:08:51 +0000 (22:08 +0100)]
Explain why closure is moved in error message

7 years agoAuto merge of #42283 - Mark-Simulacrum:issue-40341, r=pnkfelix
bors [Tue, 30 May 2017 05:01:10 +0000 (05:01 +0000)]
Auto merge of #42283 - Mark-Simulacrum:issue-40341, r=pnkfelix

Add note regarding parent module containing use statement.

Fixes #40341.

7 years agoFix formatting issues in Distribution.xml
Edward Yang [Tue, 30 May 2017 02:55:35 +0000 (21:55 -0500)]
Fix formatting issues in Distribution.xml

7 years agoAdd RLS to .pkg installer
Edward Yang [Tue, 30 May 2017 02:44:09 +0000 (21:44 -0500)]
Add RLS to .pkg installer

7 years agoAuto merge of #42282 - Mark-Simulacrum:issue-40342, r=arielb1
bors [Tue, 30 May 2017 02:38:18 +0000 (02:38 +0000)]
Auto merge of #42282 - Mark-Simulacrum:issue-40342, r=arielb1

Don't warn on lifetime generic no_mangle functions.

Fixes #40342.

7 years agoAdd RLS to .exe and .msi installers
Edward Yang [Tue, 30 May 2017 02:31:33 +0000 (21:31 -0500)]
Add RLS to .exe and .msi installers

7 years agoAuto merge of #42180 - GuillaumeGomez:update-rustdoc-man, r=QuietMisdreavus
bors [Tue, 30 May 2017 00:18:23 +0000 (00:18 +0000)]
Auto merge of #42180 - GuillaumeGomez:update-rustdoc-man, r=QuietMisdreavus

Update rustdoc man page

r? @rust-lang/docs
r? @rust-lang/dev-tools

7 years agoAuto merge of #42264 - GuillaumeGomez:new-error-codes, r=Susurrus
bors [Mon, 29 May 2017 21:55:57 +0000 (21:55 +0000)]
Auto merge of #42264 - GuillaumeGomez:new-error-codes, r=Susurrus

New error codes

Part of #42229.

7 years agoAuto merge of #42214 - RalfJung:rust-src, r=alexcrichton
bors [Mon, 29 May 2017 19:31:03 +0000 (19:31 +0000)]
Auto merge of #42214 - RalfJung:rust-src, r=alexcrichton

rust-src: include everything needed to compile libstd with jemalloc

I am not very happy about all this `Path::new`, but did not find a nice way to avoid it. Also, this shouldn't be very performance-critical.

With this patch, rust-src-1.19.0-dev.tar.gz grows from 1.4 to 3.1 MiB (new uncompressed size: 15.5 MiB). Not great, but shipping incomplete sources is also not great, and this is still much smaller than pre-#41546. Excluding the entire `src/jemalloc/test` does not work, unfortunately; there is a file in there that is needed to build libstd. (And anyway there's just 190 KiB uncompressed left in that folder.)

In principle, we could try excluding the Rust test suite directories (that would be `libcore/tests` and `libcollection/tests`). I don't know enough about how this component is used to judge whether that would cause any problems. Anyway this is just 600 KiB uncompressed.

Fixes #41952

7 years agoAuto merge of #42192 - michaelwoerister:no_deptracking_map_in_queries, r=nikomatsakis
bors [Mon, 29 May 2017 17:10:08 +0000 (17:10 +0000)]
Auto merge of #42192 - michaelwoerister:no_deptracking_map_in_queries, r=nikomatsakis

incr.comp.: Remove DepGraph::write() and its callers

After months of yak shaving, we are finally there `:)`

The existence of `DepGraph::write()` was one of the two main ways for introducing cycles into the dep-graph -- something we need to avoid in the future. The other way, re-opening nodes to add more edges, is next on the list.

r? @nikomatsakis

7 years agoRemove --crate-type=metadata deprecation warning
Michael Kohl [Sun, 28 May 2017 06:49:14 +0000 (13:49 +0700)]
Remove --crate-type=metadata deprecation warning

Fixes #38640

7 years agoAuto merge of #41856 - qnighy:prohibit-parenthesized-params-in-more-types, r=arielb1
bors [Mon, 29 May 2017 11:32:14 +0000 (11:32 +0000)]
Auto merge of #41856 - qnighy:prohibit-parenthesized-params-in-more-types, r=arielb1

Prohibit parenthesized params in more types.

Prohibit parenthesized parameters in primitive types, type parameters, `Self`, etc.

Fixes #32995.

7 years agoRemove DepGraph::write() and its callers.
Michael Woerister [Tue, 16 May 2017 16:48:42 +0000 (18:48 +0200)]
Remove DepGraph::write() and its callers.

7 years agoAuto merge of #42262 - Mark-Simulacrum:issue-40350, r=eddyb
bors [Mon, 29 May 2017 09:04:08 +0000 (09:04 +0000)]
Auto merge of #42262 - Mark-Simulacrum:issue-40350, r=eddyb

Don't ICE with nested enums in missing docs lint.

Fixes #40350.

7 years agoUpdate rustdoc man page
Guillaume Gomez [Tue, 23 May 2017 19:22:51 +0000 (21:22 +0200)]
Update rustdoc man page

7 years agorust-src: include everything needed to compile libstd with jemalloc
Ralf Jung [Thu, 25 May 2017 01:31:05 +0000 (18:31 -0700)]
rust-src: include everything needed to compile libstd with jemalloc

7 years agoAuto merge of #42246 - alexcrichton:update-cargo, r=nikomatsakis
bors [Mon, 29 May 2017 03:37:28 +0000 (03:37 +0000)]
Auto merge of #42246 - alexcrichton:update-cargo, r=nikomatsakis

Updated locked version of libgit2

This should include a fix for rust-lang/cargo#4091 with an updated version of
libgit2.

Closes rust-lang/cargo#4091

7 years agoAuto merge of #42218 - venkatagiri:update_cross, r=alexchrichton
bors [Sun, 28 May 2017 22:15:10 +0000 (22:15 +0000)]
Auto merge of #42218 - venkatagiri:update_cross, r=alexchrichton

use shared scripts for init and sccache in cross image

cc #42201
cc @malbarbo

7 years agoClarify docs on implementing Into.
Clar Charr [Sat, 20 May 2017 19:24:43 +0000 (15:24 -0400)]
Clarify docs on implementing Into.

7 years agoAdd note regarding parent module containing use statement.
Mark Simulacrum [Sun, 28 May 2017 14:28:21 +0000 (08:28 -0600)]
Add note regarding parent module containing use statement.

7 years agoUpdated locked version of libgit2
Alex Crichton [Fri, 26 May 2017 14:46:41 +0000 (07:46 -0700)]
Updated locked version of libgit2

This should include a fix for rust-lang/cargo#4091 with an updated version of
libgit2.

Closes rust-lang/cargo#4091

7 years agoAuto merge of #42175 - michaelwoerister:filemap-hashing-fix-1, r=nikomatsakis
bors [Sun, 28 May 2017 16:47:17 +0000 (16:47 +0000)]
Auto merge of #42175 - michaelwoerister:filemap-hashing-fix-1, r=nikomatsakis

incr.comp.: Track expanded spans instead of FileMaps.

This PR removes explicit tracking of FileMaps in response to #42101. The reasoning behind being able to just *not* track access to FileMaps is similar to why we don't track access to the `DefId->DefPath` map:
1. One can only get ahold of a `Span` value by accessing the HIR (for local things) or a `metadata::schema::Entry` (for things from external crates).
2. For both of these things we compute a hash that incorporates the *expanded spans*, that is, what we hash is in the (FileMap independent) format `filename:line:col`.
3. Consequently, everything that emits a span should already be tracked via its dependency to something that has the span included in its hash and changes would be detected via that hash.

One caveat here is that we have to be conservative when exporting things in metadata. A crate can be built without debuginfo and would thus by default not incorporate most spans into the metadata hashes. However, a downstream crate can make an inline copy of things in the upstream crate and span changes in the upstream crate would then go undetected, even if the downstream uses them (e.g. by emitting debuginfo for an inlined function). For this reason, we always incorporate spans into metadata hashes for now (there might be more efficient ways to handle this safely when red-green tracking is implemented).

r? @nikomatsakis

7 years agoAuto merge of #42167 - scottmcm:iter-stepby-sizehint, r=alexcrichton
bors [Sun, 28 May 2017 14:26:52 +0000 (14:26 +0000)]
Auto merge of #42167 - scottmcm:iter-stepby-sizehint, r=alexcrichton

Override size_hint and propagate ExactSizeIterator for iter::StepBy

Generally useful, but also a prerequisite for moving a bunch of unit tests off `Range*::step_by`.

A small non-breaking subset of https://github.com/rust-lang/rust/pull/42110 (which I closed).

Includes two small documentation changes @ivandardi requested on that PR.

r? @alexcrichton

7 years agoDon't warn on lifetime generic no_mangle functions.
Mark Simulacrum [Sun, 28 May 2017 14:12:19 +0000 (08:12 -0600)]
Don't warn on lifetime generic no_mangle functions.

7 years agoAuto merge of #41917 - arielb1:mir-array, r=nagisa
bors [Sun, 28 May 2017 12:01:02 +0000 (12:01 +0000)]
Auto merge of #41917 - arielb1:mir-array, r=nagisa

Translate array drop glue using MIR

I was a bit lazy here and used a usize-based index instead of a pointer iteration. Do you think this is important @eddyb?

r? @eddyb

7 years agoAuto merge of #42276 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
bors [Sun, 28 May 2017 09:40:47 +0000 (09:40 +0000)]
Auto merge of #42276 - Mark-Simulacrum:rollup, r=Mark-Simulacrum

Rollup of 6 pull requests

- Successful merges: #42207, #42217, #42249, #42251, #42260, #42266
- Failed merges:

7 years agofix translation of MSVC funclets that loop to their own start
Ariel Ben-Yehuda [Tue, 23 May 2017 20:47:15 +0000 (23:47 +0300)]
fix translation of MSVC funclets that loop to their own start

7 years agoincrease macro recursion limit
Ariel Ben-Yehuda [Tue, 23 May 2017 19:01:51 +0000 (22:01 +0300)]
increase macro recursion limit

7 years agouse a pointer-based array drop loop for non-zero-sized types
Ariel Ben-Yehuda [Thu, 18 May 2017 20:59:39 +0000 (23:59 +0300)]
use a pointer-based array drop loop for non-zero-sized types

7 years agofix loops in unwind code in MSVC
Ariel Ben-Yehuda [Thu, 18 May 2017 20:58:39 +0000 (23:58 +0300)]
fix loops in unwind code in MSVC

I'm not sure how well this works, but it's worth a try.

7 years agofix RUST_LOG ICE caused by printing a default impl's DefId
Ariel Ben-Yehuda [Thu, 18 May 2017 17:56:25 +0000 (20:56 +0300)]
fix RUST_LOG ICE caused by printing a default impl's DefId

7 years agoadd NullOp::SizeOf and BinOp::Offset
Ariel Ben-Yehuda [Thu, 18 May 2017 15:43:52 +0000 (18:43 +0300)]
add NullOp::SizeOf and BinOp::Offset