Commit Graph

87394 Commits

Author SHA1 Message Date
Shotaro Yamada
2c1b1c26f4 Factor out 2018-12-15 23:14:22 +09:00
Pietro Albini
e771a7d353
Revert "Rollup merge of #56758 - Manishearth:emoji-status-toolstate, r=kennytm"
This reverts commit 050bb10dc3, reversing
changes made to c530e31245.
2018-12-15 14:57:17 +01:00
Pietro Albini
3566812b04
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
2018-12-15 14:47:40 +01:00
Pietro Albini
eed9693616
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.
2018-12-15 14:47:39 +01:00
Pietro Albini
8d9dc2b749
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
2018-12-15 14:47:38 +01:00
Pietro Albini
b5b67298ec
Rollup merge of #56691 - mishaker:fix_doc_install_broken_link, r=jonas-schievink
fix install broken link

solves #56690
2018-12-15 14:47:37 +01:00
Pietro Albini
9d50d53ec0
Rollup merge of #56682 - alexcrichton:update-stdsimd, r=nikomatsakis
Update the stdsimd submodule

Includes some new stabilized intrinsics for the wasm32 target!

Closes #56292
2018-12-15 14:47:36 +01:00
Pietro Albini
adc88ac0c5
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
2018-12-15 14:47:34 +01:00
Pietro Albini
e92d920269
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.
2018-12-15 14:47:33 +01:00
Guillaume Gomez
122684d393 Improve CSS rule 2018-12-15 12:42:10 +01:00
bors
0a1b2267e4 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
2018-12-15 11:31:40 +00:00
Philipp Hansch
9637c27fb5
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.
2018-12-15 11:00:26 +01:00
Philipp Hansch
818f6823ad
compiletest: Add some compiletest::util unittests 2018-12-15 11:00:26 +01:00
Philipp Hansch
61780083cd
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
2018-12-15 11:00:26 +01:00
Pietro Albini
ae3882c206
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 🙂
2018-12-15 10:17:43 +01:00
Pietro Albini
a352dd4dfc
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 0375954389).
2018-12-15 10:17:42 +01:00
Pietro Albini
1f0a73039b
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
2018-12-15 10:17:40 +01:00
Pietro Albini
1116546e17
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.
2018-12-15 10:17:39 +01:00
Pietro Albini
e433da7ea0
Rollup merge of #56760 - estebank:dedup-bounds, r=oli-obk
Deduplicate unsatisfied trait bounds

Fix #35677.
2018-12-15 10:17:38 +01:00
Pietro Albini
050bb10dc3
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
2018-12-15 10:17:37 +01:00
Pietro Albini
c530e31245
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
2018-12-15 10:17:36 +01:00
Pietro Albini
7c83737b44
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.
2018-12-15 10:17:35 +01:00
Pietro Albini
3a9fa9b66a
Rollup merge of #56747 - ljedrz:remove_box_from_target, r=zackmdavis
target: remove Box returned by get_targets
2018-12-15 10:17:33 +01:00
Pietro Albini
9544c1760c
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).
2018-12-15 10:17:32 +01:00
Pietro Albini
846db94c66
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.
2018-12-15 10:17:31 +01:00
Pietro Albini
3af0cf89fa
Rollup merge of #56731 - GuillaumeGomez:ffi-doc-urls, r=Centril
Add missing urls in ffi module docs

r? @QuietMisdreavus
2018-12-15 10:17:30 +01:00
Pietro Albini
63acc9ff2d
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
2018-12-15 10:17:29 +01:00
Pietro Albini
9f3151abe6
Rollup merge of #56718 - RalfJung:use-libbacktrace-printing, r=alexcrichton
Use libbacktrace pretty-printing

r? @alexcrichton
2018-12-15 10:17:27 +01:00
bors
747a5e514a 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.
2018-12-15 09:05:04 +00:00
bors
7f04a646c6 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
2018-12-15 06:42:27 +00:00
bors
91857a3c82 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
2018-12-15 04:24:16 +00:00
bors
bcf920fc27 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.
2018-12-15 00:50:19 +00:00
Shotaro Yamada
9daa823896 Improve match MIR generation for ranges
Makes testing a range rule out ranges/constant
covered by the range that is being tested
2018-12-15 08:39:40 +09:00
Alex Crichton
fcc8bb41e9 std: Use rustc_demangle from crates.io
No more need to duplicate the demangling routine between crates.io and
the standard library, we can use the exact same one!
2018-12-14 15:15:53 -08:00
Simonas Kazlauskas
313a9c7090 Provide -isysroot with sdkroot for ios builds
Necessary for the new XCode?
2018-12-15 01:13:32 +02:00
Shotaro Yamada
d2ac11ce5f Cleanups 2018-12-15 07:56:00 +09:00
Philipp Hansch
c435357bc9
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
2018-12-14 21:42:49 +01:00
bors
96d1334e56 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.
2018-12-14 20:36:12 +00:00
Alex Crichton
fbb56bcf44 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.
2018-12-14 12:00:01 -08:00
Alex Crichton
ceee7f34f5 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
2018-12-14 11:17:24 -08:00
Ariel Ben-Yehuda
f934cfc40c fix english 2018-12-14 19:28:30 +02:00
Ariel Ben-Yehuda
c2ba2a7b65 use tracking issue instead of original issue 2018-12-14 19:14:22 +02:00
Ariel Ben-Yehuda
6e4b2b3ae7 fix stupid bug 2018-12-14 19:14:22 +02:00
Ariel Ben-Yehuda
760639635f add coherence future-compat warnings for marker-only trait objects
The future-compat warnings break code that assumes that `dyn Send + Sync !=
dyn Sync + Send`, and are the first step in making them equal. cc #33140.

It should be possible to revert this commit when we're done with the
warnings.
2018-12-14 19:14:22 +02:00
Alex Crichton
c811915eaf 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.
2018-12-14 09:05:31 -08:00
Ariel Ben-Yehuda
38825674b2 add the ORDER_DEPENDENT_TRAIT_OBJECTS lint 2018-12-14 18:19:00 +02:00
bors
1897657ef0 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
2018-12-14 16:15:20 +00:00
QuietMisdreavus
8faaef66c9 add test for parsing comments in doctest headers 2018-12-14 09:17:11 -06:00
QuietMisdreavus
ea3078d2e0 include comments in doctest partition logic 2018-12-14 09:17:11 -06:00
kennytm
e065de2ea8
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
2018-12-14 22:17:54 +08:00