81419 Commits

Author SHA1 Message Date
Pietro Albini
9443dd519d
Rollup merge of #52878 - mikhail-m1:master, r=kennytm
Fix wrong issue number in the test name

I made a mistake in previous PR #52620, second issue number was wrong, changing from #52133 to #52113

r? @kennytm
2018-08-01 10:13:00 +02:00
Pietro Albini
b3d6050358
Rollup merge of #52876 - cuviper:const-endianness-be, r=kennytm
run-pass/const-endianness: negate before to_le()

`const LE_I128` needs parentheses to negate the value *before* calling
`to_le()`, otherwise it doesn't match the operations performed in the
black-boxed part of the test.  This only makes a tangible difference on
big-endian targets.
2018-08-01 10:12:58 +02:00
Pietro Albini
341f882462
Rollup merge of #52870 - cramertj:unpin-futureobj, r=aturon
Implement Unpin for FutureObj and LocalFutureObj

cc @MajorBreakfast

r? @aturon
2018-08-01 10:12:57 +02:00
Pietro Albini
51e744bdd6
Rollup merge of #52867 - matthiaskrgr:release_typos, r=Mark-Simulacrum
releases.md: fix 2 typos
2018-08-01 10:12:56 +02:00
Pietro Albini
f47a76477d
Rollup merge of #52861 - ColinFinck:master, r=alexcrichton
Add targets for HermitCore (https://hermitcore.org) to the Rust compiler and port libstd to it.

As a start, the port uses the simplest possible configuration (no jemalloc, abort on panic) and makes use of existing Unix-specific code wherever possible.
It adds targets for x86_64 (current main HermitCore platform) and aarch64 (HermitCore platform under development).

Together with the patches to "liblibc" (https://github.com/rust-lang/libc/pull/1048) and llvm (https://github.com/rust-lang/llvm/pull/122), this enables HermitCore applications to be written in Rust.
2018-08-01 10:12:55 +02:00
Pietro Albini
eb71c3589a
Rollup merge of #52859 - ljedrz:smallvec_true_extend, r=Mark-Simulacrum
Use Vec::extend in SmallVec::extend when applicable

As calculated in #52738, `Vec::extend` is much faster than `push`ing to it in a loop. We can take advantage of this method in `SmallVec` too - at least in cases when its underlying object is an `AccumulateVec::Heap`.

~~This approach also accidentally improves the `push` loop of the `AccumulateVec::Array` variant, because it doesn't utilize `SmallVec::push` which performs `self.reserve(1)` with every iteration; this is unnecessary, because we're already reserving the whole space we will be needing by performing `self.reserve(iter.size_hint().0)` at the beginning.~~
2018-08-01 10:12:54 +02:00
Pietro Albini
6767886238
Rollup merge of #52853 - RalfJung:bootstrap-help, r=alexcrichton
Improve bootstrap help on stages

Cc @eddyb
2018-08-01 10:12:52 +02:00
Pietro Albini
5fb7c65f54
Rollup merge of #52851 - flip1995:tool_lints, r=oli-obk
Make the tool_lints actually usable

cc #44690

Necessary for rust-lang-nursery/rust-clippy#2955 and rust-lang-nursery/rust-clippy#2977

This PR makes it possible for lint tools (at the moment only for Clippy) to implement the `tool_lints`, like it was documented in #52018.

Because the `declare_lint` macro is pretty cluttered right now, there was not really a good way to add the `tool_name` as an additional argument of the macro. That's why I chose to introduce the new `declare_tool_lint` macro.

The switch from `&str` to `String` in the `lint_groups` `FxHashMap` is because I got weird error messages in the `check_lint_name` method. And the `by_name` field of the `LintStore` also uses `String`.

### What comes with this PR:

If this PR lands and Clippy switches to the `tool_lints`, the currently used methods
```rust
#[cfg_attr(feature = "cargo-clippy", allow(clippy_lint))]
#[allow(unknown_lints, clippy_lint)]
```
to `allow`/`warn`/`deny`/`forbid` Clippy lints, won't have any effects anymore, but also won't produce a warning. That is because the name of `clippy_lint` will then be `clippy::clippy_lint`. (Maybe we can add a clippy lint to search for `cfg_attr` appearances with the `cargo-clippy` feature?)

r? @oli-obk
2018-08-01 10:12:51 +02:00
Pietro Albini
c9aca0343f
Rollup merge of #52846 - kennytm:bootstrap-curl-timeout, r=Mark-Simulacrum
Add timeout to use of `curl` in bootstrap.py.

Recently we've seen a lot of "30 minutes no output" spurious errors while downloading the bootstrap compiler. This added several timeout options so if the "30 minutes no output" errors were caused by connection or transfer issue, we could fail quicker for curl to retry.
2018-08-01 10:12:50 +02:00
Pietro Albini
a819a6ce38
Rollup merge of #52842 - toidiu:ak-commentUpdate, r=estebank
update comment

r? @joshtriplett

Addressing comment: https://github.com/rust-lang/rust/pull/52761#pullrequestreview-141323066
2018-08-01 10:12:48 +02:00
Pietro Albini
8b31f00401
Rollup merge of #52831 - dsciarra:rm-ref-to-author-file, r=alexcrichton
remove references to AUTHORS.txt file

Rust does not ship an AUTHORS.txt file anymore.
2018-08-01 10:12:47 +02:00
Pietro Albini
fe4358a34f
Rollup merge of #52825 - RalfJung:codegen, r=alexcrichton
Make sure #47772 does not regress

Mostly to make my life in https://github.com/rust-lang/rust/pull/52206 harder.^^

Or should I just add that test there?
2018-08-01 10:12:46 +02:00
Pietro Albini
61b9a516d3
Rollup merge of #52824 - varkor:fix-llvm-ret-move-warnings, r=rkruppe
Fix -Wpessimizing-move warnings in rustllvm/PassWrapper

These are producing warnings when building rustc (`warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]`).
2018-08-01 10:12:45 +02:00
Pietro Albini
9e43ebda53
Rollup merge of #52822 - MajorBreakfast:fix-from-local-waker, r=cramertj
Fix From<LocalWaker>

This is a follow-up to https://github.com/rust-lang/rust/pull/52640

Fixes `From<LocalWaker>` which is affected by the same accidental drop bug (unless I'm totally mistaken)

r? @cramertj
2018-08-01 10:12:44 +02:00
Pietro Albini
39406ee241
Rollup merge of #52821 - fukatani:gdb-vecdeque-print, r=michaelwoerister
pretty print for std::collections::vecdeque

I want pretty print function for VecDeque like Vec.

```rust
use std::collections::VecDeque;

fn main() {
    let mut d: VecDeque<i32> = VecDeque::new();
    d.push_back(4);
    d.push_back(4);
    d.push_back(6);
    let mut v: Vec<i32> = Vec::new();
    v.push(4);
    v.push(4);
    v.push(6);
}
```

```
(gdb) p v
$1 = Vec<i32>(len: 3, cap: 4) = {4, 4, 6}
(gdb) p d
$2 = VecDeque<i32>(len: 3, cap: 8) = {4, 4, 6}
```

Thanks.
2018-08-01 10:12:42 +02:00
Pietro Albini
333d8c456c
Rollup merge of #52810 - matthewjasper:more-immutablity, r=pnkfelix
[NLL] Don't make "fake" match variables mutable

These variables can't be mutated by the user, but since they have names the unused-mut lint thinks that it should check them.
2018-08-01 10:12:41 +02:00
Pietro Albini
714fd37b8b
Rollup merge of #52778 - ljedrz:readable_serialize, r=kennytm
Improve readability of serialize.rs
2018-08-01 10:12:40 +02:00
Pietro Albini
06b91a4901
Rollup merge of #52771 - matklad:patch-1, r=kennytm
Clarify thread::park semantics

It took me quite some time to realize that the example is not actually racy, so let's clarify it? :-)
2018-08-01 10:12:38 +02:00
Pietro Albini
dafe33524a
Rollup merge of #52745 - commandline:master, r=oli-obk
Update clippy to latest master

r? @oli-obk

There is a regression in the version in current nightly that falsely lints `println!` and `writeln!` that use named arguments, thinking all rhs values for the argument expressions are literals even when they are not. This update includes the fix for that.
2018-08-01 10:12:37 +02:00
Pietro Albini
acff794b68
Rollup merge of #52732 - SimonSapin:spring, r=Mark-Simulacrum
Remove unstable and deprecated APIs
2018-08-01 10:12:36 +02:00
Pietro Albini
03df573c57
Rollup merge of #52628 - Mark-Simulacrum:rustdoc-cleanup-1, r=QuietMisdreavus
Cleanup some rustdoc code

Commits are mostly individual though some do depend on others.
2018-08-01 10:12:35 +02:00
Pietro Albini
b7ee110ea2
Rollup merge of #52340 - cypher:document-from-trait-in-ffi, r=steveklabnik
Document From trait implementations for OsStr, OsString, CString, and CStr

As part of issue #51430 (cc @skade).

The allocation and copy claims should be double-checked.

r? @steveklabnik
2018-08-01 10:12:32 +02:00
Mark Rousskov
0f680b38d0 Fixup test case 2018-07-31 17:55:12 -06:00
Mark Rousskov
4cd004775c Add dyn to Write 2018-07-31 17:55:12 -06:00
Mark Rousskov
8e65a46268 Cleanup highlighting code
Removes some unused code and de-publicizes structs
2018-07-31 17:55:12 -06:00
Mark Rousskov
7bea518d3a Remove global derive_id and reset_ids functions
Previously these functions relied on TLS but we can instead thread the
relevant state through explicitly.
2018-07-31 17:55:12 -06:00
bors
e94df4acb4 Auto merge of #52234 - petrochenkov:macuse2, r=Mark-Simulacrum
resolve: Modularize crate-local `#[macro_export] macro_rules`

Based on https://github.com/rust-lang/rust/pull/50911, cc https://github.com/rust-lang/rust/pull/50911#issuecomment-401151270

`#[macro_export] macro_rules` items are collected from the whole crate and are planted into the root module as items, so the external view of the crate is symmetric with its internal view and something like `$crate::my_macro` where `my_macro` is `#[macro_export] macro_rules` works both locally and from other crates.

Closes https://github.com/rust-lang/rust/issues/52726
2018-07-31 20:52:14 +00:00
Mark Rousskov
2216db9de7 Format code for easier editing 2018-07-31 11:39:04 -06:00
Mark Rousskov
01d95558e6 Further extract error code switch
Removes dependency on UnstableFeatures from markdown rendering
2018-07-31 11:39:02 -06:00
Mark Rousskov
03e34f8f81 Remove dependency on error handling from find_testable_code 2018-07-31 11:37:21 -06:00
Mark Rousskov
de5cebdba5 Provide test configuration through struct
This is far more sound than passing many different arguments of the same
type.
2018-07-31 11:37:21 -06:00
Mark Rousskov
ad40e4517f Provide warnings for invalid code blocks in markdown files
Previously we would only warn on Rust code but we can also do so when
testing markdown (the diag::Handler is available).
2018-07-31 11:37:21 -06:00
Mark Rousskov
0af5a6be05 Pull out nightly checking to edges
Parsing the code block's LangString (```foo) previously checked itself
to see if we were on nightly; that isn't the right place to do so. Move
that check slightly outwards to better abstract LangString.

(This is also an optimization as we avoid the costly environment
variable load of RUSTC_BOOTSTRAP).
2018-07-31 11:37:21 -06:00
bors
f89817997a Auto merge of #52461 - irinagpopa:safe-llvm, r=nikomatsakis
rustc_codegen_llvm: use safe references for LLVM FFI types.

Part of #45274.
2018-07-31 13:32:32 +00:00
Irina Popa
baff67d51f rustc_llvm: fix linking on mingw. 2018-07-31 15:36:38 +03:00
ljedrz
ca52648264 Benchmarks for SmallVec 2018-07-31 14:11:04 +02:00
bors
ed8d14db99 Auto merge of #50267 - humanenginuity:master, r=alexcrichton
Implement inner deref for Option and Result

tracking issue: #50264
2018-07-31 11:20:16 +00:00
Ralf Jung
fb7d8a12db hopefully make test pass on windows 2018-07-31 11:17:26 +02:00
bors
8961132010 Auto merge of #52850 - SimonSapin:unstablize, r=alexcrichton
Revert "Stabilize to_bytes and from_bytes for integers."

This reverts commit c8f9b84b393915a48253e3edc862c15a9b7152a7 / PR https://github.com/rust-lang/rust/pull/51835, and reopens the tracking issue https://github.com/rust-lang/rust/issues/49792.

These methods were stabilized in Rust 1.29, which is still in Nightly as of this writing. So my understanding is that it is still time to change our minds. Given the ongoing discussion in https://github.com/rust-lang/rust/pull/51919 about possibly renaming these APIs and since 1.29 goes to beta soon, I’d like to revert this stabilization for now until a decision is made in that PR. It’s possible that a decision will be made in time for 1.29, but there is no urgency. At most I expect this functionality to make it into 1.30.
2018-07-31 09:08:33 +00:00
Ralf Jung
50773991d3 make sure that the no-panic test tests what it is supposed to test 2018-07-31 10:33:32 +02:00
Colin Finck
4ad4ad02eb Fix coding style. 2018-07-31 09:49:10 +02:00
bors
d2652f6c1d Auto merge of #52630 - Mark-Simulacrum:rustdoc-cleanup-2, r=QuietMisdreavus
Delete unused code in rustdoc

Also hid the unused crate exports of rustdoc. This is technically a breaking change but we don't even ship librustdoc in the sysroot so I don't expect breakage.
2018-07-31 07:02:10 +00:00
bors
4fbd4a55f7 Auto merge of #52863 - steveklabnik:update-books, r=Mark-Simulacrum
update books for new release

r? @Mark-Simulacrum
2018-07-31 03:30:47 +00:00
bors
cc408fb5be Auto merge of #52731 - nikomatsakis:issue-52057-inference-variable, r=pnkfelix
Issue 52057 — inference variable

Break out the computation of universal region relations and do it during the typeck, where we can handle the resulting constraints that arise.

r? @pnkfelix
2018-07-31 01:25:49 +00:00
Niko Matsakis
b9652aee65 region_infer: rustfmt, pacifying the mercilous tidy 2018-07-31 02:31:41 +02:00
Niko Matsakis
9baf01363c assert no region obligations on entering custom type op
Fixes #51649
2018-07-31 02:31:41 +02:00
Niko Matsakis
68c2a39a72 free RegionBoundPairs earlier and avoid normalizing twice
Normalization results are memoized, so this may not be worth it, but it
seems easy enough to do.
2018-07-31 02:31:41 +02:00
Niko Matsakis
490928f709 remove region_bound_pairs from FRR as they are not needed later 2018-07-31 02:31:41 +02:00
Niko Matsakis
1e1f18ddba make a free fn for creating the URR 2018-07-31 02:31:41 +02:00
Niko Matsakis
d42bc58b1d add regression test for #52057
Fixes #52057
2018-07-31 02:31:41 +02:00