]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoRollup merge of #56439 - JohnGinger:master, r=nikomatsakis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:16 +0000 (14:08 +0100)]
Rollup merge of #56439 - JohnGinger:master, r=nikomatsakis

Clearer error message for dead assign

I'm not that this is the right place for this (if it needs an RFC or not).

I had the problem where I misunderstood the compiler lint message https://github.com/rust-lang/rust/issues/56436 and other people seem to have had the same problem https://www.reddit.com/r/rust/comments/8cy9p4/value_assigned_to_is_never_read/.

I think this new wording might be slightly clearer (and help out beginners like me). I'm very new though, so there might be some nuance I'm missing that would make this more confusing or a bad idea for other reasons.

I thought I would create a PR to make it easy to change the code if the consensus was that it would make sense to make a change.

If this is the wrong place for this sort of thing I'll happily delete/move it.

5 years agoRollup merge of #56343 - yui-knk:remove_mir_stats_mod, r=nikomatsakis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:15 +0000 (14:08 +0100)]
Rollup merge of #56343 - yui-knk:remove_mir_stats_mod, r=nikomatsakis

Remove not used mod

`mir_stats` mod has not been used since c1ff10464dc6b685f871d2365e3d8a39de324ba9.

5 years agoRollup merge of #53506 - phungleson:fix-from-docs-atomic, r=KodrAus
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:13 +0000 (14:08 +0100)]
Rollup merge of #53506 - phungleson:fix-from-docs-atomic, r=KodrAus

Documentation for impl From for AtomicBool and other Atomic types

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

The impl is very simple, so not sure if we need to go into any details.

5 years agoAuto merge of #56600 - ljedrz:fix_edition, r=Mark-Simulacrum
bors [Sat, 15 Dec 2018 23:50:47 +0000 (23:50 +0000)]
Auto merge of #56600 - ljedrz:fix_edition, r=Mark-Simulacrum

bootstrap: fix edition

A byproduct of work on https://github.com/rust-lang/rust/pull/56595; done with `cargo fix --edition`.

5 years agoAuto merge of #56203 - aheart:master, r=varkor
bors [Sat, 15 Dec 2018 21:34:22 +0000 (21:34 +0000)]
Auto merge of #56203 - aheart:master, r=varkor

Add lint for items deprecated in future

Resolves #55892

5 years agoAuto merge of #56847 - pietroalbini:fix-broken-toolstate, r=pietroalbini
bors [Sat, 15 Dec 2018 19:11:33 +0000 (19:11 +0000)]
Auto merge of #56847 - pietroalbini:fix-broken-toolstate, r=pietroalbini

Revert merge of #56758 - Manishearth:emoji-status-toolstate

#56758 is breaking master.

r? @ghost
cc @Manishearth @kennytm

5 years agoAuto merge of #56846 - pietroalbini:rollup, r=pietroalbini
bors [Sat, 15 Dec 2018 16:56:10 +0000 (16:56 +0000)]
Auto merge of #56846 - pietroalbini:rollup, r=pietroalbini

Rollup of 7 pull requests

Successful merges:

 - #56677 (#[must_use] on traits in stdlib)
 - #56679 (overhaul external doc attribute diagnostics)
 - #56682 (Update the stdsimd submodule)
 - #56691 (fix install broken link)
 - #56710 (Always set the RDRAND and RDSEED features on SGX)
 - #56713 (Test capacity of ZST vector)
 - #56841 (Add some unit tests to compiletest)

Failed merges:

r? @ghost

5 years agoRevert "Rollup merge of #56758 - Manishearth:emoji-status-toolstate, r=kennytm"
Pietro Albini [Sat, 15 Dec 2018 13:57:17 +0000 (14:57 +0100)]
Revert "Rollup merge of #56758 - Manishearth:emoji-status-toolstate, r=kennytm"

This reverts commit 050bb10dc3e1d1c6a0aee3c50955d401658dece5, reversing
changes made to c530e31245ba10b2587bc908a65bd6e7910bc50f.

5 years agoRollup merge of #56841 - phansch:add_various_compiletest_unittests, r=oli-obk
Pietro Albini [Sat, 15 Dec 2018 13:47:40 +0000 (14:47 +0100)]
Rollup merge of #56841 - phansch:add_various_compiletest_unittests, r=oli-obk

Add some unit tests to compiletest

Based on #56792, otherwise the tests won't be executed on CI.

Just a small start, I would like to add more testing to compiletest in the future but that will require some refactoring first.

cc #47606

5 years agoRollup merge of #56713 - xfix:vec-test-zst-capacity, r=TimNN
Pietro Albini [Sat, 15 Dec 2018 13:47:39 +0000 (14:47 +0100)]
Rollup merge of #56713 - xfix:vec-test-zst-capacity, r=TimNN

Test capacity of ZST vector

Initially, #50233 accidentally changed the capacity of empty ZST. This was pointed out during code review. This commit adds a test to prevent capacity of ZST vectors from accidentally changing to prevent that from happening again.

5 years agoRollup merge of #56710 - jethrogb:jb/sgx-target-features, r=alexcrichton
Pietro Albini [Sat, 15 Dec 2018 13:47:38 +0000 (14:47 +0100)]
Rollup merge of #56710 - jethrogb:jb/sgx-target-features, r=alexcrichton

Always set the RDRAND and RDSEED features on SGX

Not sure if this is 100% correct.

This [Intel article](https://software.intel.com/en-us/articles/intel-software-guard-extensions-tutorial-part-5-enclave-development) goes in great depth regarding using (untrusted) CPUID to see whether RDRAND/RDSEED is supported, and explains what happens to the enclave if the CPUID result is faked.

I'd say that an implementation of SGX that doesn't make RDRAND available to the enclave is so severely limited/broken that it's ok if you get #UD in that case. The case is less clear for RDSEED, but it so far every processor released by Intel with SGX support also has RDSEED (including Gemini Lake).

cc @briansmith

5 years agoRollup merge of #56691 - mishaker:fix_doc_install_broken_link, r=jonas-schievink
Pietro Albini [Sat, 15 Dec 2018 13:47:37 +0000 (14:47 +0100)]
Rollup merge of #56691 - mishaker:fix_doc_install_broken_link, r=jonas-schievink

fix install broken link

solves #56690

5 years agoRollup merge of #56682 - alexcrichton:update-stdsimd, r=nikomatsakis
Pietro Albini [Sat, 15 Dec 2018 13:47:36 +0000 (14:47 +0100)]
Rollup merge of #56682 - alexcrichton:update-stdsimd, r=nikomatsakis

Update the stdsimd submodule

Includes some new stabilized intrinsics for the wasm32 target!

Closes #56292

5 years agoRollup merge of #56679 - euclio:external-doc-parse, r=estebank
Pietro Albini [Sat, 15 Dec 2018 13:47:34 +0000 (14:47 +0100)]
Rollup merge of #56679 - euclio:external-doc-parse, r=estebank

overhaul external doc attribute diagnostics

This PR improves the error handling and spans for the external doc attribute. Many cases that silently failed before now emit errors, spans are tightened, and the errors have help and suggestions.

I tried to address all the cases that users ran into in the tracking issue.

cc #44732

r? @QuietMisdreavus

5 years agoRollup merge of #56677 - aelred:must-use-on-traits, r=estebank
Pietro Albini [Sat, 15 Dec 2018 13:47:33 +0000 (14:47 +0100)]
Rollup merge of #56677 - aelred:must-use-on-traits, r=estebank

#[must_use] on traits in stdlib

Based on #55506.

Adds `#[must_use]` attribute to traits in the stdlib:
- `Iterator`
- `Future`
- `FnOnce`
- `Fn`
- `FnMut`

There may be other traits that should have the attribute, but I couldn't find/think of any.

5 years agoAuto merge of #56840 - pietroalbini:rollup, r=pietroalbini
bors [Sat, 15 Dec 2018 11:31:40 +0000 (11:31 +0000)]
Auto merge of #56840 - pietroalbini:rollup, r=pietroalbini

Rollup of 14 pull requests

Successful merges:

 - #56718 (Use libbacktrace pretty-printing)
 - #56725 (fix rust-lang/rust issue #50583)
 - #56731 (Add missing urls in ffi module docs)
 - #56738 (Fix private_no_mangle_fns message grammar)
 - #56746 (Add test of current behavior (infer free region within closure body))
 - #56747 (target: remove Box returned by get_targets)
 - #56751 (Allow ptr::hash to accept fat pointers)
 - #56755 (Account for `impl Trait` when suggesting lifetime)
 - #56758 (Add short emoji status to toolstate updates)
 - #56760 (Deduplicate unsatisfied trait bounds)
 - #56769 (Add x86_64-unknown-uefi target)
 - #56792 (Bootstrap: Add testsuite for compiletest tool)
 - #56808 (Fixes broken links)
 - #56809 (Fix docs path to PermissionsExt)

Failed merges:

r? @ghost

5 years agocompiletest: unit test parse_normalization_string
Philipp Hansch [Sat, 15 Dec 2018 09:58:24 +0000 (10:58 +0100)]
compiletest: unit test parse_normalization_string

There is a FIXME inside that function and I think the unit tests can be
helpful to resolve it without breaking anything else.

5 years agocompiletest: Add some compiletest::util unittests
Philipp Hansch [Sat, 15 Dec 2018 09:58:03 +0000 (10:58 +0100)]
compiletest: Add some compiletest::util unittests

5 years agoBootstrap: Add testsuite for compiletest tool
Philipp Hansch [Thu, 13 Dec 2018 20:57:23 +0000 (21:57 +0100)]
Bootstrap: Add testsuite for compiletest tool

The (currently) single unit test of the compiletest tool was never
executed on CI. At least I couldn't find any references of it in the
logs. This adds a test suite for compiletest so that our tester is
tested, too.

The compiletest tests can then also be executed with:

    ./x.py test src/tools/compiletest

5 years agoRollup merge of #56809 - dbrgn:permissions-ext, r=alexcrichton
Pietro Albini [Sat, 15 Dec 2018 09:17:43 +0000 (10:17 +0100)]
Rollup merge of #56809 - dbrgn:permissions-ext, r=alexcrichton

Fix docs path to PermissionsExt

Couldn't test the link yet, since I didn't figure out how to build std rustdocs without building the entire compiler itself :slightly_smiling_face:

5 years agoRollup merge of #56808 - jrvidal:broken-links, r=kennytm
Pietro Albini [Sat, 15 Dec 2018 09:17:42 +0000 (10:17 +0100)]
Rollup merge of #56808 - jrvidal:broken-links, r=kennytm

Fixes broken links

Just a few broken links.

Not sure what to do about this one: https://github.com/rust-lang/rust/blame/master/src/doc/unstable-book/src/language-features/plugin.md#L135 (regex macros were removed a while ago in https://github.com/rust-lang/regex/commit/037595438947eeb4c63a0185065b0143a7f2ac2c).

5 years agoRollup merge of #56792 - phansch:add_compiletest_testsuite, r=alexcrichton
Pietro Albini [Sat, 15 Dec 2018 09:17:40 +0000 (10:17 +0100)]
Rollup merge of #56792 - phansch:add_compiletest_testsuite, r=alexcrichton

Bootstrap: Add testsuite for compiletest tool

This adds a test suite for compiletest so that the tester is tested, too.

The (currently) single unit test of the compiletest tool was never executed
on CI. At least I couldn't find any references of it in the logs.

The compiletest tests can then also be executed with:

    ./x.py test src/tools/compiletest --stage 0

cc #47606

5 years agoRollup merge of #56769 - dvdhrm:uefi-target, r=alexcrichton
Pietro Albini [Sat, 15 Dec 2018 09:17:39 +0000 (10:17 +0100)]
Rollup merge of #56769 - dvdhrm:uefi-target, r=alexcrichton

Add x86_64-unknown-uefi target

This adds a new rustc target-configuration called 'x86_64-unknown_uefi'.
Furthermore, it adds a UEFI base-configuration to be used with other
targets supported by UEFI (e.g., i386, armv7hl, aarch64, itanium, ...).

UEFI systems provide a very basic operating-system environment, meant
to unify how systems are booted. It is tailored for simplicity and fast
setup, as it is only meant to bootstrap other systems. For instance, it
copies most of the ABI from Microsoft Windows, rather than inventing
anything on its own. Furthermore, any complex CPU features are
disabled. Only one CPU is allowed to be up, no interrupts other than
the timer-interrupt are allowed, no process-separation is performed,
page-tables are identity-mapped, ...

Nevertheless, UEFI has an application model. Its main purpose is to
allow operating-system vendors to write small UEFI applications that
load their kernel and terminate the UEFI system. However, many other
UEFI applications have emerged in the past, including network-boot,
debug-consoles, and more.

This UEFI target allows to compile rust code natively as UEFI
applications. No standard library support is added, but libcore can be
used out-of-the-box if a panic-handler is provided. Furthermore,
liballoc works as well, if a `GlobalAlloc` handler is provided. Both
have been tested with this target-configuration.

Note that full libstd support is unlikely to happen. While UEFI does
have standardized interfaces for networking and alike, none of these
are mandatory and they are unlikely to be shipped in common consumer
firmwares. Furthermore, several features like process-separation are
not available (or only in very limited fashion). Those parts of libstd
would have to be masked.

5 years agoRollup merge of #56760 - estebank:dedup-bounds, r=oli-obk
Pietro Albini [Sat, 15 Dec 2018 09:17:38 +0000 (10:17 +0100)]
Rollup merge of #56760 - estebank:dedup-bounds, r=oli-obk

Deduplicate unsatisfied trait bounds

Fix #35677.

5 years agoRollup merge of #56758 - Manishearth:emoji-status-toolstate, r=kennytm
Pietro Albini [Sat, 15 Dec 2018 09:17:37 +0000 (10:17 +0100)]
Rollup merge of #56758 - Manishearth:emoji-status-toolstate, r=kennytm

Add short emoji status to toolstate updates

I get a lot of these emails and it's good to know which ones I should be paying closer attention to -- i.e. the ones where clippy breaks. This adds a short emoji status report to the first line of the commit message, which shows up in notifications directly

I haven't been able to test it, and the actual emoji are just suggestions.

r? @kennytm

cc @rust-lang/infra @rust-lang/devtools

5 years agoRollup merge of #56755 - estebank:impl-trait-lt-sugg, r=cramertj
Pietro Albini [Sat, 15 Dec 2018 09:17:36 +0000 (10:17 +0100)]
Rollup merge of #56755 - estebank:impl-trait-lt-sugg, r=cramertj

Account for `impl Trait` when suggesting lifetime

Fix https://github.com/rust-lang/rust/issues/56745

5 years agoRollup merge of #56751 - mbrubeck:hash, r=dtolnay
Pietro Albini [Sat, 15 Dec 2018 09:17:35 +0000 (10:17 +0100)]
Rollup merge of #56751 - mbrubeck:hash, r=dtolnay

Allow ptr::hash to accept fat pointers

Fat pointers implement Hash since #45483.  This is a follow-up to #56250.

5 years agoRollup merge of #56747 - ljedrz:remove_box_from_target, r=zackmdavis
Pietro Albini [Sat, 15 Dec 2018 09:17:33 +0000 (10:17 +0100)]
Rollup merge of #56747 - ljedrz:remove_box_from_target, r=zackmdavis

target: remove Box returned by get_targets

5 years agoRollup merge of #56746 - pnkfelix:issue-56537-add-test-of-closure-using-region-from...
Pietro Albini [Sat, 15 Dec 2018 09:17:32 +0000 (10:17 +0100)]
Rollup merge of #56746 - pnkfelix:issue-56537-add-test-of-closure-using-region-from-containing-fn, r=nikomatsakis

Add test of current behavior (infer free region within closure body)

This behavior was previously not encoded in our test suite.

it is pretty important that we test this behavior. In particular, in #56537  I had proposed expanding the lifetime elision rules so that they would apply to some of the cases encoded in this test, which would cause them to start failing to compile successfully (because the lifetime attached to the return type would start being treated as connected to the lifetime on the input parameter to the lambda expression, which is explicitly *not* what the code wants in this particular case).

In other words, I am trying to ensure that anyone who tries such experiments with lifetime elision in the future quickly finds out why we don't support lifetime elision on lambda expressions (at least not in the naive manner described on #56537).

5 years agoRollup merge of #56738 - turboladen:fix-private_no_mangle_fns-message, r=zackmdavis
Pietro Albini [Sat, 15 Dec 2018 09:17:31 +0000 (10:17 +0100)]
Rollup merge of #56738 - turboladen:fix-private_no_mangle_fns-message, r=zackmdavis

Fix private_no_mangle_fns message grammar

Simply changes "an warning" to "a warning" in the `private_no_mangle_fns` warning. I started getting this in some code after upgrading to 1.31.0.

5 years agoRollup merge of #56731 - GuillaumeGomez:ffi-doc-urls, r=Centril
Pietro Albini [Sat, 15 Dec 2018 09:17:30 +0000 (10:17 +0100)]
Rollup merge of #56731 - GuillaumeGomez:ffi-doc-urls, r=Centril

Add missing urls in ffi module docs

r? @QuietMisdreavus

5 years agoRollup merge of #56725 - piersfinlayson:master, r=alexcrichton
Pietro Albini [Sat, 15 Dec 2018 09:17:29 +0000 (10:17 +0100)]
Rollup merge of #56725 - piersfinlayson:master, r=alexcrichton

fix rust-lang/rust issue #50583

Rationale for the fix is in #50583.  I've verified that before the fix /musl-armhf/lib/libc.a is riddled with the illegal variant of vmov.f64 and after the fix the version built doesn't contain any of these illegal instructions.

I originally thought that the arm-linux-gnueabi version also needed fixing - to add a -mfloat-abi-soft but that's unnecessary as it's compiled with the gnueabi (not hf) compiler (I've some a quick check that the libc.a produced doesn't include VFP instructions).

r? @alexcrichton

5 years agoRollup merge of #56718 - RalfJung:use-libbacktrace-printing, r=alexcrichton
Pietro Albini [Sat, 15 Dec 2018 09:17:27 +0000 (10:17 +0100)]
Rollup merge of #56718 - RalfJung:use-libbacktrace-printing, r=alexcrichton

Use libbacktrace pretty-printing

r? @alexcrichton

5 years agoAuto merge of #56584 - davidtwco:issue-53990, r=nikomatsakis
bors [Sat, 15 Dec 2018 09:05:04 +0000 (09:05 +0000)]
Auto merge of #56584 - davidtwco:issue-53990, r=nikomatsakis

2018 edition - confusing error message when declaring unnamed parameters

Fixes #53990.

This PR adds a note providing context for the change to argument
names being required in the 2018 edition for trait methods and a
suggestion for the fix.

5 years agoAuto merge of #56005 - GuillaumeGomez:speedup-doc-render, r=QuietMisdreavus
bors [Sat, 15 Dec 2018 06:42:27 +0000 (06:42 +0000)]
Auto merge of #56005 - GuillaumeGomez:speedup-doc-render, r=QuietMisdreavus

Greatly improve rustdoc rendering speed issues

Fixes #55900.

So a few improvements here:

* we're switching to `DOMTokenList` API when available providing a replacement if it isn't (should only happen on safari and IE I think...)
* hide doc sections by default to allow the whole HTML generation to happen in the background to avoid triggering DOM redraw all the times (which killed the performances)

r? @QuietMisdreavus

5 years agoAuto merge of #56540 - oli-obk:less_const_hackery, r=varkor
bors [Sat, 15 Dec 2018 04:24:16 +0000 (04:24 +0000)]
Auto merge of #56540 - oli-obk:less_const_hackery, r=varkor

Don't depend on `Allocation` sizes for pattern length

And generally be more explicit about shortcomings of the implementation

cc @RalfJung

5 years agoAuto merge of #56825 - alexcrichton:demangle-mem, r=nikomatsakis
bors [Sat, 15 Dec 2018 00:50:19 +0000 (00:50 +0000)]
Auto merge of #56825 - alexcrichton:demangle-mem, r=nikomatsakis

std: Activate compiler_builtins `mem` feature for no_std targets

This was an accidental regression from #56092, but for `no_std` targets
being built and distributed we want to be sure to activate the
compiler-builtins `mem` feature which demangles important memory-related
intrinsics.

5 years agoBootstrap: Add testsuite for compiletest tool
Philipp Hansch [Thu, 13 Dec 2018 20:57:23 +0000 (21:57 +0100)]
Bootstrap: Add testsuite for compiletest tool

The (currently) single unit test of the compiletest tool was never
executed on CI. At least I couldn't find any references of it in the
logs. This adds a test suite for compiletest so that our tester is
tested, too.

The compiletest tests can then also be executed with:

    ./x.py test src/tools/compiletest

5 years agoAuto merge of #56572 - kevgrasso:let_self_err_dev, r=estebank
bors [Fri, 14 Dec 2018 20:36:12 +0000 (20:36 +0000)]
Auto merge of #56572 - kevgrasso:let_self_err_dev, r=estebank

Contexually dependent error message for E0424 when value is assigned to "self"

This is an improvement for pull request #54495 referencing issue #54369. If the "self" keyword is assigned a value as though it were a valid identifier, it will now report:
```
let self = "self";
    ^^^^ `self` value is a keyword and may not be bound to variables or shadowed
```
instead of
```
let self = "self";
    ^^^^ `self` value is a keyword only available in methods with `self` parameter
```
If anyone has a better idea for what the error should be I'd be happy to modify it appropriately.

5 years agostd: Activate compiler_builtins `mem` feature for no_std targets
Alex Crichton [Fri, 14 Dec 2018 17:05:31 +0000 (09:05 -0800)]
std: Activate compiler_builtins `mem` feature for no_std targets

This was an accidental regression from #56092, but for `no_std` targets
being built and distributed we want to be sure to activate the
compiler-builtins `mem` feature which demangles important memory-related
intrinsics.

5 years agoAuto merge of #56818 - kennytm:rollup-2, r=kennytm
bors [Fri, 14 Dec 2018 16:15:20 +0000 (16:15 +0000)]
Auto merge of #56818 - kennytm:rollup-2, r=kennytm

Rollup of 14 pull requests (first batch)

Successful merges:

 - #56562 (Update libc version required by rustc)
 - #56609 (Unconditionally emit the target-cpu LLVM attribute.)
 - #56637 (rustdoc: Fix local reexports of proc macros)
 - #56658 (Add non-panicking `maybe_new_parser_from_file` variant)
 - #56695 (Fix irrefutable matches on integer ranges)
 - #56699 (Use a `newtype_index!` within `Symbol`.)
 - #56702 ([self-profiler] Add column for percent of total time)
 - #56708 (Remove some unnecessary feature gates)
 - #56709 (Remove unneeded extra chars to reduce search-index size)
 - #56744 (specialize: remove Boxes used by Children::insert)
 - #56748 (Update panic message to be clearer about env-vars)
 - #56749 (x86: Add the `adx` target feature to whitelist)
 - #56756 (Disable btree pretty-printers on older gdbs)
 - #56789 (rustc: Add an unstable `simd_select_bitmask` intrinsic)

r? @ghost

5 years agoRollup merge of #56562 - pnkfelix:issue-55465-update-libc-version, r=alexcrichton
kennytm [Fri, 14 Dec 2018 14:11:39 +0000 (22:11 +0800)]
Rollup merge of #56562 - pnkfelix:issue-55465-update-libc-version, r=alexcrichton

Update libc version required by rustc

This is meant to be an easy-to-backport fix for #55465

5 years agoRollup merge of #56789 - alexcrichton:simd_select_bitmask, r=rkruppe
kennytm [Fri, 14 Dec 2018 14:10:21 +0000 (22:10 +0800)]
Rollup merge of #56789 - alexcrichton:simd_select_bitmask, r=rkruppe

rustc: Add an unstable `simd_select_bitmask` intrinsic

This is going to be required for binding a number of AVX-512 intrinsics
in the `stdsimd` repository, and this intrinsic is the same as
`simd_select` except that it takes a bitmask as the first argument
instead of a SIMD vector. This bitmask is then transmuted into a `<NN x
i8>` argument, depending on how many bits it is.

cc rust-lang-nursery/stdsimd#310

5 years agoRollup merge of #56756 - tromey:Bug-56730-btree-pretty-printer, r=alexcrichton
kennytm [Fri, 14 Dec 2018 14:10:19 +0000 (22:10 +0800)]
Rollup merge of #56756 - tromey:Bug-56730-btree-pretty-printer, r=alexcrichton

Disable btree pretty-printers on older gdbs

gdb versions before 8.1 have a bug that prevents the BTreeSet and
BTreeMap pretty-printers from working.  This patch disables the test
on those versions, and also disables the pretty-printers there as
well.

Closes #56730

5 years agoRollup merge of #56749 - alexcrichton:adx, r=gnzlbg
kennytm [Fri, 14 Dec 2018 14:10:18 +0000 (22:10 +0800)]
Rollup merge of #56749 - alexcrichton:adx, r=gnzlbg

x86: Add the `adx` target feature to whitelist

Requested in rust-lang-nursery/stdsimd#322 this is hopefully the first
step!

5 years agoRollup merge of #56748 - kinnison:kinnison/fix-56734, r=dtolnay
kennytm [Fri, 14 Dec 2018 14:10:17 +0000 (22:10 +0800)]
Rollup merge of #56748 - kinnison:kinnison/fix-56734, r=dtolnay

Update panic message to be clearer about env-vars

Esteban Kuber requested that the panic message make it clear
that `RUST_BACKTRACE=1` is an environment variable.  This change
makes that clear.

I understand that this may simply be closed if the concept isn't accepted, and I'd be fine with that :-)

Fixes #56734

5 years agoRollup merge of #56744 - ljedrz:unbox_the_children, r=matthewjasper
kennytm [Fri, 14 Dec 2018 14:10:16 +0000 (22:10 +0800)]
Rollup merge of #56744 - ljedrz:unbox_the_children, r=matthewjasper

specialize: remove Boxes used by Children::insert

5 years agoRollup merge of #56709 - GuillaumeGomez:reduce-search-index, r=QuietMisdreavus
kennytm [Fri, 14 Dec 2018 14:10:13 +0000 (22:10 +0800)]
Rollup merge of #56709 - GuillaumeGomez:reduce-search-index, r=QuietMisdreavus

Remove unneeded extra chars to reduce search-index size

Before:

```
2013782 Dec 11 10:16 build/x86_64-unknown-linux-gnu/doc/search-index.js
```

After:

```
1736597 Dec 11 10:50 build/x86_64-unknown-linux-gnu/doc/search-index.js
```

No changes in the output of the search.

r? @QuietMisdreavus

5 years agoRollup merge of #56708 - oli-obk:stability_internal_const_fn, r=alexcrichton
kennytm [Fri, 14 Dec 2018 14:10:12 +0000 (22:10 +0800)]
Rollup merge of #56708 - oli-obk:stability_internal_const_fn, r=alexcrichton

Remove some unnecessary feature gates

fixes #56585

cc @jethrogb

5 years agoRollup merge of #56702 - wesleywiser:calc_total_time_stats, r=michaelwoerister
kennytm [Fri, 14 Dec 2018 14:10:11 +0000 (22:10 +0800)]
Rollup merge of #56702 - wesleywiser:calc_total_time_stats, r=michaelwoerister

[self-profiler] Add column for percent of total time

Example output:

```
Self profiling results:

| Phase            | Time (ms)      | Time (%) | Queries        | Hits (%)
| ---------------- | -------------- | -------- | -------------- | --------
| Parsing          | 3              | 0.52     |                |
| Expansion        | 64             | 11.27    |                |
| TypeChecking     | 13             | 2.36     | 35208          | 90.77
| BorrowChecking   | 0              | 0.10     | 68             | 50.00
| Codegen          | 22             | 3.82     | 7362           | 75.12
| Linking          | 252            | 43.81    | 458            | 68.56
| Other            | 219            | 38.12    | 47372          | 56.84

Optimization level: No
Incremental: off

```

cc @michaelwoerister

5 years agoRollup merge of #56699 - nnethercote:SymbolIndex, r=oli-obk
kennytm [Fri, 14 Dec 2018 14:10:09 +0000 (22:10 +0800)]
Rollup merge of #56699 - nnethercote:SymbolIndex, r=oli-obk

Use a `newtype_index!` within `Symbol`.

This shrinks `Option<Symbol>` from 8 bytes to 4 bytes, which shrinks
`Token` from 24 bytes to 16 bytes. This reduces instruction counts by up
to 1% across a range of benchmarks.

r? @oli-obk

5 years agoRollup merge of #56695 - varkor:let-exhaustive-range, r=estebank
kennytm [Fri, 14 Dec 2018 14:10:08 +0000 (22:10 +0800)]
Rollup merge of #56695 - varkor:let-exhaustive-range, r=estebank

Fix irrefutable matches on integer ranges

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

5 years agoRollup merge of #56658 - Xanewok:non-panicking-file-parser, r=petrochenkov
kennytm [Fri, 14 Dec 2018 14:10:07 +0000 (22:10 +0800)]
Rollup merge of #56658 - Xanewok:non-panicking-file-parser, r=petrochenkov

Add non-panicking `maybe_new_parser_from_file` variant

Add (seemingly?) missing `maybe_new_parser_from_file` constructor variant.

Disclaimer: I'm not certain this is the correct approach - just found out we don't have this when working on a Rustfmt PR to catch/prevent more Rust parser panics: https://github.com/rust-lang/rustfmt/pull/3240 and tried to make it work somehow.

5 years agoRollup merge of #56637 - ollie27:rustdoc_proc_macro_local_reexport, r=QuietMisdreavus
kennytm [Fri, 14 Dec 2018 14:10:06 +0000 (22:10 +0800)]
Rollup merge of #56637 - ollie27:rustdoc_proc_macro_local_reexport, r=QuietMisdreavus

rustdoc: Fix local reexports of proc macros

Filter out `ProcMacroStub`s to avoid an ICE during cleaning.

Also add proc macros to `cache().paths` so it can generate links.

r? @QuietMisdreavus

5 years agoRollup merge of #56609 - michaelwoerister:unconditional-target-cpu-attr, r=alexcrichton
kennytm [Fri, 14 Dec 2018 14:10:04 +0000 (22:10 +0800)]
Rollup merge of #56609 - michaelwoerister:unconditional-target-cpu-attr, r=alexcrichton

Unconditionally emit the target-cpu LLVM attribute.

This PR makes `rustc` always emit the `target-cpu` LLVM attribute for functions. The goal is to allow for cross-language inlining of functions defined in `libstd`. So far `libstd` functions were the only function without a `target-cpu` attribute, so in whole-crate-graph cross-lang LTO scenarios they were not eligible for inlining into foreign code.

r? @alexcrichton

5 years agoAuto merge of #56568 - notriddle:master, r=alexcrichton
bors [Fri, 14 Dec 2018 13:44:15 +0000 (13:44 +0000)]
Auto merge of #56568 - notriddle:master, r=alexcrichton

Remove dependency on shell32.dll

Closes #56510 if it works on MinGW (I've only tested it on MSVC).

5 years agoFix docs path to PermissionsExt
Danilo Bargen [Fri, 14 Dec 2018 09:53:19 +0000 (10:53 +0100)]
Fix docs path to PermissionsExt

5 years agoFixes broken links
Roberto Vidal [Fri, 14 Dec 2018 09:36:37 +0000 (10:36 +0100)]
Fixes broken links

5 years agoAuto merge of #56490 - faern:add-checked-add-to-instant, r=alexcrichton
bors [Fri, 14 Dec 2018 09:10:35 +0000 (09:10 +0000)]
Auto merge of #56490 - faern:add-checked-add-to-instant, r=alexcrichton

Add checked_add method to Instant time type

Appending functionality to the already opened topic of `checked_add` on time types over at #55940.

Doing checked addition between an `Instant` and a `Duration` is important to reliably determine a future instant. We could use this in the `parking_lot` crate to compute an instant when in the future to wake a thread up without risking a panic.

5 years agoAuto merge of #56536 - alexcrichton:update-master, r=Mark-Simulacrum
bors [Fri, 14 Dec 2018 06:52:19 +0000 (06:52 +0000)]
Auto merge of #56536 - alexcrichton:update-master, r=Mark-Simulacrum

Bump to 1.33.0

* Update bootstrap compiler
* Update version to 1.33.0
* Remove some `#[cfg(stage0)]` annotations

5 years agoAuto merge of #56778 - Xanewok:update-clippy, r=kennytm
bors [Fri, 14 Dec 2018 03:22:14 +0000 (03:22 +0000)]
Auto merge of #56778 - Xanewok:update-clippy, r=kennytm

Update Clippy

Hopefully unbreaks toolstate: https://github.com/rust-lang/rust/pull/56092#issuecomment-446631916

5 years agodebug logging, added conditional error message, tests updated
Kevyn Grasso [Mon, 12 Nov 2018 20:50:27 +0000 (15:50 -0500)]
debug logging, added conditional error message, tests updated

5 years agoAuto merge of #56351 - davidtwco:issue-55396-stabilize-linker-flavor, r=nagisa
bors [Fri, 14 Dec 2018 00:28:08 +0000 (00:28 +0000)]
Auto merge of #56351 - davidtwco:issue-55396-stabilize-linker-flavor, r=nagisa

Stabilize `linker-flavor` flag.

Part of #55396.

This commit moves the linker-flavor flag from a debugging option to a
codegen option, thus stabilizing it. There are no feature flags
associated with this flag.

r? @nagisa

5 years agoUpdate panic message to be clearer about env-vars
Daniel Silverstone [Wed, 12 Dec 2018 14:20:49 +0000 (14:20 +0000)]
Update panic message to be clearer about env-vars

Esteban Kuber requested that the panic message make it clear
that `RUST_BACKTRACE=1` is an environment variable.  This change
makes that clear.  Wording provided in part by David Tolnay.

5 years agorustc: Add an unstable `simd_select_bitmask` intrinsic
Alex Crichton [Thu, 13 Dec 2018 20:50:42 +0000 (12:50 -0800)]
rustc: Add an unstable `simd_select_bitmask` intrinsic

This is going to be required for binding a number of AVX-512 intrinsics
in the `stdsimd` repository, and this intrinsic is the same as
`simd_select` except that it takes a bitmask as the first argument
instead of a SIMD vector. This bitmask is then transmuted into a `<NN x
i8>` argument, depending on how many bits it is.

cc rust-lang-nursery/stdsimd#310

5 years agoAuto merge of #56142 - jnqnfe:osstr_lossy_example, r=alexcrichton
bors [Thu, 13 Dec 2018 21:52:17 +0000 (21:52 +0000)]
Auto merge of #56142 - jnqnfe:osstr_lossy_example, r=alexcrichton

[std] Osstr lossy example

5 years agoSplit on words instead
Guillaume Gomez [Tue, 11 Dec 2018 21:29:40 +0000 (22:29 +0100)]
Split on words instead

5 years agoFix dur2intervals import on cloudabi
Linus Färnstrand [Thu, 13 Dec 2018 14:24:50 +0000 (15:24 +0100)]
Fix dur2intervals import on cloudabi

5 years agoAuto merge of #56783 - alexcrichton:pinentry-mode, r=Mark-Simulacrum
bors [Thu, 13 Dec 2018 17:38:17 +0000 (17:38 +0000)]
Auto merge of #56783 - alexcrichton:pinentry-mode, r=Mark-Simulacrum

Add `--pinentry-mode=loopback` to deployment script

Apparently this changed with gpg2 or... something like that?

5 years agoUse `dedup` instead of `dedup_by`
Oliver Scherer [Thu, 13 Dec 2018 17:36:18 +0000 (09:36 -0800)]
Use `dedup` instead of `dedup_by`

Co-Authored-By: estebank <estebank@users.noreply.github.com>
5 years agoAdd `--pinentry-mode=loopback` to deployment script
Alex Crichton [Thu, 13 Dec 2018 16:19:06 +0000 (08:19 -0800)]
Add `--pinentry-mode=loopback` to deployment script

Apparently this changed with gpg2 or... something like that?

5 years agoFix checked_add/sub for sys/sgx/time.rs
Linus Färnstrand [Mon, 10 Dec 2018 23:49:32 +0000 (00:49 +0100)]
Fix checked_add/sub for sys/sgx/time.rs

5 years agoAdd checked_sub for Instant and SystemTime
Linus Färnstrand [Mon, 10 Dec 2018 22:55:53 +0000 (23:55 +0100)]
Add checked_sub for Instant and SystemTime

5 years agoAdd checked_add method to Instant time type
Linus Färnstrand [Tue, 4 Dec 2018 01:29:57 +0000 (02:29 +0100)]
Add checked_add method to Instant time type

5 years agoUpdate Clippy
Igor Matuszewski [Thu, 13 Dec 2018 14:21:18 +0000 (15:21 +0100)]
Update Clippy

5 years agoAuto merge of #56461 - oli-obk:alloc_ids, r=RalfJung
bors [Thu, 13 Dec 2018 12:36:13 +0000 (12:36 +0000)]
Auto merge of #56461 - oli-obk:alloc_ids, r=RalfJung

Some cleanups around `AllocId` management

r? @eddyb
cc @RalfJung

5 years agoExpand on a few comments
Oliver Scherer [Thu, 13 Dec 2018 11:54:57 +0000 (12:54 +0100)]
Expand on a few comments

5 years agoUpdate tests to show diagnostics
Oliver Scherer [Thu, 13 Dec 2018 11:54:49 +0000 (12:54 +0100)]
Update tests to show diagnostics

5 years agoFix indent
Oliver Scherer [Thu, 13 Dec 2018 11:24:38 +0000 (12:24 +0100)]
Fix indent

5 years agoDoc comment format
Oliver Scherer [Thu, 13 Dec 2018 11:23:49 +0000 (12:23 +0100)]
Doc comment format

5 years agoAdd x86_64-unknown-uefi target
David Herrmann [Thu, 13 Dec 2018 09:08:20 +0000 (10:08 +0100)]
Add x86_64-unknown-uefi target

This adds a new rustc target-configuration called 'x86_64-unknown_uefi'.
Furthermore, it adds a UEFI base-configuration to be used with other
targets supported by UEFI (e.g., i386, armv7hl, aarch64, itanium, ...).

UEFI systems provide a very basic operating-system environment, meant
to unify how systems are booted. It is tailored for simplicity and fast
setup, as it is only meant to bootstrap other systems. For instance, it
copies most of the ABI from Microsoft Windows, rather than inventing
anything on its own. Furthermore, any complex CPU features are
disabled. Only one CPU is allowed to be up, no interrupts other than
the timer-interrupt are allowed, no process-separation is performed,
page-tables are identity-mapped, ...

Nevertheless, UEFI has an application model. Its main purpose is to
allow operating-system vendors to write small UEFI applications that
load their kernel and terminate the UEFI system. However, many other
UEFI applications have emerged in the past, including network-boot,
debug-consoles, and more.

This UEFI target allows to compile rust code natively as UEFI
applications. No standard library support is added, but libcore can be
used out-of-the-box if a panic-handler is provided. Furthermore,
liballoc works as well, if a `GlobalAlloc` handler is provided. Both
have been tested with this target-configuration.

Note that full libstd support is unlikely to happen. While UEFI does
have standardized interfaces for networking and alike, none of these
are mandatory and they are unlikely to be shipped in common consumer
firmwares. Furthermore, several features like process-separation are
not available (or only in very limited fashion). Those parts of libstd
would have to be masked.

5 years agoStabilize `linker-flavor` flag.
David Wood [Thu, 29 Nov 2018 21:00:09 +0000 (22:00 +0100)]
Stabilize `linker-flavor` flag.

This commit moves the linker-flavor flag from a debugging option to a
codegen option, thus stabilizing it. There are no feature flags
associated with this flag.

5 years agoAuto merge of #56161 - RalfJung:vecdeque-stacked-borrows, r=SimonSapin
bors [Thu, 13 Dec 2018 07:12:19 +0000 (07:12 +0000)]
Auto merge of #56161 - RalfJung:vecdeque-stacked-borrows, r=SimonSapin

VecDeque: fix for stacked borrows

`VecDeque` violates a version of stacked borrows where creating a shared reference is not enough to make a location *mutably accessible* from raw pointers (and I think that is the version we want).  There are two problems:

* Creating a `NonNull<T>` from `&mut T` goes through `&T` (inferred for a `_`), then `*const T`, then `NonNull<T>`. That means in this stricter version of Stacked Borrows, we cannot actually write to such a `NonNull` because it was created from a shared reference! This PR fixes that by going from `&mut T` to `*mut T` to `*const T`.
* `VecDeque::drain` creates the `Drain` struct by *first* creating a `NonNull` from `self` (which is an `&mut VecDeque`), and *then* calling `self.buffer_as_mut_slice()`. The latter reborrows `self`, asserting that `self` is currently the unique pointer to access this `VecDeque`, and hence invalidating the `NonNull` that was created earlier. This PR fixes that by instead using `self.buffer_as_slice()`, which only performs read accesses and creates only shared references, meaning the raw pointer (`NonNull`) remains valid.

It is possible that other methods on `VecDeque` do something similar, miri's test coverage of `VecDeque` is sparse to say the least.

Cc @nikomatsakis @Gankro

5 years agoAuto merge of #56090 - nnethercote:filesearch, r=eddyb
bors [Thu, 13 Dec 2018 03:35:15 +0000 (03:35 +0000)]
Auto merge of #56090 - nnethercote:filesearch, r=eddyb

Overhaul `FileSearch` and `SearchPaths`

`FileSearch::search()` traverses one or more directories. For each
directory it generates a `Vec<PathBuf>` containing one element per file
in that directory.

In some benchmarks this occurs enough that the allocations done for the
`PathBuf`s are significant, and in practice a small number of
directories are being traversed over and over again. For example, when
compiling the `tokio-webpush-simple` benchmark, two directories are
traversed 58 times each. Each of these directories have more than 100
files.

We can do all the necessary traversals up front, when `Session` is created,
and get the `Vec<PathBuf>`s then.

This reduces instruction counts on several benchmarks by 1--5%.

r? @alexcrichton

CC @eddyb, @michaelwoerister, @nikomatsakis

5 years agoAuto merge of #55982 - alexcrichton:panic-extern-abort, r=zackmdavis
bors [Thu, 13 Dec 2018 01:12:13 +0000 (01:12 +0000)]
Auto merge of #55982 - alexcrichton:panic-extern-abort, r=zackmdavis

rustc: Switch `extern` functions to abort by default on panic

This was intended to land way back in 1.24, but it was backed out due to
breakage which has long since been fixed. An unstable `#[unwind]`
attribute can be used to tweak the behavior here, but this is currently
simply switching rustc's internal default to abort-by-default if an
`extern` function panics, making our codegen sound primarily (as
currently you can produce UB with safe code)

Closes #52652

5 years agoDeduplicate unsatisfied trait bounds
Esteban Küber [Wed, 12 Dec 2018 23:58:27 +0000 (15:58 -0800)]
Deduplicate unsatisfied trait bounds

5 years agoAdd short emoji status to toolstate updates
Manish Goregaokar [Wed, 12 Dec 2018 22:42:00 +0000 (14:42 -0800)]
Add short emoji status to toolstate updates

5 years agoDisable btree pretty-printers on older gdbs
Tom Tromey [Wed, 12 Dec 2018 22:00:59 +0000 (15:00 -0700)]
Disable btree pretty-printers on older gdbs

gdb versions before 8.1 have a bug that prevents the BTreeSet and
BTreeMap pretty-printers from working.  This patch disables the test
on those versions, and also disables the pretty-printers there as
well.

Closes #56730

5 years agoAccount for `impl Trait` when suggesting lifetime
Esteban Küber [Wed, 12 Dec 2018 21:57:47 +0000 (13:57 -0800)]
Account for `impl Trait` when suggesting lifetime

5 years agoAuto merge of #55992 - cramertj:pin-docs, r=alexcrichton
bors [Wed, 12 Dec 2018 21:04:34 +0000 (21:04 +0000)]
Auto merge of #55992 - cramertj:pin-docs, r=alexcrichton

Expand std::pin module docs and rename std::pin::Pinned to PhantomPinned

cc https://github.com/rust-lang/rust/issues/49150, https://github.com/rust-lang/rust/issues/55766

r? @withoutboats

5 years agoRename Pinned marker type to PhantomPinned
Taylor Cramer [Thu, 15 Nov 2018 23:49:16 +0000 (15:49 -0800)]
Rename Pinned marker type to PhantomPinned

5 years agoExpand documantation for std::pin module
Taylor Cramer [Thu, 15 Nov 2018 23:46:17 +0000 (15:46 -0800)]
Expand documantation for std::pin module

5 years agouse actual invalid string in OsStr::to_string_lossy example
Lyndon Brown [Sat, 10 Nov 2018 06:17:36 +0000 (06:17 +0000)]
use actual invalid string in OsStr::to_string_lossy example

5 years agoAllow ptr::hash to accept fat pointers
Matt Brubeck [Wed, 12 Dec 2018 17:41:03 +0000 (09:41 -0800)]
Allow ptr::hash to accept fat pointers

5 years agox86: Add the `adx` target feature to whitelist
Alex Crichton [Wed, 12 Dec 2018 16:37:56 +0000 (08:37 -0800)]
x86: Add the `adx` target feature to whitelist

Requested in rust-lang-nursery/stdsimd#322 this is hopefully the first
step!

5 years agoBump to 1.33.0
Alex Crichton [Wed, 5 Dec 2018 14:42:56 +0000 (06:42 -0800)]
Bump to 1.33.0

* Update bootstrap compiler
* Update version to 1.33.0
* Remove some `#[cfg(stage0)]` annotations

Actually updating the version number is blocked on updating Cargo

5 years agorustc: Switch `extern` functions to abort by default on panic
Alex Crichton [Thu, 15 Nov 2018 14:17:58 +0000 (06:17 -0800)]
rustc: Switch `extern` functions to abort by default on panic

This was intended to land way back in 1.24, but it was backed out due to
breakage which has long since been fixed. An unstable `#[unwind]`
attribute can be used to tweak the behavior here, but this is currently
simply switching rustc's internal default to abort-by-default if an
`extern` function panics, making our codegen sound primarily (as
currently you can produce UB with safe code)

Closes #52652

5 years agoAuto merge of #56735 - Mark-Simulacrum:fix-sign, r=alexcrichton
bors [Wed, 12 Dec 2018 15:37:54 +0000 (15:37 +0000)]
Auto merge of #56735 - Mark-Simulacrum:fix-sign, r=alexcrichton

Fix gpg signing in manifest builder

GPG versions 2.x+ require that --batch be passed if --passphrase-fd is
to be accepted.

From the man page:

       --passphrase-fd n
              Read  the passphrase from file descriptor n. Only the first line
              will be read from file descriptor n. If you use  0  for  n,  the
              passphrase  will  be  read  from STDIN. This can only be used if
              only one passphrase is supplied.

              Note that this passphrase is only used if the option --batch has
              also been given.  This is different from GnuPG version 1.x.

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 agotarget: remove Box returned from get_targets
ljedrz [Wed, 12 Dec 2018 15:04:03 +0000 (16:04 +0100)]
target: remove Box returned from get_targets