]> git.lizzy.rs Git - rust.git/log
rust.git
7 years agoAuto merge of #41445 - frewsxcv:rollup, r=frewsxcv
bors [Fri, 21 Apr 2017 16:36:41 +0000 (16:36 +0000)]
Auto merge of #41445 - frewsxcv:rollup, r=frewsxcv

Rollup of 4 pull requests

- Successful merges: #41372, #41376, #41426, #41429
- Failed merges:

7 years agoAuto merge of #41349 - eddyb:ty-contents, r=nikomatsakis
bors [Fri, 21 Apr 2017 14:02:37 +0000 (14:02 +0000)]
Auto merge of #41349 - eddyb:ty-contents, r=nikomatsakis

rustc: replace TypeContents with two independent properties (is_freeze / needs_drop).

`InteriorUnsafe` / `interior_unsafe` was replaced with a private lang-item `Freeze` auto trait in libcore.

`OwnsDtor` / `needs_drop` was replaced with a specialized traversal that *doesn't* avoid caching results in case of a cycle, as the only cycles left can only occur in erroneous "types with infinite sizes", references and raw pointers not having destructors. Also, `Copy` is now checked at every step of the recursion.

r? @nikomatsakis

7 years agoUpdate #[no_core] users with the "freeze" lang item.
Eduard-Mihai Burtescu [Tue, 18 Apr 2017 08:02:21 +0000 (11:02 +0300)]
Update #[no_core] users with the "freeze" lang item.

7 years agoRollup merge of #41429 - jonathandturner:update_rls_submod, r=alexcrichton
Corey Farwell [Fri, 21 Apr 2017 12:40:36 +0000 (08:40 -0400)]
Rollup merge of #41429 - jonathandturner:update_rls_submod, r=alexcrichton

Bump the rls submodule revision

Bump the RLS version to include a few recent fixes.

7 years agoRollup merge of #41426 - malbarbo:android-x86_64, r=alexcrichton
Corey Farwell [Fri, 21 Apr 2017 12:40:35 +0000 (08:40 -0400)]
Rollup merge of #41426 - malbarbo:android-x86_64, r=alexcrichton

Add x86_64-linux-android target

7 years agoRollup merge of #41376 - mbrubeck:docs, r=frewsxcv
Corey Farwell [Fri, 21 Apr 2017 12:40:34 +0000 (08:40 -0400)]
Rollup merge of #41376 - mbrubeck:docs, r=frewsxcv

Expanded docs and examples for PathBuf::file_name and friends

This addresses some common surprises when `PathBuf::set_file_name` is called on the path of a directory rather than a file.

r? @steveklabnik

7 years agoRollup merge of #41372 - nbigaouette:master, r=alexcrichton
Corey Farwell [Fri, 21 Apr 2017 12:40:33 +0000 (08:40 -0400)]
Rollup merge of #41372 - nbigaouette:master, r=alexcrichton

Use an (over-writable) environment variable for the `gdb` command

Instead of hard-coding the command to run, using the environment
variable `GDB_CMD` (that defaults to `gdb`) allows using a different
debugger than the default `gdb` executable.

This gives the possibility to use `cgdb` as the debugger, which provides
a nicer user interface. Note that one has to use `GDB_CMD="cgdb --"` to
use cgdb (note the trailing `--`) to let cgdb pass the proper arguments
to `gdb`.

7 years agoAuto merge of #41245 - estebank:multiline-trim, r=nikomatsakis
bors [Fri, 21 Apr 2017 06:59:25 +0000 (06:59 +0000)]
Auto merge of #41245 - estebank:multiline-trim, r=nikomatsakis

Reduce visual clutter of multiline start when possible

When a span starts on a line with nothing but whitespace to the left,
and there are no other annotations in that line, simplify the visual
representation of the span.

Go from:

```rust
error[E0072]: recursive type `A` has infinite size
 --> file2.rs:1:1
  |
1 |   struct A {
  |  _^ starting here...
2 | |     a: A,
3 | | }
  | |_^ ...ending here: recursive type has infinite size
  |
```

To:

```rust
error[E0072]: recursive type `A` has infinite size
 --> file2.rs:1:1
  |
1 | / struct A {
2 | |     a: A,
3 | | }
  | |_^ recursive type has infinite size
```

Re: #38246.

r? @nikomatsakis CC @jonathandturner

7 years agoReduce visual clutter of multiline start when possible
Esteban Küber [Fri, 14 Apr 2017 23:38:10 +0000 (16:38 -0700)]
Reduce visual clutter of multiline start when possible

When a span starts on a line with nothing but whitespace to the left,
and there are no other annotations in that line, simplify the visual
representation of the span.

Go from:

```rust
error[E0072]: recursive type `A` has infinite size
 --> file2.rs:1:1
  |
1 |   struct A {
  |  _^ starting here...
2 | |     a: A,
3 | | }
  | |_^ ...ending here: recursive type has infinite size
  |
```

To:

```rust
error[E0072]: recursive type `A` has infinite size
 --> file2.rs:1:1
  |
1 | / struct A {
2 | |     a: A,
3 | | }
  | |_^ recursive type has infinite size
```

Remove `starting here...`/`...ending here` labels from all multiline
diagnostics.

7 years agoAuto merge of #41342 - GuillaumeGomez:btree-debug-infinite, r=alexcrichton
bors [Thu, 20 Apr 2017 23:40:06 +0000 (23:40 +0000)]
Auto merge of #41342 - GuillaumeGomez:btree-debug-infinite, r=alexcrichton

Fix debug infinite loop

Fixes #41338.

7 years agoBump the rls submodule revision
Jonathan Turner [Thu, 20 Apr 2017 21:20:04 +0000 (09:20 +1200)]
Bump the rls submodule revision

7 years agoAdd x86_64-linux-android target
Marco A L Barbosa [Thu, 20 Apr 2017 17:02:42 +0000 (14:02 -0300)]
Add x86_64-linux-android target

7 years agoExpanded docs and examples for PathBuf::file_name and friends
Matt Brubeck [Tue, 18 Apr 2017 19:20:02 +0000 (12:20 -0700)]
Expanded docs and examples for PathBuf::file_name and friends

7 years agoAuto merge of #41424 - frewsxcv:rollup, r=frewsxcv
bors [Thu, 20 Apr 2017 17:33:58 +0000 (17:33 +0000)]
Auto merge of #41424 - frewsxcv:rollup, r=frewsxcv

Rollup of 2 pull requests

- Successful merges: #40812, #40987
- Failed merges:

7 years agoRollup merge of #40987 - maccoda:convert-docs, r=steveklabnik
Corey Farwell [Thu, 20 Apr 2017 17:33:13 +0000 (13:33 -0400)]
Rollup merge of #40987 - maccoda:convert-docs, r=steveklabnik

API docs: Convert

Clean up of the convert module documentation following points in #29349

7 years agoRollup merge of #40812 - mgattozzi:ChildDocs, r=steveklabnik
Corey Farwell [Thu, 20 Apr 2017 17:33:12 +0000 (13:33 -0400)]
Rollup merge of #40812 - mgattozzi:ChildDocs, r=steveklabnik

Update `Child` docs to not have a note section

In #29370 it's noted that for "the Note shouldn't be one, and should come before
the examples." This commit changes the positioning of the section and removes
wording that said take note in order for it to flow better with the surrounding
text and it's new position.

7 years agoUpdate libc to include x86_64-linux-android support
Marco A L Barbosa [Thu, 20 Apr 2017 16:59:41 +0000 (13:59 -0300)]
Update libc to include x86_64-linux-android support

7 years agoRename environment variable `GDB_CMD` to `RUST_GDB` to prevent ambiguity
Nicolas Bigaouette [Thu, 20 Apr 2017 15:20:33 +0000 (11:20 -0400)]
Rename environment variable `GDB_CMD` to `RUST_GDB` to prevent ambiguity

7 years agoAuto merge of #41191 - seanmonstar:spec-extend-vec-intoiter, r=alexcrichton
bors [Thu, 20 Apr 2017 13:08:07 +0000 (13:08 +0000)]
Auto merge of #41191 - seanmonstar:spec-extend-vec-intoiter, r=alexcrichton

specialize Extend for Vec with IntoIter

Before, `vec.extend(&other_vec)` was quite a bit faster than `vec.extend(other_vec)`. This allows extending by consuming a vec to use the same code as extending from a slice.

7 years agorustc: combine type_needs_drop_given_env and may_drop into needs_drop.
Eduard-Mihai Burtescu [Mon, 17 Apr 2017 21:22:55 +0000 (00:22 +0300)]
rustc: combine type_needs_drop_given_env and may_drop into needs_drop.

7 years agorustc: replace TypeContents::needs_drop with Ty::may_drop.
Eduard-Mihai Burtescu [Mon, 17 Apr 2017 20:26:48 +0000 (23:26 +0300)]
rustc: replace TypeContents::needs_drop with Ty::may_drop.

7 years agorustc: replace interior_unsafe with a Freeze trait.
Eduard-Mihai Burtescu [Mon, 17 Apr 2017 18:18:56 +0000 (21:18 +0300)]
rustc: replace interior_unsafe with a Freeze trait.

7 years agorustc: simplify TypeContents drastically.
Eduard-Mihai Burtescu [Mon, 17 Apr 2017 15:58:01 +0000 (18:58 +0300)]
rustc: simplify TypeContents drastically.

7 years agoAuto merge of #41413 - frewsxcv:rollup, r=frewsxcv
bors [Thu, 20 Apr 2017 06:28:16 +0000 (06:28 +0000)]
Auto merge of #41413 - frewsxcv:rollup, r=frewsxcv

Rollup of 5 pull requests

- Successful merges: #41214, #41369, #41377, #41378, #41390
- Failed merges:

7 years agoRollup merge of #41390 - scottmcm:toowned-clone-into, r=alexcrichton
Corey Farwell [Thu, 20 Apr 2017 05:39:56 +0000 (01:39 -0400)]
Rollup merge of #41390 - scottmcm:toowned-clone-into, r=alexcrichton

Override ToOwned::clone_into for Path and OsStr

The only non-overridden one remaining is the CStr impl, which cannot
be optimized as doing so would break CString's second invariant.

Follow-up to 7ec27ae (PR #41009).

r? @alexcrichton

7 years agoRollup merge of #41378 - eddyb:byval-is-not-like-sret, r=arielb1
Corey Farwell [Thu, 20 Apr 2017 05:39:56 +0000 (01:39 -0400)]
Rollup merge of #41378 - eddyb:byval-is-not-like-sret, r=arielb1

rustc_trans: do not treat byval as using up registers.

Perhaps not that well-documented, `byval` pointer arguments *are not* the same as pointer arguments used by pass-by-ref, but rather the pointer is only used by LLVM to pass the *contents* on the stack.

Fixes #41375.

7 years agoRollup merge of #41377 - nikomatsakis:issue-41298-ICE-inference, r=eddyb
Corey Farwell [Thu, 20 Apr 2017 05:39:55 +0000 (01:39 -0400)]
Rollup merge of #41377 - nikomatsakis:issue-41298-ICE-inference, r=eddyb

Fix ICE building gluon_vm

The problem was due to various places we were failing to propagate obligations. I think I got them mostly correct, but I didn't get around to writing test cases for each case.

r? @eddyb or @arielb1

7 years agoRollup merge of #41369 - cuviper:arm-stage0, r=alexcrichton
Corey Farwell [Thu, 20 Apr 2017 05:39:54 +0000 (01:39 -0400)]
Rollup merge of #41369 - cuviper:arm-stage0, r=alexcrichton

Bump stage0 to fix ARM LLVM

There was a serious ARM codegen bug in LLVM that was fixed by #40779,
also backported to beta.  This updates stage0 to 1.17.0-beta.3 to pick
up that change, so ARM can bootstrap natively again.

Fixes #41291
cc @arielb1

7 years agoRollup merge of #41214 - estebank:less-multiline, r=petrochenkov
Corey Farwell [Thu, 20 Apr 2017 05:39:53 +0000 (01:39 -0400)]
Rollup merge of #41214 - estebank:less-multiline, r=petrochenkov

Add a way to get shorter spans until `char` for pointing at defs

```rust
error[E0072]: recursive type `X` has infinite size
  --> file.rs:10:1
   |
10 | struct X {
   | ^^^^^^^^ recursive type has infinite size
   |
   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `X` representable
```

vs

```rust
error[E0072]: recursive type `X` has infinite size
  --> file.rs:10:1
   |
10 |   struct X {
   |  _^ starting here...
11 | |     x: X,
12 | | }
   | |_^ ...ending here: recursive type has infinite size
   |
   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `X` representable
```

Re: #35965,  #38246. Follow up to #38328.

r? @jonathandturner

7 years agoAuto merge of #41411 - frewsxcv:rollup, r=frewsxcv
bors [Thu, 20 Apr 2017 01:56:59 +0000 (01:56 +0000)]
Auto merge of #41411 - frewsxcv:rollup, r=frewsxcv

Rollup of 7 pull requests

- Successful merges: #41295, #41348, #41374, #41380, #41391, #41398, #41403
- Failed merges: #41376

7 years agoRollup merge of #41403 - mbrickn:patch-1, r=petrochenkov
Corey Farwell [Thu, 20 Apr 2017 01:55:42 +0000 (21:55 -0400)]
Rollup merge of #41403 - mbrickn:patch-1, r=petrochenkov

Updated links to use https

I just updated a few links to use https instead of http.

Thank you! 😄

7 years agoRollup merge of #41398 - aidanhs:aphs-no-git-caches-again, r=alexcrichton
Corey Farwell [Thu, 20 Apr 2017 01:55:41 +0000 (21:55 -0400)]
Rollup merge of #41398 - aidanhs:aphs-no-git-caches-again, r=alexcrichton

Disable git caches again

The appveyor ones aren't working anyway (I need to talk to appveyor about them being corrupt) and the travis cache is taking too long to restore and is being killed, which is sometimes causing bad things to happen because the integrity checking made assumptions that restore was atomic.

I could fix the integrity checks, but we clearly need a different approach if restore is taking too long. Let's disable it all for now.

7 years agoRollup merge of #41391 - durka:patch-40, r=petrochenkov
Corey Farwell [Thu, 20 Apr 2017 01:55:40 +0000 (21:55 -0400)]
Rollup merge of #41391 - durka:patch-40, r=petrochenkov

remove disclaimer from bootstrap/README.md

7 years agoRollup merge of #41380 - ollie27:stability, r=BurntSushi
Corey Farwell [Thu, 20 Apr 2017 01:55:39 +0000 (21:55 -0400)]
Rollup merge of #41380 - ollie27:stability, r=BurntSushi

Fix a few stability attributes

These show up in rustdoc so need to be correct.

7 years agoRollup merge of #41374 - steveklabnik:update-mdbook, r=frewsxcv
Corey Farwell [Thu, 20 Apr 2017 01:55:38 +0000 (21:55 -0400)]
Rollup merge of #41374 - steveklabnik:update-mdbook, r=frewsxcv

update mdbook

Ship some more improvements.

r? @rust-lang/docs

7 years agoRollup merge of #41348 - lukaramu:std-path-docs, r=frewsxcv
Corey Farwell [Thu, 20 Apr 2017 01:55:37 +0000 (21:55 -0400)]
Rollup merge of #41348 - lukaramu:std-path-docs, r=frewsxcv

Improve std::path docs

Fixes #29368.

This PR contains a pretty significant redistribution of some of the module docs to more appropriate places, as well as general expansion, clarification, and additional examples.

For more details, see the commit descriptions.

r? @steveklabnik

7 years agoRollup merge of #41295 - frewsxcv:frewsxcxv-unstability, r=steveklabnik
Corey Farwell [Thu, 20 Apr 2017 01:55:36 +0000 (21:55 -0400)]
Rollup merge of #41295 - frewsxcv:frewsxcxv-unstability, r=steveklabnik

Add top level sections to the Unstable Book.

Prior to this commit, the contents of the Unstable Book were assumed to
be unstable features. This commit moves features into 'language features'
or 'library features' subsections. It also moves the 'linker_flavor'
compiler flag into a new 'Compiler Flags' subsection.

Even though it was helpful, I removed the tidy check that
cross-references the SUMMARY.md links with the Unstable Book directory
contents just because it would be difficult to maintain.

Relevant PR: https://github.com/rust-lang/rust/issues/41142.

7 years agoUpdated links to use https
Maxwell Paul Brickner [Wed, 19 Apr 2017 21:45:48 +0000 (17:45 -0400)]
Updated links to use https

I just updated a few links to use https instead of http.

Thank you! ^ _ ^

7 years agospecialize Extend for Vec with IntoIter
Sean McArthur [Wed, 19 Apr 2017 18:57:29 +0000 (11:57 -0700)]
specialize Extend for Vec with IntoIter

7 years agoFix link for wait
Michael Gattozzi [Wed, 19 Apr 2017 18:00:50 +0000 (14:00 -0400)]
Fix link for wait

7 years agoFix debug infinite loop
Guillaume Gomez [Mon, 17 Apr 2017 16:06:43 +0000 (18:06 +0200)]
Fix debug infinite loop

7 years agoRemove platform-specific directory separator.
Corey Farwell [Wed, 19 Apr 2017 16:42:07 +0000 (12:42 -0400)]
Remove platform-specific directory separator.

7 years agoDisable git caches again
Aidan Hobson Sayers [Wed, 19 Apr 2017 15:29:47 +0000 (16:29 +0100)]
Disable git caches again

7 years agopropagate other obligations that were left out
Niko Matsakis [Tue, 18 Apr 2017 19:48:32 +0000 (15:48 -0400)]
propagate other obligations that were left out

cc #32730 -- I left exactly one instance where I wasn't sure of the
right behavior.

7 years agopropagate obligations during overlap check
Niko Matsakis [Tue, 18 Apr 2017 19:48:19 +0000 (15:48 -0400)]
propagate obligations during overlap check

7 years agoAuto merge of #41354 - alexcrichton:tool-no-debug, r=aturon
bors [Wed, 19 Apr 2017 11:07:08 +0000 (11:07 +0000)]
Auto merge of #41354 - alexcrichton:tool-no-debug, r=aturon

Disable debuginfo when compiling tools

Currently the Cargo binary has jumped from 14M to 34M on the beta channel, which
appears to be due to the fact that we're compiling tools with debug information
inside them. This additionally means that the `rls` binary is 62M right now!

This wasn't an intentional change, so be sure to disable debuginfo when
compiling tools as it's just intended for the standard library and compile for
now.

7 years agoAuto merge of #41325 - eddyb:isolate-snapshots-for-good, r=arielb1
bors [Wed, 19 Apr 2017 08:40:27 +0000 (08:40 +0000)]
Auto merge of #41325 - eddyb:isolate-snapshots-for-good, r=arielb1

Ban registering obligations during InferCtxt snapshots.

Back in #33852, a flag was added to `InferCtxt` to prevent rolling back a snapshot if obligations were added to some `FulfillmentContext` during the snapshot, to prevent leaking fresh inference variables (created during that snapshot, so their indices would get reused) in obligations, which could ICE or worse.

But that isn't enough in the long run, as type-checking ends up relying on success implying that eager side-effects are fine, and while stray obligations *do* get caught nowadays, those errors prevent, e.g. the speculative coercions from #37658, which *have to* be rolled back *even* if they succeed.

We can't just allow those obligations to stay around though, because we end up, again, in ICEs or worse.
Instead, this PR modifies `lookup_method_in_trait_adjusted` to return `InferOk` containing the obligations that `Autoderef::finalize_as_infer_ok` can propagate to deref coercions.

As there shouldn't be *anything* left that registers obligations during snapshots, it's completely banned.

r? @nikomatsakis @arielb1

7 years agoAuto merge of #41170 - Nashenas88:master, r=alexcrichton
bors [Wed, 19 Apr 2017 05:54:23 +0000 (05:54 +0000)]
Auto merge of #41170 - Nashenas88:master, r=alexcrichton

Use the existing path when removing the prefix fails

This allows the use of out-of-tree paths to be specified. I found this while trying to build with a modified version of `rls-data`, which is currently pointing to a version on crates.io.

cc @alexcrichton

Also, it wasn't clear if I needed to add a test for this (or how). I didn't see any tests that took paths into consideration.

7 years agoremove disclaimer from bootstrap/README.md
Alex Burka [Wed, 19 Apr 2017 05:45:34 +0000 (01:45 -0400)]
remove disclaimer from bootstrap/README.md

7 years agoOverride ToOwned::clone_into for Path and OsStr
Scott McMurray [Thu, 13 Apr 2017 09:48:46 +0000 (02:48 -0700)]
Override ToOwned::clone_into for Path and OsStr

The only non-overridden one remaining is the CStr impl, which cannot
be optimized as doing so would break CString's second invariant.

7 years agoAuto merge of #41236 - cengizIO:master, r=nikomatsakis
bors [Wed, 19 Apr 2017 01:27:08 +0000 (01:27 +0000)]
Auto merge of #41236 - cengizIO:master, r=nikomatsakis

Move E0101 and E0102 logic into new E0282 mechanism #40013

Hello there!

## What's this?
Previously, me and @nikomatsakis worked on error messages of uninferred locals. (#38812)

This aims to build up on that by moving certain type checks from `writeback`.

With this, `E0101` and `E0102` errors are getting obsoleted and no longer thrown.

They're replaced with customized versions of `E0282`s instead.

## Sample Error Messages

#### `E0101` is getting converted into:
```rust
error[E0282]: type annotations needed
 --> test.rs:2:14
  |
2 |     let x = |_| {};
  |              ^ consider giving this closure parameter a type

error: aborting due to previous error
```

#### `E0102` is getting converted into:
```rust
error[E0282]: type annotations needed
 --> test.rs:2:9
  |
2 |     let x = [];
  |         ^
  |         |
  |         consider giving `x` a type
  |         cannot infer type for `[_; 0]`

error: aborting due to previous error
```

## Annoyances
- I think we need to change our way of type name resolving in relevant places, because that `[_; 0]` looks horrible IMHO.
- I'm not terribly happy with the note ordering of errors. So please do point to code that might help me accomplish this.

## Tests
Tests of `E0101` and `E0102` are getting converted from `compile-fail` to `ui` tests.

## Documentation
Please help me with documentation update. There are some confusing places that needed an update but I'm not sure if I did the right ones.

Please do comment on messages, layouts and other details.

## Appreciation
Huge thanks goes to @nikomatsakis for being a patient and humble mentor along this long journey. 🍻

7 years agoBump book and reference.
Corey Farwell [Mon, 17 Apr 2017 20:55:43 +0000 (16:55 -0400)]
Bump book and reference.

7 years agoAdd top level sections to the Unstable Book.
Corey Farwell [Thu, 13 Apr 2017 17:12:44 +0000 (13:12 -0400)]
Add top level sections to the Unstable Book.

Prior to this commit, the contents of the Unstable Book were assumed to
be unstable features. This commit moves features into 'language features'
or 'library features' subsections. It also moves the 'linker_flavor'
compiler flag into a new 'Compiler Flags' subsection.

Even though it was helpful, I removed the tidy check that
cross-references the SUMMARY.md links with the Unstable Book directory
contents just because it would be difficult to maintain.

Relevant PR: https://github.com/rust-lang/rust/issues/41142.

7 years agorustc_trans: do not treat byval as using up registers.
Eduard-Mihai Burtescu [Tue, 18 Apr 2017 20:59:25 +0000 (23:59 +0300)]
rustc_trans: do not treat byval as using up registers.

7 years agoFix a few stability attributes
Oliver Middleton [Tue, 18 Apr 2017 22:33:38 +0000 (23:33 +0100)]
Fix a few stability attributes

These show up in rustdoc so need to be correct.

7 years agochange note for patterns
Cengiz Can [Tue, 18 Apr 2017 18:42:55 +0000 (21:42 +0300)]
change note for patterns

7 years agocomment out removed error codes
Cengiz Can [Tue, 18 Apr 2017 13:56:08 +0000 (16:56 +0300)]
comment out removed error codes

7 years agofixes #40013
Cengiz Can [Tue, 11 Apr 2017 21:37:40 +0000 (00:37 +0300)]
fixes #40013

7 years agoAuto merge of #41373 - frewsxcv:rollup, r=frewsxcv
bors [Tue, 18 Apr 2017 18:20:04 +0000 (18:20 +0000)]
Auto merge of #41373 - frewsxcv:rollup, r=frewsxcv

Rollup of 6 pull requests

- Successful merges: #40290, #41353, #41356, #41360, #41361, #41364
- Failed merges:

7 years agoRollup merge of #41364 - alexcrichton:less-backtrace-prune, r=petrochenkov
Corey Farwell [Tue, 18 Apr 2017 18:05:46 +0000 (14:05 -0400)]
Rollup merge of #41364 - alexcrichton:less-backtrace-prune, r=petrochenkov

std: Back out backtrace pruning logic

It was discovered #40264 that this backtrace pruning logic is a little too
aggressive, so while we figure how out to handle #40264 this commit backs out
the changes to prune frames. Note that other cosmetic changes, such as better
path printing and such remain.

7 years agoRollup merge of #41361 - arielb1:move-mir-init, r=pnkfelix
Corey Farwell [Tue, 18 Apr 2017 18:05:45 +0000 (14:05 -0400)]
Rollup merge of #41361 - arielb1:move-mir-init, r=pnkfelix

lower `move_val_init` during MIR construction

Because of its "magic" order-of-evaluation semantics, `move_val_init` must be lowered during MIR construction in order to work without needing a temporary.

r? @eddyb

7 years agoRollup merge of #41360 - nikomatsakis:incr-comp-issue-40746-visitors, r=eddyb
Corey Farwell [Tue, 18 Apr 2017 18:05:44 +0000 (14:05 -0400)]
Rollup merge of #41360 - nikomatsakis:incr-comp-issue-40746-visitors, r=eddyb

convert calls to `visit_all_item_likes_in_krate`

We no longer need to track the tasks in these cases since these
particular tasks have no outputs (except, potentially, errors...)  and
they always execute.

cc #40746

r? @eddyb

7 years agoRollup merge of #41356 - richo:darwin-no-cputype-hack, r=alexcrichton
Corey Farwell [Tue, 18 Apr 2017 18:05:44 +0000 (14:05 -0400)]
Rollup merge of #41356 - richo:darwin-no-cputype-hack, r=alexcrichton

bootstrap: Don't workaround uname -m on Darwin

This no longer manifests on any versions of OSX that I could find.

How far back is Rust officially supported? I can try to get copies to test when this behaviour changed.

(Fun fact, at a minimum the comment already lies, since the flag is `-m` :))

7 years agoRollup merge of #41353 - redox-os:master, r=alexcrichton
Corey Farwell [Tue, 18 Apr 2017 18:05:43 +0000 (14:05 -0400)]
Rollup merge of #41353 - redox-os:master, r=alexcrichton

Improve Process::spawn with piped stdio on Redox

- Adds `dup2`, and uses it for stdio piping
- Removes `O_CLOEXEC` from piped stdio, as `dup` on Redox does not disable O_CLOEXEC

7 years agoRollup merge of #40290 - 3Hren:master, r=aturon
Corey Farwell [Tue, 18 Apr 2017 18:05:42 +0000 (14:05 -0400)]
Rollup merge of #40290 - 3Hren:master, r=aturon

Add `as_bytes()` for `FromUtf8Error`.

This change allows to obtain an underlying invalid UTF-8 bytes without `FromUtf8Error` destruction. Such method may be useful for example in a library that attempts to save both valid and invalid UTF-8 strings in some struct and to be able to provide immutable access to it without destruction.

Personally without this change I ended with `Result<String, (Vec<u8>, Utf8Error)`, which almost copies the functionality of `FromUtf8Error`, but allows immutable view access.

7 years agoUse an (over-writable) environment variable for the `gdb` command
Nicolas Bigaouette [Tue, 18 Apr 2017 18:00:08 +0000 (14:00 -0400)]
Use an (over-writable) environment variable for the `gdb` command

Instead of hard-coding the command to run, using the environment
variable `GDB_CMD` (that defaults to `gdb`) allows using a different
debugger than the default `gdb` executable.

This gives the possibility to use `cgdb` as the debugger, which provides
a nicer user interface. Note that one has to use `GDB_CMD="cgdb --"` to
use cgdb (note the trailing `--`) to let cgdb pass the proper arguments
to `gdb`.

7 years agoBump stage0 to fix ARM LLVM
Josh Stone [Tue, 18 Apr 2017 15:57:56 +0000 (08:57 -0700)]
Bump stage0 to fix ARM LLVM

There was a serious ARM codegen bug in LLVM that was fixed by #40779,
also backported to beta.  This updates stage0 to 1.17.0-beta.3 to pick
up that change, so ARM can bootstrap natively again.

Fixes #41291
cc @arielb1

7 years agoupdate mdbook
steveklabnik [Tue, 18 Apr 2017 15:01:20 +0000 (11:01 -0400)]
update mdbook

7 years agostd: Back out backtrace pruning logic
Alex Crichton [Mon, 20 Mar 2017 21:13:27 +0000 (14:13 -0700)]
std: Back out backtrace pruning logic

It was discovered #40264 that this backtrace pruning logic is a little too
aggressive, so while we figure how out to handle #40264 this commit backs out
the changes to prune frames. Note that other cosmetic changes, such as better
path printing and such remain.

7 years agoFix typos in std::path's docs
lukaramu [Tue, 18 Apr 2017 13:03:41 +0000 (15:03 +0200)]
Fix typos in std::path's docs

* Closed an unclosed paren
* seperator -> separator
* deperator -> separator

7 years agoupdate `dep-graph-struct-signature` test case
Niko Matsakis [Tue, 18 Apr 2017 12:22:52 +0000 (08:22 -0400)]
update `dep-graph-struct-signature` test case

the `CollectItem` task no longer exists

7 years agokill a bunch of one off tasks
Niko Matsakis [Tue, 18 Apr 2017 12:20:12 +0000 (08:20 -0400)]
kill a bunch of one off tasks

7 years agolower `move_val_init` during MIR construction
Ariel Ben-Yehuda [Tue, 18 Apr 2017 12:05:27 +0000 (15:05 +0300)]
lower `move_val_init` during MIR construction

Because of its "magic" order-of-evaluation semantics, `move_val_init`
must be lowered during MIR construction in order to work.

7 years agouse Lvalue helper functions in rustc_mir::shim
Ariel Ben-Yehuda [Tue, 18 Apr 2017 12:05:04 +0000 (15:05 +0300)]
use Lvalue helper functions in rustc_mir::shim

7 years agoAuto merge of #39271 - est31:add_float_bits, r=BurntSushi
bors [Tue, 18 Apr 2017 11:23:44 +0000 (11:23 +0000)]
Auto merge of #39271 - est31:add_float_bits, r=BurntSushi

Add functions to safely transmute float to int

The safe subset of Rust tries to be as powerful as possible. While it is very powerful already, its currently impossible to safely transmute integers to floats. While crates exist that provide a safe interface, most prominently the `iee754` crate (which also inspired naming of the added functions), they themselves only use the unsafe `mem::transmute` function to accomplish this task.

Also, including an entire crate for just two lines of unsafe code seems quite wasteful.

That's why this PR adds functions to safely transmute integers to floats and vice versa, currently gated by the newly added `float_bits_conv` feature.

The functions added are no niche case. Not just `ieee754` [currently implements](https://github.com/huonw/ieee754/blob/master/src/lib.rs#L441) float to int transmutation via unsafe code but also the [very popular `byteorder` crate](https://github.com/BurntSushi/byteorder/blob/1.0.0/src/lib.rs#L258). This functionality of byteorder is in turn used by higher level crates. I only give two examples out of many: [chor](https://github.com/pyfisch/cbor/blob/a7363ea9aaf372e3d24b52414b5c76552ecc91c8/src/ser.rs#L227) and [bincode](https://github.com/TyOverby/bincode/blob/f06a4cfcb5b194e54d4997c200c75b88b6c3fba4/src/serde/reader.rs#L218).

One alternative would be to manually use functions like pow or multiplication by 1 to get a similar result, but they only work in the int -> float direction, and are not bit exact, and much slower (also, most likely the optimizer will never optimize it to a transmute because the conversion is not bit exact while the transmute is).

Tracking issue: #40470

7 years agoconvert calls to `visit_all_item_likes_in_krate`
Niko Matsakis [Tue, 18 Apr 2017 09:57:39 +0000 (05:57 -0400)]
convert calls to `visit_all_item_likes_in_krate`

We no longer need to track the tasks in these cases since these
particular tasks have no outputs (except, potentially, errors...)  and
they always execute.

7 years agoAuto merge of #41357 - frewsxcv:rollup, r=frewsxcv
bors [Tue, 18 Apr 2017 04:15:13 +0000 (04:15 +0000)]
Auto merge of #41357 - frewsxcv:rollup, r=frewsxcv

Rollup of 3 pull requests

- Successful merges: #41262, #41310, #41344
- Failed merges:

7 years agoRollup merge of #41344 - Diggsey:remove-natvis-nbsp, r=alexcrichton
Corey Farwell [Tue, 18 Apr 2017 03:21:19 +0000 (23:21 -0400)]
Rollup merge of #41344 - Diggsey:remove-natvis-nbsp, r=alexcrichton

Remove non-breaking spaces from natvis files

Visual studio will see natvis files with non-breaking spaces as invalid XML, and will ignore them.

7 years agoRollup merge of #41310 - eddyb:demand-const-eval, r=nikomatsakis
Corey Farwell [Tue, 18 Apr 2017 03:21:18 +0000 (23:21 -0400)]
Rollup merge of #41310 - eddyb:demand-const-eval, r=nikomatsakis

[on-demand] Turn monomorphic_const_eval into a proper query, not just a cache.

The error definitions and reporting logic, alongside with `eval_length` were moved to `librustc`.
Both local and cross-crate constant evaluation is on-demand now, but the latter is only used for `enum` discriminants, to replace the manual insertion into the cache which was done when decoding variants.

r? @nikomatsakis

7 years agoRollup merge of #41262 - jonhoo:compiler-barrier-rename, r=alexcrichton
Corey Farwell [Tue, 18 Apr 2017 03:21:17 +0000 (23:21 -0400)]
Rollup merge of #41262 - jonhoo:compiler-barrier-rename, r=alexcrichton

Rename compiler_barrier to compiler_fence

This addresses concerns raised following the merge of #41092. Specifically:

> The naming of these seems surprising: the multithreaded functions (and both the single and multithreaded intrinsics themselves) are fences, but this is a barrier. It's not incorrect, but the latter is both inconsistent with the existing functions and slightly confusing with another type in std (e.g., `Barrier`).

`compiler_fence` carries the same semantic implication that this is a compiler-only operation, while being more in line with the fence/barrier concepts already in use in `std`.

7 years agobootstrap: Don't workaround uname -m on Darwin
Richo Healey [Tue, 18 Apr 2017 02:30:18 +0000 (19:30 -0700)]
bootstrap: Don't workaround uname -m on Darwin

This no longer manifests on any versions of OSX that I could find.

7 years agoAuto merge of #41340 - eddyb:demand-assoc-defids, r=nikomatsakis
bors [Tue, 18 Apr 2017 01:18:14 +0000 (01:18 +0000)]
Auto merge of #41340 - eddyb:demand-assoc-defids, r=nikomatsakis

rustc: move associated_item_def_ids to an on-demand query.

r? @nikomatsakis

7 years agoDisable debuginfo when compiling tools
Alex Crichton [Tue, 18 Apr 2017 00:17:11 +0000 (17:17 -0700)]
Disable debuginfo when compiling tools

Currently the Cargo binary has jumped from 14M to 34M on the beta channel, which
appears to be due to the fact that we're compiling tools with debug information
inside them. This additionally means that the `rls` binary is 62M right now!

This wasn't an intentional change, so be sure to disable debuginfo when
compiling tools as it's just intended for the standard library and compile for
now.

7 years agoAdd float_bits_conv to unstable book
est31 [Tue, 18 Apr 2017 00:55:47 +0000 (02:55 +0200)]
Add float_bits_conv to unstable book

7 years agoAllow us to remove masking in the future
est31 [Thu, 30 Mar 2017 22:40:02 +0000 (00:40 +0200)]
Allow us to remove masking in the future

7 years agoPreserve sNaN payload when converting them to quiet NaNs
est31 [Wed, 29 Mar 2017 23:49:06 +0000 (01:49 +0200)]
Preserve sNaN payload when converting them to quiet NaNs

7 years agoConvert sNaN to quiet NaN instead of returning errors
est31 [Wed, 29 Mar 2017 00:39:59 +0000 (02:39 +0200)]
Convert sNaN to quiet NaN instead of returning errors

7 years agoassert_ne and tracking issue
est31 [Mon, 13 Mar 2017 09:25:50 +0000 (10:25 +0100)]
assert_ne and tracking issue

7 years agoAdd examples heading
est31 [Tue, 24 Jan 2017 20:28:12 +0000 (21:28 +0100)]
Add examples heading

7 years agoReturn Err(()) when trying to convert sNaN representation to float
est31 [Tue, 24 Jan 2017 19:49:33 +0000 (20:49 +0100)]
Return Err(()) when trying to convert sNaN representation to float

7 years agoAdd functions to safely transmute float to int
est31 [Tue, 24 Jan 2017 17:15:11 +0000 (18:15 +0100)]
Add functions to safely transmute float to int

7 years agoAddress review comments
Dylan Maccora [Mon, 17 Apr 2017 22:29:05 +0000 (08:29 +1000)]
Address review comments

7 years agoAuto merge of #41282 - arielb1:missing-impl-item, r=petrochenkov
bors [Mon, 17 Apr 2017 22:22:56 +0000 (22:22 +0000)]
Auto merge of #41282 - arielb1:missing-impl-item, r=petrochenkov

libsyntax/parse: fix missing kind error reporting

Fixes #41161.
Fixes #41239.

7 years agoExpand std::path::Display's docs
lukaramu [Mon, 17 Apr 2017 20:51:12 +0000 (22:51 +0200)]
Expand std::path::Display's docs

Part of #29368.
* Added explanation for why the struct exists
* Added link to where it is created
* Added example

7 years agoRestructure and redistribute std::path's module docs
lukaramu [Mon, 17 Apr 2017 20:37:27 +0000 (22:37 +0200)]
Restructure and redistribute std::path's module docs

Part of #29368.
* Added a new summary paragraph about std::path's parsing facilities
* Slightly exanded `Component`'s docs
* removed the now redundant section on component types from the module docs
* moved the section on path normalization during parsing to the docs on
  `Path::components`
* Clarified difference between `Prefix` and `PrefixComponent` in their
  respecive summary sentences

7 years agolibsyntax/parse: improve associated item error reporting
Ariel Ben-Yehuda [Thu, 13 Apr 2017 19:37:05 +0000 (22:37 +0300)]
libsyntax/parse: improve associated item error reporting

Fixes #41161.
Fixes #41239.

7 years agoAuto merge of #41345 - frewsxcv:rollup, r=frewsxcv
bors [Mon, 17 Apr 2017 17:56:29 +0000 (17:56 +0000)]
Auto merge of #41345 - frewsxcv:rollup, r=frewsxcv

Rollup of 3 pull requests

- Successful merges: #41012, #41280, #41290
- Failed merges:

7 years agoRollup merge of #41290 - GuillaumeGomez:put-back-hoedown, r=steveklabnik
Corey Farwell [Mon, 17 Apr 2017 17:26:21 +0000 (13:26 -0400)]
Rollup merge of #41290 - GuillaumeGomez:put-back-hoedown, r=steveklabnik

Hoedown big comeback!

```bash
> cargo +local test
   Compiling libc v0.2.20
   Compiling sysinfo v0.3.4 (file:///Users/imperio/rust/sysinfo)
    Finished dev [unoptimized + debuginfo] target(s) in 3.2 secs
     Running target/debug/deps/disk_list-dbd70897f1f7e080

running 1 test
test test_disks ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

     Running target/debug/deps/sysinfo-8ad11103abdf5941

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

   Doc-tests sysinfo
WARNING: src/sysinfo.rs -  (line 45) test will be run in the next rustdoc version. If it's not supposed to, please update your documentation and make it compliant to common mark specifications.
WARNING: src/sysinfo.rs -  (line 48) test will be run in the next rustdoc version. If it's not supposed to, please update your documentation and make it compliant to common mark specifications.

running 1 test
test src/sysinfo.rs -  (line 14) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured
```

r? @rust-lang/docs

7 years agoRollup merge of #41280 - QuietMisdreavus:rustdoc-toc, r=GuillaumeGomez
Corey Farwell [Mon, 17 Apr 2017 17:26:20 +0000 (13:26 -0400)]
Rollup merge of #41280 - QuietMisdreavus:rustdoc-toc, r=GuillaumeGomez

rustdoc: add a list of headings to the sidebar

It's another misdreavus rustdoc PR, which means it's time for Bikeshed City once again! `:3`

In an effort to aid navigation in long documentation pages, this PR adds a listing of headings to the sidebars of pages where such headings exist. For example, for structs, links to their fields, inherent methods, and trait implementations are available where applicable.

Examples:

* Modules/Crate roots
  ![image](https://cloud.githubusercontent.com/assets/5217170/25019930/1000fa3a-2052-11e7-98ff-ddf5af18b3e6.png)
* Enums
  ![image](https://cloud.githubusercontent.com/assets/5217170/25019954/33497f9e-2052-11e7-88cf-df46f1b3b8a3.png)
* Primitives
  ![image](https://cloud.githubusercontent.com/assets/5217170/25019978/4820bbc6-2052-11e7-8b5a-96a864eb2a5b.png)
* Traits
  ![image](https://cloud.githubusercontent.com/assets/5217170/25020093/bd1bc9f2-2052-11e7-9cd1-00a0ad8007bc.png)
* Structs
  ![image](https://cloud.githubusercontent.com/assets/5217170/25020145/d75206b0-2052-11e7-88cc-9e9525084775.png)

Open questions:

* Right now, these kinds of pages (and also unions) are the only pages that will receive the name header - pages for functions, constants, macros, etc, won't have the corresponding name in their sidebar. Should I print the name regardless and only add table-of-contents links for pages that have them? This would make them match, for example, a struct with no public fields, no methods, and no trait implementations. The latter would still have a "Struct MyStruct" line above the module contents, with no header links to speak of, whereas a function wouldn't even have "Function my\_function".
* This is only a header listing, but there has been requests to include a more-complete listing of fields/methods/traits/etc, for example in #41123.

7 years agoRollup merge of #41012 - durka:vis-matcher, r=petrochenkov
Corey Farwell [Mon, 17 Apr 2017 17:26:19 +0000 (13:26 -0400)]
Rollup merge of #41012 - durka:vis-matcher, r=petrochenkov

:vis matcher for macro_rules

Resurrection of @DanielKeep's implementation posted with [RFC 1575](https://github.com/rust-lang/rfcs/pull/1575).

@jseyfried was of the opinion that this doesn't need an RFC.

Needed before merge:

- [x] sign-off from @DanielKeep since I stole his code
- [x] feature gate
- [x] docs