]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoIncrease required version for crates.io `libc` to get fix from PR rust-lang/libc...
Felix S. Klock II [Thu, 6 Dec 2018 13:41:06 +0000 (14:41 +0100)]
Increase required version for crates.io `libc` to get fix from PR rust-lang/libc#1057.

Part of issue #55465

5 years agoAuto merge of #56039 - ljedrz:sorted_map_upgrades, r=matthewjasper
bors [Wed, 12 Dec 2018 10:44:32 +0000 (10:44 +0000)]
Auto merge of #56039 - ljedrz:sorted_map_upgrades, r=matthewjasper

SortedMap upgrades

- change the impl `From<Iterator<I>>` to `FromIterator<I>`
- make the impls of `Index` and `get` match the ones from `BTreeMap`
- add `is_empty` and `contains_key`
- readability/whitespace fixes
- add a proper `Iterator` implementation
- `impl IntoIterator for &SortedMap`

These changes make `SortedMap` almost a drop-in replacement for `BTreeMap`, at least to the point it is used by `rustc`; what is left is `Entry` API that I'd like to follow this PR with, and possibly implementing `ParallelIterator`.

5 years agoAuto merge of #56010 - euclio:intra-doc-spans, r=QuietMisdreavus
bors [Wed, 12 Dec 2018 08:18:13 +0000 (08:18 +0000)]
Auto merge of #56010 - euclio:intra-doc-spans, r=QuietMisdreavus

fix intra-link resolution spans in block comments

This commit improves the calculation of code spans for intra-doc
resolution failures. All sugared doc comments should now have the
correct spans, including those where the comment is longer than the
docs.

It also fixes an issue where the spans were calculated incorrectly for
certain unsugared doc comments. The diagnostic will now always use the
span of the attributes, as originally intended.

Fixes #55964.

r? @QuietMisdreavus

5 years agoAuto merge of #53497 - fukatani:test-debuginfo-function-call, r=tromey
bors [Tue, 11 Dec 2018 16:27:49 +0000 (16:27 +0000)]
Auto merge of #53497 - fukatani:test-debuginfo-function-call, r=tromey

Test with gdb8.2 and add debuginfo printing function call test

As far as I can see, `print function()` is not tested. It is important feature for debugging.

5 years agoAuto merge of #56243 - RalfJung:test-deterministic, r=alexcrichton
bors [Tue, 11 Dec 2018 14:04:15 +0000 (14:04 +0000)]
Auto merge of #56243 - RalfJung:test-deterministic, r=alexcrichton

libtest: Use deterministic HashMap, avoid spawning thread if there is no concurrency

It seems desirable to make a test and bench runner deterministic, which this achieves by using a deterministic hasher. Also, we we only have 1 thread, we don't bother spawning one and just use the main thread.

The motivation for this is to be able to run the test harness in miri, where we can neither access the OS RNG, nor spawn threads.

5 years agoAdd function call test, Update gdb and test docker image install gdb by ppa.
Unknown [Sun, 19 Aug 2018 14:51:57 +0000 (23:51 +0900)]
Add function call test, Update gdb and test docker image install gdb by ppa.

5 years agouse an enum instead of bool
Ralf Jung [Tue, 11 Dec 2018 10:02:23 +0000 (11:02 +0100)]
use an enum instead of bool

5 years agoAuto merge of #56703 - alexcrichton:fix-tools, r=Mark-Simulacrum
bors [Tue, 11 Dec 2018 08:14:14 +0000 (08:14 +0000)]
Auto merge of #56703 - alexcrichton:fix-tools, r=Mark-Simulacrum

Fix build of the `build-manifest` tool

Accidentally broken in #56258!

5 years agoBuild manifest tool on mingw-check builder
Mark Rousskov [Tue, 11 Dec 2018 03:40:04 +0000 (20:40 -0700)]
Build manifest tool on mingw-check builder

This builder is not really the correct place to put this, but it
definitely has the time budget and checking this tool builds on just one
platform is more than sufficient.

5 years agoFix build of the `build-manifest` tool
Alex Crichton [Tue, 11 Dec 2018 03:34:47 +0000 (19:34 -0800)]
Fix build of the `build-manifest` tool

Accidentally broken in #56258!

5 years agoAuto merge of #56627 - alexcrichton:update-cargo, r=alexcrichton
bors [Tue, 11 Dec 2018 03:22:10 +0000 (03:22 +0000)]
Auto merge of #56627 - alexcrichton:update-cargo, r=alexcrichton

Update Cargo submodule and its dependencies

Hopefully just another routine update!

So far this starts to enable the `std::arch` in stage0 builds of rustc.
This means that we may need stage0/not(stage0) in stdsimd itself, but
more and more code is starting to use `std::arch` so I think it's time
to start shifting the balance of work here.

5 years agofix intra-link resolution spans in block comments
Andy Russell [Mon, 10 Dec 2018 17:24:39 +0000 (12:24 -0500)]
fix intra-link resolution spans in block comments

This commit improves the calculation of code spans for intra-doc
resolution failures. All sugared doc comments should now have the
correct spans, including those where the comment is longer than the
docs.

It also fixes an issue where the spans were calculated incorrectly for
certain unsugared doc comments. The diagnostic will now always use the
span of the attributes, as originally intended.

Fixes #55964.

5 years agoUpdate Cargo submodule and its dependencies
Alex Crichton [Sat, 8 Dec 2018 11:06:54 +0000 (03:06 -0800)]
Update Cargo submodule and its dependencies

Hopefully just another routine update!

So far this starts to enable the `std::arch` in stage0 builds of rustc.
This means that we may need stage0/not(stage0) in stdsimd itself, but
more and more code is starting to use `std::arch` so I think it's time
to start shifting the balance of work here.

5 years agoAuto merge of #56688 - GuillaumeGomez:rollup, r=GuillaumeGomez
bors [Mon, 10 Dec 2018 21:42:20 +0000 (21:42 +0000)]
Auto merge of #56688 - GuillaumeGomez:rollup, r=GuillaumeGomez

Rollup of 5 pull requests

Successful merges:

 - #56491 (emit error with span for empty asserts)
 - #56633 (Fix right arrow size for crate filter)
 - #56641 (fix span for invalid number of parameters in trait method)
 - #56656 (Fix typo)
 - #56661 (Add regression test for ICE)

Failed merges:

r? @ghost

5 years agoRollup merge of #56661 - aelred:issue-55846, r=Mark-Simulacrum
Guillaume Gomez [Mon, 10 Dec 2018 21:02:02 +0000 (22:02 +0100)]
Rollup merge of #56661 - aelred:issue-55846, r=Mark-Simulacrum

Add regression test for ICE

Fixes #55846 with a minimal (or as best as I can manage) test case. I tested this against 1.30.0 manually to confirm it crashes.

The issue seemed to have something to do with associated types. It's possible someone with more knowledge can shrink the test case down further, or make it clearer.

5 years agoRollup merge of #56656 - BeatButton:liballoc_string_typo, r=Centril
Guillaume Gomez [Mon, 10 Dec 2018 21:02:01 +0000 (22:02 +0100)]
Rollup merge of #56656 - BeatButton:liballoc_string_typo, r=Centril

Fix typo

5 years agoRollup merge of #56641 - GuillaumeGomez:span-trait-method-invalid-nb-parameters,...
Guillaume Gomez [Mon, 10 Dec 2018 21:02:00 +0000 (22:02 +0100)]
Rollup merge of #56641 - GuillaumeGomez:span-trait-method-invalid-nb-parameters, r=estebank

fix span for invalid number of parameters in trait method

Fixes #56582.

5 years agoRollup merge of #56633 - GuillaumeGomez:fix-right-arrow-display, r=QuietMisdreavus
Guillaume Gomez [Mon, 10 Dec 2018 21:01:58 +0000 (22:01 +0100)]
Rollup merge of #56633 - GuillaumeGomez:fix-right-arrow-display, r=QuietMisdreavus

Fix right arrow size for crate filter

This bug only appears when a crate has a long name:

<img width="1440" alt="screenshot 2018-12-08 at 16 36 21" src="https://user-images.githubusercontent.com/3050060/49687728-7de06180-fb07-11e8-8554-d32597351fac.png">

With this fix, it goes back to normal, whatever the size:

<img width="1440" alt="screenshot 2018-12-08 at 16 36 05" src="https://user-images.githubusercontent.com/3050060/49687730-8769c980-fb07-11e8-91b7-b5e1961211a2.png">

r? @QuietMisdreavus

5 years agoRollup merge of #56491 - euclio:assert-error, r=estebank
Guillaume Gomez [Mon, 10 Dec 2018 21:01:57 +0000 (22:01 +0100)]
Rollup merge of #56491 - euclio:assert-error, r=estebank

emit error with span for empty asserts

Fixes #55547.

5 years agoAuto merge of #56666 - Xanewok:rustfmt, r=kennytm
bors [Mon, 10 Dec 2018 14:40:41 +0000 (14:40 +0000)]
Auto merge of #56666 - Xanewok:rustfmt, r=kennytm

Update Rustfmt and RLS

Supersedes #56652, hopefully fixes toolstate.

r? @SimonSapin

5 years agosorted_map: add contains_key function
ljedrz [Sun, 18 Nov 2018 18:00:22 +0000 (19:00 +0100)]
sorted_map: add contains_key function

5 years agosorted_map: readability/whitespace fixes
ljedrz [Sun, 18 Nov 2018 09:44:49 +0000 (10:44 +0100)]
sorted_map: readability/whitespace fixes

5 years agosorted_map: add is_empty
ljedrz [Sun, 18 Nov 2018 09:44:25 +0000 (10:44 +0100)]
sorted_map: add is_empty

5 years agosorted_map: make the impls of Index and get match ones from BTreeMap
ljedrz [Sun, 18 Nov 2018 09:43:50 +0000 (10:43 +0100)]
sorted_map: make the impls of Index and get match ones from BTreeMap

5 years agosorted_map: change From<Iterator<I>> to FromIterator<I>
ljedrz [Sun, 18 Nov 2018 09:41:40 +0000 (10:41 +0100)]
sorted_map: change From<Iterator<I>> to FromIterator<I>

5 years agoAuto merge of #56157 - RalfJung:park, r=nagisa
bors [Mon, 10 Dec 2018 12:19:47 +0000 (12:19 +0000)]
Auto merge of #56157 - RalfJung:park, r=nagisa

expand thread::park explanation

Cc @carllerche @parched @stjepang

5 years agoAuto merge of #56624 - RalfJung:miri, r=oli-obk
bors [Mon, 10 Dec 2018 09:58:22 +0000 (09:58 +0000)]
Auto merge of #56624 - RalfJung:miri, r=oli-obk

update miri

r? @oli-obk

5 years agoBump failure to 0.1.3
Igor Matuszewski [Mon, 10 Dec 2018 09:57:43 +0000 (10:57 +0100)]
Bump failure to 0.1.3

We use failure_derive 0.1.3, try to work around
```
error[E0433]: failed to resolve: could not find `AsFail` in `failure`
```

5 years agoUpdate in-tree rustfmt to 1.0.1 to dedup versions
Igor Matuszewski [Mon, 10 Dec 2018 08:05:37 +0000 (09:05 +0100)]
Update in-tree rustfmt to 1.0.1 to dedup versions

5 years agoUpdate RLS
Igor Matuszewski [Mon, 10 Dec 2018 07:58:08 +0000 (08:58 +0100)]
Update RLS

5 years agoUpdate rustfmt
Simon Sapin [Sun, 9 Dec 2018 18:14:49 +0000 (19:14 +0100)]
Update rustfmt

Pick up https://github.com/rust-lang/rustfmt/pull/3236

5 years agoAuto merge of #56369 - nnethercote:rm-Delimited, r=petrochenkov
bors [Mon, 10 Dec 2018 03:33:17 +0000 (03:33 +0000)]
Auto merge of #56369 - nnethercote:rm-Delimited, r=petrochenkov

Remove `tokenstream::Delimited`.

Because it's an extra type layer that doesn't really help; in a couple
of places it actively gets in the way, and overall removing it makes the
code nicer. It does, however, move `tokenstream::TokenTree` further away
from the `TokenTree` in `quote.rs`.

More importantly, this change reduces the size of `TokenStream` from 48
bytes to 40 bytes on x86-64, which is enough to slightly reduce
instruction counts on numerous benchmarks, the best by 1.5%.

Note that `open_tt` and `close_tt` have gone from being methods on
`Delimited` to associated methods of `TokenTree`.

5 years agoAdd regression test for issue #55846
Felix Chapman [Mon, 10 Dec 2018 02:49:19 +0000 (02:49 +0000)]
Add regression test for issue #55846

5 years agoRemove `tokenstream::Delimited`.
Nicholas Nethercote [Thu, 29 Nov 2018 23:02:04 +0000 (10:02 +1100)]
Remove `tokenstream::Delimited`.

Because it's an extra type layer that doesn't really help; in a couple
of places it actively gets in the way, and overall removing it makes the
code nicer. It does, however, move `tokenstream::TokenTree` further away
from the `TokenTree` in `quote.rs`.

More importantly, this change reduces the size of `TokenStream` from 48
bytes to 40 bytes on x86-64, which is enough to slightly reduce
instruction counts on numerous benchmarks, the best by 1.5%.

Note that `open_tt` and `close_tt` have gone from being methods on
`Delimited` to associated methods of `TokenTree`.

5 years agoAuto merge of #56269 - nnethercote:_match-Matrix-SmallVec, r=simulacrum
bors [Mon, 10 Dec 2018 01:08:05 +0000 (01:08 +0000)]
Auto merge of #56269 - nnethercote:_match-Matrix-SmallVec, r=simulacrum

Use a `SmallVec` within `_match::Matrix`.

This avoids allocations.

5 years agoUse a `SmallVec` within `_match::Matrix`.
Nicholas Nethercote [Wed, 28 Nov 2018 02:38:46 +0000 (13:38 +1100)]
Use a `SmallVec` within `_match::Matrix`.

This commit also fixes up lifetimes a bit:

- Renames `'a` as `'p` when used with `Matrix` and `Pattern`, for
  consistency.

- Removes some unnecessary `'p` lifetimes on some function arguments.

- Adds some missing lifetime parameters.

5 years agoAuto merge of #56463 - ljedrz:slice_concat_join, r=nikic
bors [Sun, 9 Dec 2018 22:39:44 +0000 (22:39 +0000)]
Auto merge of #56463 - ljedrz:slice_concat_join, r=nikic

slice: tweak concat & join

- use `sum` instead of `fold` (readability)
- adjust the capacity for `join` - the number of separators is `n - 1`, not `n`; proof:
```
fn main() {
    let a = [[1, 2], [4, 5]];
    let v = a.join(&3);

    assert_ne!(v.len(), v.capacity()); // len is 5, capacity is 6
}
```

5 years agoUpgrade `smallvec` to 0.6.7 and use the new `may_dangle` feature.
Nicholas Nethercote [Wed, 28 Nov 2018 21:52:22 +0000 (08:52 +1100)]
Upgrade `smallvec` to 0.6.7 and use the new `may_dangle` feature.

5 years agoFix typo
BeatButton [Sun, 9 Dec 2018 21:10:20 +0000 (14:10 -0700)]
Fix typo

5 years agoAuto merge of #56444 - petrochenkov:uifull, r=davidtwco
bors [Sun, 9 Dec 2018 18:49:12 +0000 (18:49 +0000)]
Auto merge of #56444 - petrochenkov:uifull, r=davidtwco

Move compile-fail-fulldeps tests to UI

cc https://github.com/rust-lang/rust/issues/53353

r? @davidtwco

5 years agoFix rebase + Add missing `// force-host`
Vadim Petrochenkov [Fri, 7 Dec 2018 21:53:15 +0000 (00:53 +0300)]
Fix rebase + Add missing `// force-host`

5 years agoRemove compile-fail-fulldeps test suite
Vadim Petrochenkov [Sun, 2 Dec 2018 20:07:22 +0000 (23:07 +0300)]
Remove compile-fail-fulldeps test suite

5 years agoMove some tests from ui-fulldeps to ui
Vadim Petrochenkov [Sun, 2 Dec 2018 19:59:50 +0000 (22:59 +0300)]
Move some tests from ui-fulldeps to ui

5 years agoMove compile-fail-fulldeps tests to ui-fulldeps
Vadim Petrochenkov [Sun, 2 Dec 2018 19:42:43 +0000 (22:42 +0300)]
Move compile-fail-fulldeps tests to ui-fulldeps

5 years agoMove former compile-fail-fulldeps tests to ui
Vadim Petrochenkov [Sun, 2 Dec 2018 19:27:37 +0000 (22:27 +0300)]
Move former compile-fail-fulldeps tests to ui

5 years agoAuto merge of #56644 - jens1o:patch-1, r=pietroalbini
bors [Sun, 9 Dec 2018 16:15:32 +0000 (16:15 +0000)]
Auto merge of #56644 - jens1o:patch-1, r=pietroalbini

Fix security link in CONTRIBUTING to its new place

avoiding an 404

5 years agoFix security link in CONTRIBUTING to its new place
Jens Hausdorf [Sun, 9 Dec 2018 14:25:23 +0000 (15:25 +0100)]
Fix security link in CONTRIBUTING to its new place

avoiding an 404

5 years agoAuto merge of #56631 - matthiaskrgr:clippy, r=nikic
bors [Sun, 9 Dec 2018 11:56:32 +0000 (11:56 +0000)]
Auto merge of #56631 - matthiaskrgr:clippy, r=nikic

submodules: update clippy from 1df5766c to a3c77f6a

fixes clippy toolstate

Changes:
````
s/rustfmt-preview/rustfmt/
Swap if branches
Fix c_void false positive caused by libc refactoring
rustup https://github.com/rust-lang/rust/pull/56502 ( .hir -> .hir() )
typo: emum → enum
Fix format.
Add sysroot gettinh code to dogfood tests.
Add sysroot getting code to tests.
Don't try to determine sysroot. rustc_driver will use default value.
Fix suggestion for multiple derefs
Fix `clone_on_copy` not detecting derefs sometimes
````
r? @oli-obk

5 years agoAuto merge of #56630 - sinkuu:core_iter, r=kennytm
bors [Sun, 9 Dec 2018 00:18:34 +0000 (00:18 +0000)]
Auto merge of #56630 - sinkuu:core_iter, r=kennytm

Resolve FIXME in libcore/iter/mod.rs

and makes a few improvements.

5 years agoAuto merge of #56615 - integer32llc:update-book, r=GuillaumeGomez
bors [Sat, 8 Dec 2018 22:00:09 +0000 (22:00 +0000)]
Auto merge of #56615 - integer32llc:update-book, r=GuillaumeGomez

Update the book to fix some edition-related bugs

I'd love to have this included in a point release if one happens, but the changes aren't worth doing a point release on their own IMO. I'd definitely like to see this backported to beta.

The most urgent changes included here are:

- Chapter 19.6, on macros (including the macro changes that just stabilized), [is cut off](https://github.com/rust-lang/book/issues/1668) because of an ill-placed newline in a comment that [pulldown-cmark interprets incorrectly](https://github.com/raphlinus/pulldown-cmark/issues/124).
- [The `Cargo.toml` shown in the Guessing Game example in Chapter 2 (and one in Chapter 14) doesn't have `edition="2018"`](https://github.com/rust-lang/book/pull/1671), which can be confusing depending on whether the readers have it in theirs or not, think they should remove it if they have it, and the rest of the chapter assumes it's there and the code doesn't compile if you don't have it.
- The redirects implemented as part of only shipping the 2018 edition of the book sometimes lead to [having to click through 2 redirect pages](https://github.com/rust-lang/book/pull/1667) when it could be just one.

There are other small corrections included that were made since the last time the book was updated, but those aren't urgent.

cc @steveklabnik

5 years agoAuto merge of #56616 - estebank:issue-56539, r=davidtwco
bors [Sat, 8 Dec 2018 19:34:43 +0000 (19:34 +0000)]
Auto merge of #56616 - estebank:issue-56539, r=davidtwco

Encode `TraitAlias` as if they were `Trait`

Fix #56539.

5 years agofix span for invalid number of parameters in trait method
Guillaume Gomez [Sat, 8 Dec 2018 19:04:14 +0000 (20:04 +0100)]
fix span for invalid number of parameters in trait method

5 years agoAuto merge of #56632 - Eijebong:synup, r=Mark-Simulacrum
bors [Sat, 8 Dec 2018 17:06:19 +0000 (17:06 +0000)]
Auto merge of #56632 - Eijebong:synup, r=Mark-Simulacrum

Reduce the number of syn versions compiled from 4 to 2

The last remaining one comes from mdbook. Unfortunately updating it
breaks everything

5 years agoFix right arrow size for crate filter
Guillaume Gomez [Sat, 8 Dec 2018 15:35:51 +0000 (16:35 +0100)]
Fix right arrow size for crate filter

5 years agoDon't call size_hint of underlying iterator needlessly
Shotaro Yamada [Sat, 8 Dec 2018 11:16:36 +0000 (20:16 +0900)]
Don't call size_hint of underlying iterator needlessly

5 years agoResolve FIXME and cleanup
Shotaro Yamada [Sat, 8 Dec 2018 11:15:49 +0000 (20:15 +0900)]
Resolve FIXME and cleanup

5 years agoOverride Cycle::try_fold
Shotaro Yamada [Sat, 8 Dec 2018 11:09:44 +0000 (20:09 +0900)]
Override Cycle::try_fold

 name                            old ns/iter  new ns/iter  diff ns/iter   diff %  speedup
 iter::bench_cycle_take_ref_sum  927,152      927,194                42    0.00%   x 1.00
 iter::bench_cycle_take_sum      938,129      603,492          -334,637  -35.67%   x 1.55

5 years agoReduce the numbers of syn versions compiled from 4 to 2
Bastien Orivel [Sat, 8 Dec 2018 14:11:47 +0000 (15:11 +0100)]
Reduce the numbers of syn versions compiled from 4 to 2

The last remaining one comes from mdbook. Unfortunately updating it
breaks everything

5 years agosubmodules: update clippy from 1df5766c to a3c77f6a
Matthias Krüger [Sat, 8 Dec 2018 14:02:12 +0000 (15:02 +0100)]
submodules: update clippy from 1df5766c to a3c77f6a

Changes:
````
s/rustfmt-preview/rustfmt/
Swap if branches
Fix c_void false positive caused by libc refactoring
rustup https://github.com/rust-lang/rust/pull/56502 ( .hir -> .hir() )
typo: emum → enum
Fix format.
Add sysroot gettinh code to dogfood tests.
Add sysroot getting code to tests.
Don't try to determine sysroot. rustc_driver will use default value.
Fix suggestion for multiple derefs
Fix `clone_on_copy` not detecting derefs sometimes
````

5 years agoupdate miri
Ralf Jung [Sat, 8 Dec 2018 10:09:02 +0000 (11:09 +0100)]
update miri

5 years agoAuto merge of #56623 - Centril:rollup, r=Centril
bors [Sat, 8 Dec 2018 09:56:32 +0000 (09:56 +0000)]
Auto merge of #56623 - Centril:rollup, r=Centril

Rollup of 6 pull requests

Successful merges:

 - #56248 (Suggest an appropriate token when encountering `pub Ident<'a>`)
 - #56597 (Improve the usage message for `-Z dump-mir`.)
 - #56599 (codegen: Fix va_list - aarch64 iOS/Windows)
 - #56602 (Fix the just-introduced ptr::hash docs)
 - #56620 (resolve: Reduce some clutter in import ambiguity errors)
 - #56621 (Add missing comma in Generators)

Failed merges:

r? @ghost

5 years agoRollup merge of #56621 - Morganamilo:fix-generators-comma, r=Centril
Mazdak Farrokhzad [Sat, 8 Dec 2018 07:43:50 +0000 (08:43 +0100)]
Rollup merge of #56621 - Morganamilo:fix-generators-comma, r=Centril

Add missing comma in Generators

5 years agoRollup merge of #56620 - petrochenkov:noclutter, r=estebank
Mazdak Farrokhzad [Sat, 8 Dec 2018 07:43:49 +0000 (08:43 +0100)]
Rollup merge of #56620 - petrochenkov:noclutter, r=estebank

resolve: Reduce some clutter in import ambiguity errors

Noticed in https://www.reddit.com/r/rust/comments/a3pyrw/announcing_rust_131_and_rust_2018/eb8alhi/.
The first error is distracting, but unnecessary, it's a *consequence* of the ambiguity error and appears because one of the ambiguous `actix` modules (unsurprisingly) doesn't have the expected name in it.

5 years agoRollup merge of #56602 - dwijnand:fix-ptr-hash-docs, r=Centril
Mazdak Farrokhzad [Sat, 8 Dec 2018 07:43:48 +0000 (08:43 +0100)]
Rollup merge of #56602 - dwijnand:fix-ptr-hash-docs, r=Centril

Fix the just-introduced ptr::hash docs

Follow-up to #56250.

5 years agoRollup merge of #56599 - dlrobertson:fix_va_arg, r=eddyb
Mazdak Farrokhzad [Sat, 8 Dec 2018 07:43:47 +0000 (08:43 +0100)]
Rollup merge of #56599 - dlrobertson:fix_va_arg, r=eddyb

codegen: Fix va_list - aarch64 iOS/Windows

## Summary

Fix code generated for `VaList` on Aarch64 iOS/Windows.

## Details

According to the [Apple - ARM64 Function Calling Conventions]:

> ... the type va_list is an alias for char * rather than for the struct
> type specified in the generic PCS.

The current implementation uses the generic Aarch64 structure for `VaList`
for Aarch64 iOS. Switch to using the `char *` variant of the `VaList`
and use the corresponding `emit_ptr_va_arg` for the `va_arg` intrinsic.

Windows always uses the `char *` variant of the `VaList`. Update the `va_arg`
intrinsic to use `emit_ptr_va_arg`.

[Apple - ARM64 Function Calling Conventions]: https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html

5 years agoRollup merge of #56597 - vext01:dump-mir-usage, r=wesleywiser
Mazdak Farrokhzad [Sat, 8 Dec 2018 07:43:45 +0000 (08:43 +0100)]
Rollup merge of #56597 - vext01:dump-mir-usage, r=wesleywiser

Improve the usage message for `-Z dump-mir`.

Ouput now looks like this:
```
$ rustc -Z help
...
    -Z               arg-align-attributes -- emit align metadata for reference arguments
    -Z                       dump-mir=val -- dump MIR state to file.
        `val` is used to select which passes and functions to dump. For example:
        `all` matches all passes and functions,
        `foo` matches all passes for functions whose name contains 'foo',
        `foo & ConstProp` only the 'ConstProp' pass for function names containing 'foo',
        `foo | bar` all passes for function names containing 'foo' or 'bar'.
    -Z                   dump-mir-dir=val -- the directory the MIR is dumped into
...
```

Fixes #56558

5 years agoRollup merge of #56248 - estebank:suggest-bare-pub, r=petrochenkov
Mazdak Farrokhzad [Sat, 8 Dec 2018 07:43:43 +0000 (08:43 +0100)]
Rollup merge of #56248 - estebank:suggest-bare-pub, r=petrochenkov

Suggest an appropriate token when encountering `pub Ident<'a>`

Fix #55403. Follow up to #45997.

5 years agoAuto merge of #56583 - RalfJung:vergen, r=oli-obk
bors [Sat, 8 Dec 2018 07:36:15 +0000 (07:36 +0000)]
Auto merge of #56583 - RalfJung:vergen, r=oli-obk

update vergen

Fixes https://github.com/rust-lang/rust/issues/56576

r? @oli-obk

5 years agoAdd missing comma in Generators
morganamilo [Sat, 8 Dec 2018 04:13:18 +0000 (04:13 +0000)]
Add missing comma in Generators

5 years agoAuto merge of #56578 - alexreg:cosmetic-1, r=alexreg
bors [Sat, 8 Dec 2018 03:50:16 +0000 (03:50 +0000)]
Auto merge of #56578 - alexreg:cosmetic-1, r=alexreg

Various minor/cosmetic improvements to code

r? @Centril 😄

5 years agoFixed nll stderr file.
Alexander Regueiro [Sat, 8 Dec 2018 03:16:39 +0000 (03:16 +0000)]
Fixed nll stderr file.

5 years agoresolve: Reduce some clutter in import ambiguity errors
Vadim Petrochenkov [Sat, 8 Dec 2018 01:19:29 +0000 (04:19 +0300)]
resolve: Reduce some clutter in import ambiguity errors

5 years agoFixed line numbers in stderr file.
Alexander Regueiro [Fri, 7 Dec 2018 20:46:10 +0000 (20:46 +0000)]
Fixed line numbers in stderr file.

5 years agoFixed test stderr files.
Alexander Regueiro [Fri, 7 Dec 2018 17:51:18 +0000 (17:51 +0000)]
Fixed test stderr files.

5 years agoFixed incorrect reference to issue #23121.
Alexander Regueiro [Fri, 7 Dec 2018 02:31:02 +0000 (02:31 +0000)]
Fixed incorrect reference to issue #23121.

5 years agoFixed more imports and variable names.
Alexander Regueiro [Fri, 7 Dec 2018 02:39:33 +0000 (02:39 +0000)]
Fixed more imports and variable names.

5 years agoRe-added accidentally-removed imports.
Alexander Regueiro [Fri, 7 Dec 2018 01:40:42 +0000 (01:40 +0000)]
Re-added accidentally-removed imports.

5 years agoVarious minor/cosmetic improvements to code
Alexander Regueiro [Tue, 27 Nov 2018 02:59:49 +0000 (02:59 +0000)]
Various minor/cosmetic improvements to code

5 years agoAuto merge of #56258 - euclio:fs-read-write, r=euclio
bors [Fri, 7 Dec 2018 23:26:14 +0000 (23:26 +0000)]
Auto merge of #56258 - euclio:fs-read-write, r=euclio

use top level `fs` functions where appropriate

This commit replaces many usages of `File::open` and reading or writing
with `fs::read_to_string`, `fs::read` and `fs::write`. This reduces code
complexity, and will improve performance for most reads, since the
functions allocate the buffer to be the size of the file.

I believe that this commit will not impact behavior in any way, so some
matches will check the error kind in case the file was not valid UTF-8.
Some of these cases may not actually care about the error.

5 years agocodegen: Fix va_list - aaarch64 iOS/Windows
Dan Robertson [Wed, 5 Dec 2018 02:44:08 +0000 (02:44 +0000)]
codegen: Fix va_list - aaarch64 iOS/Windows

According to the Apple developer docs:

> The type va_list is an alias for char * rather than for the struct
> type specified in the generic PCS.

The current implementation uses the generic Aarch64 structure for VaList
for Aarch64 iOS.

Windows always uses the char * variant of the va_list.

5 years agoEncode `TraitAlias` as if they were `Trait`
Esteban Küber [Fri, 7 Dec 2018 22:52:44 +0000 (14:52 -0800)]
Encode `TraitAlias` as if they were `Trait`

5 years agoUpdate the book to fix some edition-related bugs
Carol (Nichols || Goulding) [Fri, 7 Dec 2018 22:43:00 +0000 (17:43 -0500)]
Update the book to fix some edition-related bugs

5 years agoAuto merge of #56502 - Zoxc:hir-func, r=eddyb
bors [Fri, 7 Dec 2018 20:04:06 +0000 (20:04 +0000)]
Auto merge of #56502 - Zoxc:hir-func, r=eddyb

Use a function to access the Hir map to be able to turn it into a query later

r? @eddyb

5 years agouse top level `fs` functions where appropriate
Andy Russell [Fri, 16 Nov 2018 21:22:06 +0000 (16:22 -0500)]
use top level `fs` functions where appropriate

This commit replaces many usages of `File::open` and reading or writing
with `fs::read_to_string`, `fs::read` and `fs::write`. This reduces code
complexity, and will improve performance for most reads, since the
functions allocate the buffer to be the size of the file.

I believe that this commit will not impact behavior in any way, so some
matches will check the error kind in case the file was not valid UTF-8.
Some of these cases may not actually care about the error.

5 years agoAuto merge of #56460 - davidtwco:issue-55850, r=pnkfelix
bors [Fri, 7 Dec 2018 17:37:44 +0000 (17:37 +0000)]
Auto merge of #56460 - davidtwco:issue-55850, r=pnkfelix

Fix ICE with generators and NLL

Fix #55850.

This PR stops an ICE in #55850 by not panicking when a region cannot be named. However, this PR does not (yet) fix the underlying issue that the correct name for the test case provided for the issue (in this instance, `'a`) was not found.

This PR also lays a little bit of groundwork by categorizing yields separately from returns so that region naming can be specialized for this case.

r? @pnkfelix

5 years agoupdate vergen
Ralf Jung [Fri, 7 Dec 2018 09:12:01 +0000 (10:12 +0100)]
update vergen

5 years agogrammar
Dale Wijnand [Fri, 7 Dec 2018 16:34:53 +0000 (17:34 +0100)]
grammar

5 years agoFix the just-introduced ptr::hash docs
Dale Wijnand [Fri, 7 Dec 2018 16:33:32 +0000 (17:33 +0100)]
Fix the just-introduced ptr::hash docs

5 years agoAuto merge of #56566 - ljedrz:fix_clippy_errors, r=cramertj
bors [Fri, 7 Dec 2018 15:21:18 +0000 (15:21 +0000)]
Auto merge of #56566 - ljedrz:fix_clippy_errors, r=cramertj

codegen_utils, driver: fix clippy errors

- remove a superfluous conversion
- remove an explicit `return`
- rename `MetadataOnlyCodegenBackend::new` to `::boxed`
- single-arm `match` > `if let`

5 years agoImprove the usage message for `-Z dump-mir`.
Edd Barrett [Fri, 7 Dec 2018 14:48:16 +0000 (14:48 +0000)]
Improve the usage message for `-Z dump-mir`.

5 years agoFix ICE in region naming.
David Wood [Mon, 3 Dec 2018 13:13:28 +0000 (14:13 +0100)]
Fix ICE in region naming.

This commit puts a fix in place for the ICE in region naming code so
that it doesn't break the compiler. However, this results in the
diagnostic being poorer as the borrow explanation that was causing the
ICE is not being added - this should be fixed as a follow-up.

5 years agoIntroduce constraint category for yields.
David Wood [Mon, 3 Dec 2018 13:11:53 +0000 (14:11 +0100)]
Introduce constraint category for yields.

This commit adds a new `ConstraintCategory` for yield points - this
allows for differentiation between a normal return and a yield in the
diagnostics.

5 years agoAuto merge of #56487 - nikic:discard-modules-earlier, r=alexcrichton
bors [Fri, 7 Dec 2018 12:18:19 +0000 (12:18 +0000)]
Auto merge of #56487 - nikic:discard-modules-earlier, r=alexcrichton

Discard LLVM modules earlier when performing ThinLTO

Currently ThinLTO is performed by first compiling all modules (and keeping them in memory), and then serializing them into ThinLTO buffers in a separate, synchronized step. Modules are later read back from ThinLTO buffers when running the ThinLTO optimization pipeline.

We can also find the following comment in `lto.rs`:

        // FIXME: right now, like with fat LTO, we serialize all in-memory
        //        modules before working with them and ThinLTO. We really
        //        shouldn't do this, however, and instead figure out how to
        //        extract a summary from an in-memory module and then merge that
        //        into the global index. It turns out that this loop is by far
        //        the most expensive portion of this small bit of global
        //        analysis!

I don't think that what is suggested here is the right approach: One of the primary benefits of using ThinLTO over ordinary LTO is that it's not necessary to keep all the modules (merged or not) in memory for the duration of the linking step.

However, we currently don't really make use of this (at least for crate-local ThinLTO), because we keep all modules in memory until the start of the LTO step. This PR changes the implementation to instead perform the serialization into ThinLTO buffers directly after the initial optimization step.

Most of the changes here are plumbing to separate out fat and thin lto handling in `write.rs`, as these now use different intermediate artifacts. For fat lto this will be in-memory modules, for thin lto it will be ThinLTO buffers.

r? @alexcrichton

5 years agoAuto merge of #56581 - kennytm:rollup, r=kennytm
bors [Fri, 7 Dec 2018 08:46:45 +0000 (08:46 +0000)]
Auto merge of #56581 - kennytm:rollup, r=kennytm

Rollup of 7 pull requests

Successful merges:

 - #56000 (Add Armv8-M Mainline targets)
 - #56250 (Introduce ptr::hash for references)
 - #56434 (Improve query cycle errors for parallel queries)
 - #56516 (Replace usages of `..i + 1` ranges with `..=i`.)
 - #56555 (Send textual profile data to stderr, not stdout)
 - #56561 (Fix bug in from_key_hashed_nocheck)
 - #56574 (Fix a stutter in the docs for slice::exact_chunks)

Failed merges:

r? @ghost

5 years agoAuto merge of #56066 - jethrogb:jb/sgx-target, r=alexcrichton
bors [Fri, 7 Dec 2018 06:34:16 +0000 (06:34 +0000)]
Auto merge of #56066 - jethrogb:jb/sgx-target, r=alexcrichton

Add SGX target to std and dependencies

This PR adds tier 3 `std` support for the `x86_64-fortanix-unknown-sgx` target.

### Background

Intel Software Guard Extensions (SGX) is an instruction set extension for x86 that allows executing code in fully-isolated *secure enclaves*. These enclaves reside in the address space of a regular user process, but access to the enclave's address space from outside (by e.g. the OS or a hypervisor) is blocked.

From within such enclaves, there is no access to the operating system or hardware peripherals. In order to communicate with the outside world, enclaves require an untrusted “helper” program that runs as a normal user process.

SGX is **not** a sandboxing technology: code inside SGX has full access to all memory belonging to the process it is running in.

### Overview

The Fortanix SGX ABI (compiler target `x86_64-fortanix-unknown-sgx`) is an interface for Intel SGX enclaves. It is a small yet functional interface suitable for writing larger enclaves. In contrast to other enclave interfaces, this interface is primarly designed for running entire applications in an enclave. The interface has been under development since early 2016 and builds on Fortanix's significant experience running enclaves in production.

Also unlike other enclave interfaces, this is the only implementation of an enclave interface that is nearly pure-Rust (except for the entry point code).

A description of the ABI may be found at https://docs.rs/fortanix-sgx-abi/ and https://github.com/fortanix/rust-sgx/blob/master/doc/FORTANIX-SGX-ABI.md.

The following parts of `std` are not supported and most operations will error when used:

* `std::fs`
* `std::process`
* `std::net::UdpSocket`

### Future plans

A separate PR (https://github.com/rust-lang/rust/pull/56067/) will add the SGX target to the rust compiler. In the very near future, I expect to upgrade this target to tier 2.

This PR is just the initial support to make things mostly work. There will be more work coming in the future, for example to add interfaces to the native SGX primitives, implement unwinding, optimize usercalls.

UDP and some form of filesystem support may be added in the future, but process support seems unlikely given the platform's constraints.

### Testing build

1. Install [Xargo](https://github.com/japaric/xargo): `cargo install xargo`
2. Create a new Cargo project, for example: `cargo new --bin sgxtest`.
3. Put the following in a file `Xargo.toml` next to your `Cargo.toml`:

```toml
[target.x86_64-fortanix-unknown-sgx.dependencies.std]
git = "https://github.com/jethrogb/rust"
branch = "jb/sgx-target"
```

NB. This can be quite slow. Instead, you can have a local checkout of that branch and use `path = "/path/to/rust/src/libstd"` instead. Don't forget to checkout the submodules too!

4. Build:

```sh
xargo build --target x86_64-fortanix-unknown-sgx
```

### Testing execution

Execution is currently only supported on x86-64 Linux, but support for Windows is planned.

1. Install pre-requisites. In order to test execution, you'll need to have a CPU with Intel SGX support. SGX support needs to be enabled in the BIOS. You'll also need to install the SGX driver and Platform Software (PSW) from [Intel](https://01.org/intel-software-guard-extensions).

2. Install toolchain, executor:
```sh
cargo install sgxs-tools --version 0.6.0-rc1
cargo install fortanix-sgx-tools --version 0.1.0-rc1
```

3. Start the enclave:

```sh
ftxsgx-elf2sgxs target/x86_64-fortanix-unknown-sgx/debug/sgxtest --heap-size 0x20000 --ssaframesize 1 --stack-size 0x20000 --threads 1 --debug
sgxs-append -i target/x86_64-fortanix-unknown-sgx/debug/sgxtest.sgxs
ftxsgx-runner target/x86_64-fortanix-unknown-sgx/debug/sgxtest.sgxs
```

5 years agoSGX target: implement command-line arguments and environment variables
Jethro Beekman [Fri, 21 Sep 2018 01:01:10 +0000 (18:01 -0700)]
SGX target: implement command-line arguments and environment variables

5 years agoSGX target: implement time
Jethro Beekman [Wed, 19 Sep 2018 23:48:04 +0000 (16:48 -0700)]
SGX target: implement time

5 years agoSGX target: implement networking
Jethro Beekman [Wed, 19 Sep 2018 22:59:06 +0000 (15:59 -0700)]
SGX target: implement networking

5 years agoSGX target: implement streams
Jethro Beekman [Mon, 17 Sep 2018 23:22:59 +0000 (16:22 -0700)]
SGX target: implement streams

5 years agoSGX target: implement synchronization primitives and threading
Jethro Beekman [Wed, 5 Sep 2018 23:19:35 +0000 (16:19 -0700)]
SGX target: implement synchronization primitives and threading