Commit Graph

91173 Commits

Author SHA1 Message Date
bjorn3
50f67de35e Remove rustc_driver tests 2019-03-16 10:54:38 +01:00
bjorn3
1c7d368ebe [bootstrap] Remove llvm.enabled config 2019-03-16 10:54:38 +01:00
bjorn3
ca2ff089f3 Remove MetadataOnlyCodegenBackend 2019-03-16 10:54:38 +01:00
kennytm
e2fdf625e9
Rollup merge of #58976 - phil-opp:patch-2, r=alexcrichton
Default to integrated `rust-lld` linker for UEFI targets

The `x86_64-unknown-uefi` target was added in https://github.com/rust-lang/rust/pull/56769 with the linker defaulting to `lld-link`. This means that a system linker with that name is required for linking.

I think defaulting to `rust-lld`, which is shipped with Rust, is a better default for the following reasons:

- Most systems don't have `lld-link` installed, so it forces users to install it first.
- The naming of LLD executables is not standarized, so users often need to create an additional symlink before things work. For example, on Ubuntu `apt install lld` leads to an executable named `lld-link-6.0`.
- We already default to `rust-lld` for [many targets](https://github.com/rust-lang/rust/search?utf8=%E2%9C%93&q=rust-lld&type=), including embedded and WASM targets, so doing the same for UEFI crates seems consistent to me. (It even seems like `x86_64-unknown-uefi` is the [only target](https://github.com/rust-lang/rust/search?q=lld-link&unscoped_q=lld-link) that uses `lld-link`.)

cc @dvdhrm who added the target and @kkk669 who [proposed to use `rust-lld`](https://github.com/rust-lang/rust/pull/56769#issuecomment-461119648).
2019-03-16 14:56:25 +08:00
kennytm
152ed3717b
Rollup merge of #58949 - jethrogb:jb/sgx-thread-id, r=joshtriplett
SGX target: Expose thread id function in os module

In order to call `std::os::fortanix_sgx::usercalls::send`, you need the thread id. This exposes it through another function in `std::os::fortanix_sgx`.

I looked at how other platforms do this. On Windows and `cfg(unix)` you can get the OS handle from a `thread::JoinHandle`, but that's not sufficient, I need it for a `thread::Thread`. In the future, this functionality could be added to `thread::Thread` and this platform can follow suit.

r? @joshtriplett
2019-03-16 14:56:23 +08:00
kennytm
9859b818c8
Rollup merge of #58941 - wzssyqa:master, r=alexcrichton
MIPS: add r6 support

MIPS r6 is quite different with the previous version.
It use some new target triples:
  mipsisa32r6-unknown-linux-gnu
  mipsisa32r6el-unknown-linux-gnu
  mipsisa64r6-unknown-linux-gnuabi64
  mipsisa64r6el-unknown-linux-gnuabi64

This patch has been tested with Debian Port for mips64r6el,
and the support of these triples also is included in llvm:
  https://reviews.llvm.org/rGe58c45a695f39004710b6ce940d489fee800dbd3
2019-03-16 14:56:21 +08:00
kennytm
5e232b3b13
Rollup merge of #58938 - dlrobertson:fix_58280, r=joshtriplett
core: ensure VaList passes improper_ctypes lint

Ensure the `core::ffi::VaList` structure passes the `improper_ctypes` lint.

Fixes: #58280
2019-03-16 14:56:19 +08:00
kennytm
382dfeab85
Rollup merge of #58933 - SimonSapin:alloc-prelude-v1, r=Amanieu
Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std

This was one of the unresolved questions of https://github.com/rust-lang/rfcs/pull/2480. As the RFC says this is maybe not useful in the sense that we are unlikely to ever have a second version, but making the crate a true subset makes one less issue to think about if we stabilize it and later want to merge standard library crates and have Cargo feature flags to enable or disable parts of the `std` crate.

See also discussion in https://github.com/rust-lang/rust/pull/58175.

Also rename the feature gate and point to a dedicated tracking issue: https://github.com/rust-lang/rust/issues/58935
2019-03-16 14:56:18 +08:00
kennytm
ccbf754e35
Rollup merge of #58901 - ebarnard:just-copying, r=sfackler
Change `std::fs::copy` to use `copyfile` on MacOS and iOS

`copyfile` on MacOS is similar to `CopyFileEx` on Windows. It supports copying resource forks, extended attributes, and file ACLs, none of which are copied by the current generic unix implementation.

The API is available from MacOS 10.7 and iOS 4.3 (and possibly earlier but I haven't checked).

Closes #58895.
2019-03-16 14:56:16 +08:00
kennytm
d869a7b16f
Rollup merge of #58873 - GuillaumeGomez:fix-auto-hide-method-doc, r=QuietMisdreavus
Fix "Auto-hide item methods documentation" setting

Fixes #58825.

r? @QuietMisdreavus
2019-03-16 14:56:14 +08:00
kennytm
2318274a2d
Rollup merge of #58855 - alexcrichton:wasm-multithreaded-alloc, r=fitzgen
std: Spin for a global malloc lock on wasm32

There's lots of comments in the code, but the main gist of this commit
is that the acquisition of the global malloc lock on the
`wasm32-unknown-unknown` target when threads are enabled will not spin
on contention rather than block.
2019-03-16 14:56:13 +08:00
kennytm
bc3bef8327
Rollup merge of #58854 - alexcrichton:update-windows, r=Mark-Simulacrum
appveyor: Use VS2017 for all our images

Originally added in #55935 to test build times, this was reverted
in #56201 due to a belief that it caused the exit code 259 spurious
errors. We've since learned, however, that the 259 exit code is likely
not related to this image update as we're getting it in a number of
locations now.

VS2017 looks like it may be required to compile LLVm in the near future,
notably discovered by #58408 where we attempted to update LLVM.
2019-03-16 14:56:11 +08:00
Grigorii Kargin
7f395d2b3a fix tests 2019-03-16 02:56:26 +03:00
Chris Gregory
9a61580d40 Option and Result: Add references to documentation of as_ref and as_mut 2019-03-15 16:42:10 -04:00
Esteban Küber
d7bb98f7a1 Elide object safety errors on non-existent trait function
Fix #58734.
2019-03-15 13:26:30 -07:00
bors
52e885628e Auto merge of #58556 - oli-obk:imperative_recursion, r=pnkfelix
Optimize copying large ranges of undefmask blocks

Hopefully fixes #58523
2019-03-15 19:24:15 +00:00
Andy Russell
7c66ae2fc5
use ! in macro disambiguation suggestion 2019-03-15 15:12:30 -04:00
Andy Russell
150b49a582
replace ad-hoc namespace enums 2019-03-15 14:33:41 -04:00
Andy Russell
33442b133c
overhaul intra-doc-link ambiguity warning
- Makes the warning part of the `intra_doc_link_resolution_failure`
lint.
- Tightens the span to just the ambiguous link.
- Reports ambiguities across all three namespaces.
- Uses structured suggestions for disambiguation.
- Adds a test for the warnings.
2019-03-15 14:15:06 -04:00
kenta7777
a8fa1a153d a simple refactoring and removing comment. 2019-03-16 01:58:48 +09:00
kenta7777
50af62dae9 removed some unnecessary comments. 2019-03-16 01:14:46 +09:00
Kornel
fbc4326f4b Track changes to robots.txt 2019-03-15 15:05:12 +00:00
Douglas Creager
8b6c566b9d Remove copyright notices 2019-03-15 10:49:36 -04:00
Mateusz Mikuła
9c7bf76c08 Add x86_64 musl host to the manifest 2019-03-15 15:45:30 +01:00
bors
ad8a3eb039 Auto merge of #58140 - eddyb:advent-of-print, r=nikomatsakis
Refactor ppaux out of existence.

A long-time coming, this PR reorganizes and rewrites the pretty-printing architecture of rustc, specifically the parts that involve the typesystem (which used to be in `rustc::util::ppaux`).

*Note: these commits used to be in #57967 before being split off.*

The new API (i.e. the `Printer` and `PrettyPrint` traits) is in `rustc::ty::print`.

Design points, roughly:
* using associated types in `Printer` to allow building e.g. an AST, not just printing as a side-effect
* several overloading points for implementers of `PrettyPrinter`, e.g. how `<...>` is printed
* for `fmt::Display` impls, the value to print is lifted to the `ty::tls` `tcx`, and everything after that stays within the `ty::print` API, which requires `'tcx` to match between values and the printer's `tcx`, without going through `fmt::Display` again

Most of the behavior is unchanged, except for a few details, which should be clear from the test changes.

r? @nikomatsakis

Fixes https://github.com/rust-lang/rust/issues/55464
2019-03-15 13:58:03 +00:00
Brian Campbell
5303c1b90b Remove restriction on isize/usize in repr(simd)
As discussed in #55078, there's no known reason for this restriction.

It's unlikely that repr(simd) will be stabilized in its current form, but
might as well remove some restrictions on it.

This removes the branch in `is_machine` which returns false for these types.
`is_machine` is only used for the repr(simd) type validation check.
2019-03-15 09:42:02 -04:00
kenta7777
12e3e8412c reduced a code repetition related to bit operation. 2019-03-15 21:48:05 +09:00
Eduard-Mihai Burtescu
dbf19c3975 rustbuild: remove obsolete fulldeps behavior from src/test/pretty tests, and enable them by default. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
0ee059d5a0 Fix rebase fallout and address some review comments. 2019-03-15 13:25:10 +02:00
Ralf Jung
4653ae1e3e we can now print on entering/leaving the topmost frame, and make sure it stays that way 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
22d6c55cdf rustc: print ExistentialProjection with spaces around =, e.g. dyn Foo<A = X>. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
a54a41ce47 rustc: provide DisambiguatedDefPathData in ty::print. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
8619edede1 rustc: slice substs in ty::print instead of passing the full ones. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
9df7c3f48f rustc: let ty::print::pretty's p! macro call arbitrary methods. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
52b4f2daa0 rustc: remove PrintCx from ty::Print and rely on printers carrying TyCtxt. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
2a656828ac rustc: remove the ability for pretty-printers to override nesting. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
c0c485c3ad rustc: don't thread existential projections through path_generic_args. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
ffa00d4628 rustc: make pretty_path_generic_args' task as simple as possible. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
4deaa69b42 rustc: print elided regions as '_ instead of nothing, and use a separate check when optional. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
72690d24f0 rustc: always hide defaulted generic args, even in verbose mode. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
381fa7aa18 rustc: move ty::print::PrintConfig's fields to FmtPrinter. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
1a0f3a2856 rustc: streamline the Print/fmt::Display impls in ppaux and move them to ty::print::pretty. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
030cdc9729 rustc: remove obsolete hacks from ppaux, relating to normalization under HRTB. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
fb53bb9e2b rustc: move Debug impls from ppaux to ty::structural_impls. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
9c424850e8 rustc: disconnect all the Debug functionality from ty::print. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
d0a1bf5c88 rustc: make util::ppaux private. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
800ddb367e rustc: remove fields from ty::print::PrintConfig available from tcx. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
55871aad9a rustc: split out the pretty-printing parts of ty::print into a separate module. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
26f180705a rustc: move ty/print.rs to ty/print/mod.rs. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
6d67d6846c rustc_codegen_utils: print all nominal types as paths, in symbol names. 2019-03-15 13:25:10 +02:00