]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoRollup merge of #56826 - alexcrichton:atomic-u128, r=gnzlbg
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:32 +0000 (14:08 +0100)]
Rollup merge of #56826 - alexcrichton:atomic-u128, r=gnzlbg

rustc: Add the `cmpxchg16b` target feature on x86/x86_64

This appears to be called `cx16` in LLVM and a few other locations, but
the Intel Intrinsic Guide doesn't have a name for this and the CPU
manual from Intel only mentions `cmpxchg16b`, so that's the name chosen
here.

5 years agoRollup merge of #56793 - QuietMisdreavus:better-doctests, r=GuillaumeGomez
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:30 +0000 (14:08 +0100)]
Rollup merge of #56793 - QuietMisdreavus:better-doctests, r=GuillaumeGomez

rustdoc: look for comments when scraping attributes/crates from doctests

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

When scraping out crate-level attributes and `extern crate` statements, we wouldn't look for comments, so any presence of comments would shunt it and everything after it into "everything else". This could cause parsing issues when looking for `fn main` and `extern crate my_crate` later on, which would in turn cause rustdoc to incorrectly wrap a test with `fn main` when it already had one declared.

I took the opportunity to clean up the logic a little bit, but it would still benefit from a libsyntax-based loop like the `fn main` detection.

5 years agoRollup merge of #56790 - rust-lang:borrowck-niche-discriminants, r=nikomatsakis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:29 +0000 (14:08 +0100)]
Rollup merge of #56790 - rust-lang:borrowck-niche-discriminants, r=nikomatsakis

Make RValue::Discriminant a normal Shallow read

Enum layout optimizations mean that the discriminant of an enum may not be stored in a tag disjoint from the rest of the fields of the enum. Stop borrow checking as though they are.

Run with MIRI to see why this is needed: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=09a3236685a06b6096e2e2e3968b852c.

This issue exists with the lexical borrow checker as well (see #45045) so migrate mode should prevent this from being immediately breaking.

r? @nikomatsakis

Fixes #56797

5 years agoRollup merge of #56789 - alexcrichton:simd_select_bitmask, r=rkruppe
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:28 +0000 (14:08 +0100)]
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 #56781 - nikic:llvm-update, r=alexcrichton
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:27 +0000 (14:08 +0100)]
Rollup merge of #56781 - nikic:llvm-update, r=alexcrichton

Update LLVM submodule

Fixes #52026.
Fixes #56618.

r? @alexcrichton

5 years agoRollup merge of #56761 - estebank:path-display, r=zackmdavis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:25 +0000 (14:08 +0100)]
Rollup merge of #56761 - estebank:path-display, r=zackmdavis

Suggest using `.display()` when trying to print a `Path`

Fix #38997.

5 years agoRollup merge of #56742 - ljedrz:remove_query_response_box, r=oli-obk
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:24 +0000 (14:08 +0100)]
Rollup merge of #56742 - ljedrz:remove_query_response_box, r=oli-obk

infer: remove Box from a returned Iterator

5 years agoRollup merge of #56706 - oli-obk:const_unsafe_fn, r=Centril
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:22 +0000 (14:08 +0100)]
Rollup merge of #56706 - oli-obk:const_unsafe_fn, r=Centril

Make `const unsafe fn` bodies `unsafe`

r? @Centril

Updated for tracking issue discussion https://github.com/rust-lang/rust/issues/55607#issuecomment-445882296

5 years agoRollup merge of #56672 - ccouzens:master, r=nikic
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:21 +0000 (14:08 +0100)]
Rollup merge of #56672 - ccouzens:master, r=nikic

Document time of back operations of a Linked List

Popping and pushing from the end of a linked list is constant time. This
documentation is already there for popping and pushing from the front.

@bors: r+ 38fe8d2 rollup

5 years agoRollup merge of #56648 - RalfJung:btree, r=sfackler
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:19 +0000 (14:08 +0100)]
Rollup merge of #56648 - RalfJung:btree, r=sfackler

Fix BTreeMap UB

BTreeMap currently causes UB by created a shared reference to a too-small allocation.  This PR fixes that by introducing a `NodeHeader` type and using that until we really need access to the key/value arrays.  Avoiding run-time checks in `into_key_slice` was somewhat tricky, see the comments embedded in the code.

I also adjusted `as_leaf_mut` to return a raw pointer, because creating a mutable reference asserts that there are no aliases to the pointee, but that's not always correct: We use `as_leaf_mut` twice to create two mutable slices for keys and values; the second call overlaps with the first slice and hence is not a unique pointer.

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

Cc @nikomatsakis @Gankro

5 years agoRollup merge of #56640 - myfreeweb:patch-1, r=alexcrichton
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:17 +0000 (14:08 +0100)]
Rollup merge of #56640 - myfreeweb:patch-1, r=alexcrichton

Add FreeBSD unsigned char platforms to std::os::raw

Reference: https://www.freebsd.org/cgi/man.cgi?query=arch&apropos=0&sektion=7

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 agorustc: Add the `cmpxchg16b` target feature on x86/x86_64
Alex Crichton [Fri, 14 Dec 2018 19:40:27 +0000 (11:40 -0800)]
rustc: Add the `cmpxchg16b` target feature on x86/x86_64

This appears to be called `cx16` in LLVM and a few other locations, but
the Intel Intrinsic Guide doesn't have a name for this and the CPU
manual from Intel only mentions `cmpxchg16b`, so that's the name chosen
here.

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 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 agoadd test for parsing comments in doctest headers
QuietMisdreavus [Thu, 13 Dec 2018 21:23:36 +0000 (15:23 -0600)]
add test for parsing comments in doctest headers

5 years agoinclude comments in doctest partition logic
QuietMisdreavus [Thu, 13 Dec 2018 20:31:42 +0000 (14:31 -0600)]
include comments in doctest partition logic

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 agoMake determining the discriminant a normal Shallow read
Matthew Jasper [Thu, 13 Dec 2018 20:53:07 +0000 (20:53 +0000)]
Make determining the discriminant a normal Shallow read

Enum layout optimizations mean that the discriminant of an enum may not
be stored in a tag disjoint from the rest of the fields of the enum.
Stop borrow checking as though they are.

5 years agoadd `crates` to the final doctest
QuietMisdreavus [Thu, 13 Dec 2018 20:31:17 +0000 (14:31 -0600)]
add `crates` to the final doctest

5 years agoWording changes
Esteban Küber [Thu, 13 Dec 2018 17:55:16 +0000 (09:55 -0800)]
Wording changes

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 agoUpdate LLVM submodule
Nikita Popov [Thu, 13 Dec 2018 15:36:07 +0000 (16:36 +0100)]
Update LLVM submodule

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.