Commit Graph

83303 Commits

Author SHA1 Message Date
Ralf Jung 767dadf8e0 review failures in heap, slice, vec 2019-02-13 18:21:13 +01:00
Ralf Jung 4c1a1c3830 review failures in btree, string 2019-02-13 18:21:13 +01:00
Ralf Jung b17ca01077 review failures in binary_heap, str, vec_deque 2019-02-13 18:21:13 +01:00
Ralf Jung e24af6c2b3 the formatting issue got fixed 2019-02-13 18:21:13 +01:00
Ralf Jung 72be9a607b review or fix remaining miri failures in libcore 2019-02-13 18:21:13 +01:00
Ralf Jung 7f5dc49214 review or fix miri failures in iter, slice, cell, time 2019-02-13 17:56:43 +01:00
Ralf Jung 26ade1cfaa mark failures expected due to panics 2019-02-13 17:56:43 +01:00
bors e544947278 Auto merge of #56951 - oli-obk:auto_toolstate_issue, r=kennytm
Automatically open an issue when a tool breaks

cc @nikomatsakis

fixes https://github.com/rust-lang-nursery/rust-toolstate/issues/6

documentation about issue opening via the github api: https://developer.github.com/v3/issues/#create-an-issue
2019-02-13 13:08:30 +00:00
bors c005afcb1e Auto merge of #58238 - Mark-Simulacrum:doctest-fix, r=alexcrichton
Fixes rustdoc in stage 0, stage 1

When a request for rustdoc is passed for stage 0, x.py build --stage 0
src/tools/rustdoc or ensure(tool::Rustdoc { .. }) with top_stage = 0, we
return the rustdoc for that compiler (i.e., the beta rustdoc).

This fixes stage 0 of https://github.com/rust-lang/rust/issues/52186 as well as being part of general workflow improvements (making stage 0 testing for std work) for rustbuild.

The stage 1 fix (second commit) completely resolves the problem, so this fixes https://github.com/rust-lang/rust/issues/52186.
2019-02-13 10:27:50 +00:00
bors ccd23b95e5 Auto merge of #58235 - jethrogb:jb/sgx-usercall-internals, r=alexcrichton
SGX target: simplify usercall internals

This moves logic from assembly to Rust and removes the special case for exit/panic handling, merging it with regular usercall handling.

Also, this fixes a bug in the exit usercall introduced in a75ae00. The bug would make regular exits look like panics with high probability. It would also with some probability leak information through uncleared registers.

cc @VardhanThigle

r? @alexcrichton
2019-02-13 07:46:21 +00:00
Mazdak Farrokhzad 6562c28607 Rollup merge of #58405 - gnzlbg:remove_unused_macros, r=alexcrichton
Remove some dead code from libcore

These macros are not required to glue the `core_arch` crate anymore.
2019-02-13 04:37:09 +01:00
Mazdak Farrokhzad f3c4652d0c Rollup merge of #58404 - euclio:cloudabi-keyserver, r=alexcrichton
use Ubuntu keyserver for CloudABI ports

The Ubuntu keyserver is more reliable than the MIT PGP server, which is
prone to going down. This commit also explicitly uses port 80 on the
keyserver for reasons outlined in #57844.
2019-02-13 04:37:08 +01:00
Mazdak Farrokhzad a5e869eb62 Rollup merge of #58387 - alexreg:fix-trait-alias-2, r=centril
Disallow `auto` trait alias syntax

See https://github.com/rust-lang/rust/issues/41517#issuecomment-462567679.

r? @Centril

CC @topecongiro @nikomatsakis
2019-02-13 04:37:07 +01:00
Mazdak Farrokhzad 5aa260a4b5 Rollup merge of #58289 - haraldh:master, r=sfackler
impl iter() for dyn Error

Examples:

```rust
let next_error_type_a = err
    .iter()
    .filter_map(Error::downcast_ref::<ErrorTypeA>)
    .next();
```

```rust
let source_root_error = err.iter().last();
```

Credit for the ErrorIter goes to reddit user /u/tdiekmann (Tim Diekmann)
https://www.reddit.com/r/rust/comments/aj3lpg/is_an_iterator_impl_over_errorsource_possible/
2019-02-13 04:37:05 +01:00
Mazdak Farrokhzad 0bc8f6f3f4 Rollup merge of #58273 - taiki-e:rename-dependency, r=matthewjasper
Rename rustc_errors dependency in rust 2018 crates

I think this is a better solution than `use rustc_errors as errors` in `lib.rs` and `use crate::errors` in modules.

Related: rust-lang/cargo#5653

cc #58099

r? @Centril
2019-02-13 04:37:04 +01:00
Mazdak Farrokhzad ecb6503169 Rollup merge of #58200 - RalfJung:str-as-mut-ptr, r=SimonSapin
fix str mutating through a ptr derived from &self

Found by Miri: In `get_unchecked_mut` (also used by the checked variants internally) uses `str::as_ptr` to create a mutable reference, but `as_ptr` takes `&self`.  This means the mutable references we return here got created from a shared reference, which violates the shared-references-are-read-only discipline!

For this by using a newly introduced `as_mut_ptr` instead.
2019-02-13 04:37:03 +01:00
Mazdak Farrokhzad 856e41142c Rollup merge of #58166 - euclio:deprecation-shorthand, r=petrochenkov
allow shorthand syntax for deprecation reason

Fixes #48271.

Created based on discussion in #56896.
2019-02-13 04:37:02 +01:00
Mazdak Farrokhzad 81434cbf84 Rollup merge of #58137 - ljedrz:cleanup_node_id_to_type, r=estebank
Cleanup: rename node_id_to_type(_opt)

Renames `node_id_to_type(_opt)` to `hir_id_to_type(_opt)`; this makes it clear we are dealing with HIR nodes and their IDs here.

In addition, a drive-by commit removing `ty::item_path::hir_path_str` (as requested by @eddyb).
2019-02-13 04:37:00 +01:00
Mazdak Farrokhzad 1c1d2e44c5 Rollup merge of #58057 - michaelwoerister:stabilize-xlto, r=alexcrichton
Stabilize linker-plugin based LTO (aka cross-language LTO)

This PR stabilizes [linker plugin based LTO](https://github.com/rust-lang/rust/issues/49879), also known as "cross-language LTO" because it allows for doing inlining and other optimizations across language boundaries in mixed Rust/C/C++ projects.

As described in the tracking issue, it works by making `rustc` emit LLVM bitcode instead of machine code, the same as `clang` does. A linker with the proper plugin (like LLD) can then run (Thin)LTO across all modules.

The feature has been implemented over a number of pull requests and there are various [codegen](https://github.com/rust-lang/rust/blob/master/src/test/codegen/no-dllimport-w-cross-lang-lto.rs) and [run](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/cross-lang-lto-clang)-[make](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/cross-lang-lto-upstream-rlibs) [tests](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/cross-lang-lto) that make sure that it keeps working.

It also works for building big projects like [Firefox](https://treeherder.mozilla.org/#/jobs?repo=try&revision=2ce2d5ddcea6fbff790503eac406954e469b2f5d).

The PR makes the feature available under the `-C linker-plugin-lto` flag. As discussed in the tracking issue it is not cross-language specific and also not LLD specific. `-C linker-plugin-lto` is descriptive of what it does. If someone has a better name, let me know `:)`
2019-02-13 04:36:59 +01:00
Mazdak Farrokhzad 0ab1057a56 Rollup merge of #58034 - faern:stabilize-time-checked-add, r=alexcrichton
Stabilize the time_checked_add feature

Closes #55940

Stabilizes `checked_add` and `checked_sub` on `Instant` and `SystemTime`.
2019-02-13 04:36:58 +01:00
Mazdak Farrokhzad 0ed894afae Rollup merge of #57815 - dotdash:asserts, r=sfackler
Speed up the fast path for assert_eq! and assert_ne!

Currently, the panic!() calls directly borrow the value bindings. This
causes those bindings to always be initialized, i.e. they're initialized
even before the values are even compared. This causes noticeable
overhead in what should be a really cheap operation.

By performing a reborrow of the value in the call to panic!(), we allow
LLVM to optimize that code, so that the extra borrow only happens in the
error case.

We could achieve the same result by dereferencing the values passed to
panic!(), as the format machinery borrows them anyway, but this causes
assertions to fail to compile if one of the values is unsized, i.e. it
would be a breaking change.
2019-02-13 04:36:56 +01:00
Mazdak Farrokhzad 734cc3e79e Rollup merge of #57693 - king6cong:word, r=Centril
Doc rewording

None
2019-02-13 04:36:55 +01:00
bors 0f949c2fcc Auto merge of #58051 - SimonSapin:str_escape, r=alexcrichton
Stabilize str::escape_* methods with new return types…

… that implement `Display` and `Iterator<Item=char>`, as proposed in FCP: https://github.com/rust-lang/rust/issues/27791#issuecomment-376864727
2019-02-12 23:30:16 +00:00
bors b244f61b77 Auto merge of #58341 - alexreg:cosmetic-2-doc-comments, r=steveklabnik
Cosmetic improvements to doc comments

This has been factored out from https://github.com/rust-lang/rust/pull/58036 to only include changes to documentation comments (throughout the rustc codebase).

r? @steveklabnik

Once you're happy with this, maybe we could get it through with r=1, so it doesn't constantly get invalidated? (I'm not sure this will be an issue, but just in case...) Anyway, thanks for your advice so far!
2019-02-12 19:09:24 +00:00
Michael Woerister 3a9d171b0a Fix some rebasing fallout regarding xLTO. 2019-02-12 17:17:05 +01:00
Taiki Endo c08b5ca4ad Fix rebase fail 2019-02-13 00:31:53 +09:00
Taiki Endo c360ba285c Cleanup imports 2019-02-13 00:31:51 +09:00
Taiki Endo 3216c7656a Rename rustc_errors dependency in rust 2018 crates 2019-02-13 00:28:52 +09:00
gnzlbg 1431c216fe Remove some dead code from libcore
These macros are not required to glue the `core_arch` crate anymore.
2019-02-12 16:11:59 +01:00
Michael Woerister 3733b3267d Add documentation about -Clinker-plugin-lto to rustc book. 2019-02-12 15:42:04 +01:00
Andy Russell 8b21a55b96 use Ubuntu keyserver for CloudABI ports
The Ubuntu keyserver is more reliable than the MIT PGP server, which is
prone to going down. This commit also explicitly uses port 80 on the
keyserver for reasons outlined in #57844.
2019-02-12 09:39:38 -05:00
Alexander Regueiro 370f1f26ce Added tests. 2019-02-12 14:33:58 +00:00
Michael Woerister 04f425d2c3 Stabilize linker-plugin based LTO. 2019-02-12 15:10:29 +01:00
Oliver Scherer 6ed4401609 Permit issue posting to have network failures 2019-02-12 14:48:53 +01:00
bors c84e797642 Auto merge of #58098 - oli-obk:maybe_allow_internal_unstable, r=petrochenkov
Require a list of features in `#[allow_internal_unstable]`

The blanket-permission slip is not great and will likely give us trouble some point down the road.
2019-02-12 12:10:10 +00:00
Simon Sapin eb158f9350 Add doctests for str::escape_* 2019-02-12 09:55:30 +01:00
Simon Sapin 114593d638 Make the prema-unstable char::escape_debug_ext method crate-private 2019-02-12 09:55:30 +01:00
Simon Sapin 92cce78d06 Move str::escape_* to libcore 2019-02-12 09:55:30 +01:00
Simon Sapin 55216f82a6 Stabilize str::escape_* methods
FCP: https://github.com/rust-lang/rust/issues/27791#issuecomment-376864727
2019-02-12 09:55:29 +01:00
Simon Sapin 7a077804a3 New return types for str::escape_* that impl Display and Iterator<char>
As FCP’ed in the tracking issue: https://github.com/rust-lang/rust/issues/27791#issuecomment-376864727
2019-02-12 09:55:20 +01:00
Simon Sapin 92dcae4742 Add internal impl_fn_for_zst macro for "named closure types" 2019-02-12 09:55:20 +01:00
king6cong b284c8d608 Doc rewording 2019-02-12 16:45:19 +08:00
bors a54b5c7a64 Auto merge of #57388 - euclio:runmake-explicit-ignore, r=kennytm
use ignore directives for run-make tests

This makes the tests easier to read, and makes it possible to tell which
tests aren't being run on the host platform.

Fixes #56704.
2019-02-12 08:19:35 +00:00
bors 75f9159009 Auto merge of #58389 - Centril:rollup, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #58105 (libarena => 2018)
 - #58111 (libterm => 2018)
 - #58287 (rustc-std-workspace-core => 2018)
 - #58288 (rustc-workspace-hack => 2018)
 - #58300 (librustc_typeck => 2018)
 - #58313 (Use `?` in librustc macros)
 - #58318 (libserialize => 2018)
 - #58322 (librustc_codegen_ssa => 2018)
 - #58342 (Revert removed #![feature(nll)])
 - #58367 (Remove two dead functions.)
 - #58382 (docs: remove "experimental" wording from std::os::unix)

Failed merges:

r? @ghost
2019-02-12 05:50:26 +00:00
Mazdak Farrokhzad 33d2c9f533 Rollup merge of #58382 - euclio:unix-ext, r=dtolnay
docs: remove "experimental" wording from std::os::unix
2019-02-12 04:42:29 +01:00
Mazdak Farrokhzad 5dc571270e Rollup merge of #58367 - nnethercote:rm-two-dead-funcs, r=alexcrichton
Remove two dead functions.
2019-02-12 04:42:28 +01:00
Mazdak Farrokhzad f04d0852f5 Rollup merge of #58342 - taiki-e:nll, r=matthewjasper
Revert removed #![feature(nll)]

In PRs related to #58099, `#![feature(nll)]` was removed from several crates.
This PR reverts it.

Related: https://github.com/rust-lang/rust/pull/58265#discussion_r255021244

cc @Centril

r? @matthewjasper
2019-02-12 04:42:26 +01:00
Mazdak Farrokhzad 4f2d0cfe3b Rollup merge of #58322 - taiki-e:librustc_codegen_ssa-2018, r=petrochenkov
librustc_codegen_ssa => 2018

Transitions `librustc_codegen_ssa` to Rust 2018; cc #58099

r? @petrochenkov
2019-02-12 04:42:25 +01:00
Mazdak Farrokhzad 308c07bc3b Rollup merge of #58318 - taiki-e:libserialize-2018, r=Centril
libserialize => 2018

Transitions `libserialize` to Rust 2018; cc #58099

This includes a commit from #58252 (thanks @h-michael!)

r? @Centril
2019-02-12 04:42:24 +01:00
Mazdak Farrokhzad d9434531db Rollup merge of #58313 - matthewjasper:use-question-in-macros, r=oli-obk
Use `?` in librustc macros
2019-02-12 04:42:23 +01:00