]> git.lizzy.rs Git - rust.git/log
rust.git
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 #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 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 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 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 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 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 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 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 agospecialize: remove Boxes used by Children::insert
ljedrz [Wed, 12 Dec 2018 14:07:13 +0000 (15:07 +0100)]
specialize: remove Boxes used by Children::insert

5 years agoAuto merge of #56092 - alexcrichton:no-more-std-subodules, r=Mark-Simulacrum
bors [Wed, 12 Dec 2018 13:05:59 +0000 (13:05 +0000)]
Auto merge of #56092 - alexcrichton:no-more-std-subodules, r=Mark-Simulacrum

std: Depend directly on crates.io crates

Ever since we added a Cargo-based build system for the compiler the
standard library has always been a little special, it's never been able
to depend on crates.io crates for runtime dependencies. This has been a
result of various limitations, namely that Cargo doesn't understand that
crates from crates.io depend on libcore, so Cargo tries to build crates
before libcore is finished.

I had an idea this afternoon, however, which lifts the strategy
from #52919 to directly depend on crates.io crates from the standard
library. After all is said and done this removes a whopping three
submodules that we need to manage!

The basic idea here is that for any crate `std` depends on it adds an
*optional* dependency on an empty crate on crates.io, in this case named
`rustc-std-workspace-core`. This crate is overridden via `[patch]` in
this repository to point to a local crate we write, and *that* has a
`path` dependency on libcore.

Note that all `no_std` crates also depend on `compiler_builtins`, but if
we're not using submodules we can publish `compiler_builtins` to
crates.io and all crates can depend on it anyway! The basic strategy
then looks like:

* The standard library (or some transitive dep) decides to depend on a
  crate `foo`.
* The standard library adds

  ```toml
  [dependencies]
  foo = { version = "0.1", features = ['rustc-dep-of-std'] }
  ```
* The crate `foo` has an optional dependency on `rustc-std-workspace-core`
* The crate `foo` has an optional dependency on `compiler_builtins`
* The crate `foo` has a feature `rustc-dep-of-std` which activates these
  crates and any other necessary infrastructure in the crate.

A sample commit for `dlmalloc` [turns out to be quite simple][commit].
After that all `no_std` crates should largely build "as is" and still be
publishable on crates.io! Notably they should be able to continue to use
stable Rust if necessary, since the `rename-dependency` feature of Cargo
is soon stabilizing.

As a proof of concept, this commit removes the `dlmalloc`,
`libcompiler_builtins`, and `libc` submodules from this repository. Long
thorns in our side these are now gone for good and we can directly
depend on crates.io! It's hoped that in the long term we can bring in
other crates as necessary, but for now this is largely intended to
simply make it easier to manage these crates and remove submodules.

This should be a transparent non-breaking change for all users, but one
possible stickler is that this almost for sure breaks out-of-tree
`std`-building tools like `xargo` and `cargo-xbuild`. I think it should
be relatively easy to get them working, however, as all that's needed is
an entry in the `[patch]` section used to build the standard library.
Hopefully we can work with these tools to solve this problem!

[commit]: https://github.com/alexcrichton/dlmalloc-rs/commit/28ee12db813a3b650a7c25d1c36d2c17dcb88ae3

5 years agoAuto merge of #56039 - ljedrz:sorted_map_upgrades, r=matthewjasper
bors [Wed, 12 Dec 2018 10:44:32 +0000 (10:44 +0000)]
Auto merge of #56039 - ljedrz:sorted_map_upgrades, r=matthewjasper

SortedMap upgrades

- change the impl `From<Iterator<I>>` to `FromIterator<I>`
- make the impls of `Index` and `get` match the ones from `BTreeMap`
- add `is_empty` and `contains_key`
- readability/whitespace fixes
- add a proper `Iterator` implementation
- `impl IntoIterator for &SortedMap`

These changes make `SortedMap` almost a drop-in replacement for `BTreeMap`, at least to the point it is used by `rustc`; what is left is `Entry` API that I'd like to follow this PR with, and possibly implementing `ParallelIterator`.

5 years agoAuto merge of #56010 - euclio:intra-doc-spans, r=QuietMisdreavus
bors [Wed, 12 Dec 2018 08:18:13 +0000 (08:18 +0000)]
Auto merge of #56010 - euclio:intra-doc-spans, r=QuietMisdreavus

fix intra-link resolution spans in block comments

This commit improves the calculation of code spans for intra-doc
resolution failures. All sugared doc comments should now have the
correct spans, including those where the comment is longer than the
docs.

It also fixes an issue where the spans were calculated incorrectly for
certain unsugared doc comments. The diagnostic will now always use the
span of the attributes, as originally intended.

Fixes #55964.

r? @QuietMisdreavus

5 years agoRemove some env vars for rustdoc invocations.
Nicholas Nethercote [Wed, 12 Dec 2018 05:28:43 +0000 (16:28 +1100)]
Remove some env vars for rustdoc invocations.

In an attempt to avoid "thread '<unnamed>' panicked at 'failed to
acquire jobserver token: Bad file descriptor" errors.

5 years agostd: Depend directly on crates.io crates
Alex Crichton [Tue, 20 Nov 2018 05:52:50 +0000 (21:52 -0800)]
std: Depend directly on crates.io crates

Ever since we added a Cargo-based build system for the compiler the
standard library has always been a little special, it's never been able
to depend on crates.io crates for runtime dependencies. This has been a
result of various limitations, namely that Cargo doesn't understand that
crates from crates.io depend on libcore, so Cargo tries to build crates
before libcore is finished.

I had an idea this afternoon, however, which lifts the strategy
from #52919 to directly depend on crates.io crates from the standard
library. After all is said and done this removes a whopping three
submodules that we need to manage!

The basic idea here is that for any crate `std` depends on it adds an
*optional* dependency on an empty crate on crates.io, in this case named
`rustc-std-workspace-core`. This crate is overridden via `[patch]` in
this repository to point to a local crate we write, and *that* has a
`path` dependency on libcore.

Note that all `no_std` crates also depend on `compiler_builtins`, but if
we're not using submodules we can publish `compiler_builtins` to
crates.io and all crates can depend on it anyway! The basic strategy
then looks like:

* The standard library (or some transitive dep) decides to depend on a
  crate `foo`.
* The standard library adds

  ```toml
  [dependencies]
  foo = { version = "0.1", features = ['rustc-dep-of-std'] }
  ```
* The crate `foo` has an optional dependency on `rustc-std-workspace-core`
* The crate `foo` has an optional dependency on `compiler_builtins`
* The crate `foo` has a feature `rustc-dep-of-std` which activates these
  crates and any other necessary infrastructure in the crate.

A sample commit for `dlmalloc` [turns out to be quite simple][commit].
After that all `no_std` crates should largely build "as is" and still be
publishable on crates.io! Notably they should be able to continue to use
stable Rust if necessary, since the `rename-dependency` feature of Cargo
is soon stabilizing.

As a proof of concept, this commit removes the `dlmalloc`,
`libcompiler_builtins`, and `libc` submodules from this repository. Long
thorns in our side these are now gone for good and we can directly
depend on crates.io! It's hoped that in the long term we can bring in
other crates as necessary, but for now this is largely intended to
simply make it easier to manage these crates and remove submodules.

This should be a transparent non-breaking change for all users, but one
possible stickler is that this almost for sure breaks out-of-tree
`std`-building tools like `xargo` and `cargo-xbuild`. I think it should
be relatively easy to get them working, however, as all that's needed is
an entry in the `[patch]` section used to build the standard library.
Hopefully we can work with these tools to solve this problem!

[commit]: https://github.com/alexcrichton/dlmalloc-rs/commit/28ee12db813a3b650a7c25d1c36d2c17dcb88ae3

5 years agoFix gpg signing in manifest builder
Mark Rousskov [Wed, 12 Dec 2018 02:10:45 +0000 (19:10 -0700)]
Fix gpg signing in manifest builder

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

5 years agoReplace `FileSearch::for_each_lib_search_path` with `search_paths`.
Nicholas Nethercote [Fri, 23 Nov 2018 02:36:41 +0000 (13:36 +1100)]
Replace `FileSearch::for_each_lib_search_path` with `search_paths`.

Returning an iterator leads to nicer code all around.

5 years agoAvoid regenerating the `Vec<PathBuf>` in `FileSearch::search()`.
Nicholas Nethercote [Tue, 20 Nov 2018 00:06:45 +0000 (11:06 +1100)]
Avoid regenerating the `Vec<PathBuf>` in `FileSearch::search()`.

`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.

This commit changes things so that all the `Vec<PathBuf>`s that will be
needed by a `Session` are precomputed when that `Session` is created;
they are stored in `SearchPath`. `FileSearch` gets a reference to the
necessary `SearchPath`s. This reduces instruction counts on several
benchmarks by 1--5%.

The commit also removes the barely-used `visited_dirs` hash in
`for_each_lib_searchPath`. It only detects if `tlib_path` is the same as
one of the previously seen paths, which is unlikely.

5 years agoIntroduce `SearchPath` and replace `SearchPaths` with `Vec<SearchPath>`.
Nicholas Nethercote [Thu, 22 Nov 2018 05:33:07 +0000 (16:33 +1100)]
Introduce `SearchPath` and replace `SearchPaths` with `Vec<SearchPath>`.

It's more idiomatic, makes the code shorter, and will help with the next
commit.

5 years agoRemove `Session::sysroot()`.
Nicholas Nethercote [Thu, 22 Nov 2018 04:49:48 +0000 (15:49 +1100)]
Remove `Session::sysroot()`.

Instead of maybe storing its own sysroot and maybe deferring to the one
in `Session::opts`, just clone the latter when necessary so one is
always directly available. This removes the need for the getter.

5 years agoAvoid a useless `FxHashSet::insert` in `FileSearch::for_each_lib_search_path`.
Nicholas Nethercote [Wed, 21 Nov 2018 11:03:59 +0000 (22:03 +1100)]
Avoid a useless `FxHashSet::insert` in `FileSearch::for_each_lib_search_path`.

5 years agoUse a `newtype_index!` within `Symbol`.
Nicholas Nethercote [Mon, 10 Dec 2018 22:06:51 +0000 (09:06 +1100)]
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.

5 years agobump backtrace version to get prettier pretty-printing
Ralf Jung [Tue, 11 Dec 2018 21:36:24 +0000 (22:36 +0100)]
bump backtrace version to get prettier pretty-printing

5 years agoRemove unneeded extra chars to reduce search-index size
Guillaume Gomez [Tue, 11 Dec 2018 09:57:45 +0000 (10:57 +0100)]
Remove unneeded extra chars to reduce search-index size

5 years agoUse iterators instead of raw offsets in Windows argument parser
Michael Howell [Tue, 11 Dec 2018 18:55:02 +0000 (11:55 -0700)]
Use iterators instead of raw offsets in Windows argument parser

5 years agoAuto merge of #53497 - fukatani:test-debuginfo-function-call, r=tromey
bors [Tue, 11 Dec 2018 16:27:49 +0000 (16:27 +0000)]
Auto merge of #53497 - fukatani:test-debuginfo-function-call, r=tromey

Test with gdb8.2 and add debuginfo printing function call test

As far as I can see, `print function()` is not tested. It is important feature for debugging.

5 years agomiri: use backtrace crate printing instead of rolling our own
Ralf Jung [Tue, 11 Dec 2018 14:53:35 +0000 (15:53 +0100)]
miri: use backtrace crate printing instead of rolling our own

5 years agoAuto merge of #56243 - RalfJung:test-deterministic, r=alexcrichton
bors [Tue, 11 Dec 2018 14:04:15 +0000 (14:04 +0000)]
Auto merge of #56243 - RalfJung:test-deterministic, r=alexcrichton

libtest: Use deterministic HashMap, avoid spawning thread if there is no concurrency

It seems desirable to make a test and bench runner deterministic, which this achieves by using a deterministic hasher. Also, we we only have 1 thread, we don't bother spawning one and just use the main thread.

The motivation for this is to be able to run the test harness in miri, where we can neither access the OS RNG, nor spawn threads.

5 years agoAdd function call test, Update gdb and test docker image install gdb by ppa.
Unknown [Sun, 19 Aug 2018 14:51:57 +0000 (23:51 +0900)]
Add function call test, Update gdb and test docker image install gdb by ppa.

5 years agoFix irrefutable matches on integer ranges
varkor [Mon, 10 Dec 2018 23:28:54 +0000 (23:28 +0000)]
Fix irrefutable matches on integer ranges

5 years agouse an enum instead of bool
Ralf Jung [Tue, 11 Dec 2018 10:02:23 +0000 (11:02 +0100)]
use an enum instead of bool

5 years agoProperly stage new feature gates
Oliver Scherer [Tue, 11 Dec 2018 09:43:40 +0000 (10:43 +0100)]
Properly stage new feature gates

5 years agoRemove some dead code from `sgx`
Oliver Scherer [Tue, 11 Dec 2018 09:33:17 +0000 (10:33 +0100)]
Remove some dead code from `sgx`

5 years agoRemove unnecessary feature gates from const fns
Oliver Scherer [Tue, 11 Dec 2018 09:32:39 +0000 (10:32 +0100)]
Remove unnecessary feature gates from const fns

5 years agoAuto merge of #56703 - alexcrichton:fix-tools, r=Mark-Simulacrum
bors [Tue, 11 Dec 2018 08:14:14 +0000 (08:14 +0000)]
Auto merge of #56703 - alexcrichton:fix-tools, r=Mark-Simulacrum

Fix build of the `build-manifest` tool

Accidentally broken in #56258!

5 years agoDiagnostics improvement!
Oliver Scherer [Tue, 11 Dec 2018 08:05:06 +0000 (09:05 +0100)]
Diagnostics improvement!

5 years agoBuild manifest tool on mingw-check builder
Mark Rousskov [Tue, 11 Dec 2018 03:40:04 +0000 (20:40 -0700)]
Build manifest tool on mingw-check builder

This builder is not really the correct place to put this, but it
definitely has the time budget and checking this tool builds on just one
platform is more than sufficient.

5 years agoFix build of the `build-manifest` tool
Alex Crichton [Tue, 11 Dec 2018 03:34:47 +0000 (19:34 -0800)]
Fix build of the `build-manifest` tool

Accidentally broken in #56258!

5 years ago[self-profiler] Add column for percent of total time
Wesley Wiser [Tue, 11 Dec 2018 02:16:19 +0000 (21:16 -0500)]
[self-profiler] Add column for percent of total time

5 years agoAuto merge of #56627 - alexcrichton:update-cargo, r=alexcrichton
bors [Tue, 11 Dec 2018 03:22:10 +0000 (03:22 +0000)]
Auto merge of #56627 - alexcrichton:update-cargo, r=alexcrichton

Update Cargo submodule and its dependencies

Hopefully just another routine update!

So far this starts to enable the `std::arch` in stage0 builds of rustc.
This means that we may need stage0/not(stage0) in stdsimd itself, but
more and more code is starting to use `std::arch` so I think it's time
to start shifting the balance of work here.

5 years agofix intra-link resolution spans in block comments
Andy Russell [Mon, 10 Dec 2018 17:24:39 +0000 (12:24 -0500)]
fix intra-link resolution spans in block comments

This commit improves the calculation of code spans for intra-doc
resolution failures. All sugared doc comments should now have the
correct spans, including those where the comment is longer than the
docs.

It also fixes an issue where the spans were calculated incorrectly for
certain unsugared doc comments. The diagnostic will now always use the
span of the attributes, as originally intended.

Fixes #55964.

5 years agoFix iterator nits
Michael Howell [Tue, 11 Dec 2018 01:31:53 +0000 (18:31 -0700)]
Fix iterator nits

5 years agoFix nit
Michael Howell [Mon, 10 Dec 2018 22:48:32 +0000 (15:48 -0700)]
Fix nit

Rewrite it to not use `if let`.

5 years agoFix nits
Michael Howell [Mon, 10 Dec 2018 22:37:50 +0000 (15:37 -0700)]
Fix nits

Add comments explaining how we test this,
and use a slice for debugging instead of a clone of the iterator.

5 years agoUpdate Cargo submodule and its dependencies
Alex Crichton [Sat, 8 Dec 2018 11:06:54 +0000 (03:06 -0800)]
Update Cargo submodule and its dependencies

Hopefully just another routine update!

So far this starts to enable the `std::arch` in stage0 builds of rustc.
This means that we may need stage0/not(stage0) in stdsimd itself, but
more and more code is starting to use `std::arch` so I think it's time
to start shifting the balance of work here.

5 years agoAuto merge of #56688 - GuillaumeGomez:rollup, r=GuillaumeGomez
bors [Mon, 10 Dec 2018 21:42:20 +0000 (21:42 +0000)]
Auto merge of #56688 - GuillaumeGomez:rollup, r=GuillaumeGomez

Rollup of 5 pull requests

Successful merges:

 - #56491 (emit error with span for empty asserts)
 - #56633 (Fix right arrow size for crate filter)
 - #56641 (fix span for invalid number of parameters in trait method)
 - #56656 (Fix typo)
 - #56661 (Add regression test for ICE)

Failed merges:

r? @ghost

5 years agoFix poorly-transcribed test case
Michael Howell [Mon, 10 Dec 2018 21:33:03 +0000 (14:33 -0700)]
Fix poorly-transcribed test case

5 years agoRollup merge of #56661 - aelred:issue-55846, r=Mark-Simulacrum
Guillaume Gomez [Mon, 10 Dec 2018 21:02:02 +0000 (22:02 +0100)]
Rollup merge of #56661 - aelred:issue-55846, r=Mark-Simulacrum

Add regression test for ICE

Fixes #55846 with a minimal (or as best as I can manage) test case. I tested this against 1.30.0 manually to confirm it crashes.

The issue seemed to have something to do with associated types. It's possible someone with more knowledge can shrink the test case down further, or make it clearer.

5 years agoRollup merge of #56656 - BeatButton:liballoc_string_typo, r=Centril
Guillaume Gomez [Mon, 10 Dec 2018 21:02:01 +0000 (22:02 +0100)]
Rollup merge of #56656 - BeatButton:liballoc_string_typo, r=Centril

Fix typo

5 years agoRollup merge of #56641 - GuillaumeGomez:span-trait-method-invalid-nb-parameters,...
Guillaume Gomez [Mon, 10 Dec 2018 21:02:00 +0000 (22:02 +0100)]
Rollup merge of #56641 - GuillaumeGomez:span-trait-method-invalid-nb-parameters, r=estebank

fix span for invalid number of parameters in trait method

Fixes #56582.

5 years agoRollup merge of #56633 - GuillaumeGomez:fix-right-arrow-display, r=QuietMisdreavus
Guillaume Gomez [Mon, 10 Dec 2018 21:01:58 +0000 (22:01 +0100)]
Rollup merge of #56633 - GuillaumeGomez:fix-right-arrow-display, r=QuietMisdreavus

Fix right arrow size for crate filter

This bug only appears when a crate has a long name:

<img width="1440" alt="screenshot 2018-12-08 at 16 36 21" src="https://user-images.githubusercontent.com/3050060/49687728-7de06180-fb07-11e8-8554-d32597351fac.png">

With this fix, it goes back to normal, whatever the size:

<img width="1440" alt="screenshot 2018-12-08 at 16 36 05" src="https://user-images.githubusercontent.com/3050060/49687730-8769c980-fb07-11e8-91b7-b5e1961211a2.png">

r? @QuietMisdreavus

5 years agoRollup merge of #56491 - euclio:assert-error, r=estebank
Guillaume Gomez [Mon, 10 Dec 2018 21:01:57 +0000 (22:01 +0100)]
Rollup merge of #56491 - euclio:assert-error, r=estebank

emit error with span for empty asserts

Fixes #55547.