]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoMerge branch 'incr_attr_queries' of https://github.com/wesleywiser/rust into update...
Alex Crichton [Wed, 7 Mar 2018 15:13:21 +0000 (07:13 -0800)]
Merge branch 'incr_attr_queries' of https://github.com/wesleywiser/rust into update-cargo

6 years agoMerge branch 'metadata-send-sync' of https://github.com/Zoxc/rust into update-cargo
Alex Crichton [Wed, 7 Mar 2018 15:13:10 +0000 (07:13 -0800)]
Merge branch 'metadata-send-sync' of https://github.com/Zoxc/rust into update-cargo

6 years agoUpdate cargo lock
Alex Crichton [Wed, 7 Mar 2018 07:39:55 +0000 (23:39 -0800)]
Update cargo lock

6 years agoMerge branch 'compiletest-update' of https://github.com/alexcrichton/rust into update...
Alex Crichton [Wed, 7 Mar 2018 02:39:45 +0000 (18:39 -0800)]
Merge branch 'compiletest-update' of https://github.com/alexcrichton/rust into update-cargo

6 years agoMerge branch 'refactor-select' of https://github.com/aravind-pg/rust into update...
Alex Crichton [Wed, 7 Mar 2018 02:03:04 +0000 (18:03 -0800)]
Merge branch 'refactor-select' of https://github.com/aravind-pg/rust into update-cargo

6 years agoMerge branch 'bump_installer' of https://github.com/Eijebong/rust into update-cargo
Alex Crichton [Wed, 7 Mar 2018 02:02:06 +0000 (18:02 -0800)]
Merge branch 'bump_installer' of https://github.com/Eijebong/rust into update-cargo

6 years agoRollup merge of #48802 - frewsxcv:frewsxcv-rm-python-zigg, r=alexcrichton
Alex Crichton [Wed, 7 Mar 2018 02:01:14 +0000 (20:01 -0600)]
Rollup merge of #48802 - frewsxcv:frewsxcv-rm-python-zigg, r=alexcrichton

Remove unused 'src/etc/ziggurat_tables.py' Python script.

This Python script was used to generate a `ziggurat_tables.rs` file in
librand, but librand was moved out of the repo.

* https://github.com/rust-lang/rust/commits/master/src/librand/distributions/ziggurat_tables.rs
* https://github.com/rust-lang-nursery/rand/blob/master/utils/ziggurat_tables.py

6 years agoRollup merge of #48787 - mbrubeck:cloned, r=joshtriplett
Alex Crichton [Wed, 7 Mar 2018 02:01:13 +0000 (20:01 -0600)]
Rollup merge of #48787 - mbrubeck:cloned, r=joshtriplett

Stabilize option_ref_mut_cloned

Closes #43738.

6 years agoRollup merge of #48778 - sinkuu:rls_crash_tuple_struct, r=nrc
Alex Crichton [Wed, 7 Mar 2018 02:01:12 +0000 (20:01 -0600)]
Rollup merge of #48778 - sinkuu:rls_crash_tuple_struct, r=nrc

Fix save-analysis generation crash with invalid tuple access

Reproduction:

```rust
fn invalid_tuple_struct_accessing() {
    bar.0;
}
```
```
error[E0425]: cannot find value `bar` in this scope
 --> test.rs:2:5
  |
2 |     bar.0;
  |     ^^^ not found in this scope

error[E0601]: main function not found

error: internal compiler error: librustc_save_analysis/dump_visitor.rs:1678: Expected struct or tuple type, found TyError
 --> test.rs:2:5
  |
2 |     bar.0;
  |     ^^^^^

thread 'rustc' panicked at 'Box<Any>', librustc_errors/lib.rs:482:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
```

This should fix a crash in RLS when editing such code. cc @nrc

6 years agoRollup merge of #48698 - ishitatsuyuki:burn-equate, r=nikomatsakis
Alex Crichton [Wed, 7 Mar 2018 02:01:11 +0000 (20:01 -0600)]
Rollup merge of #48698 - ishitatsuyuki:burn-equate, r=nikomatsakis

Remove ty::Predicate::Equate and ty::EquatePredicate (dead code)

r? @nikomatsakis

I also killed the EquatePredicate subsystem. Does it look fine?

Close #48670

6 years agoRollup merge of #48651 - PramodBisht:issues/48425, r=oli-obk
Alex Crichton [Wed, 7 Mar 2018 02:01:09 +0000 (20:01 -0600)]
Rollup merge of #48651 - PramodBisht:issues/48425, r=oli-obk

Fixed #48425 : Various functions taking a `TyCtxt` and a `Span` should be taking a `TyCtxtAt`

Hi @oli-obk
I have done some code refactoring to fix #48425, Please let me know if anything else is required on this.

6 years agoRollup merge of #48618 - scottmcm:elaborate-exitcode, r=alexcrichton
Alex Crichton [Wed, 7 Mar 2018 02:01:07 +0000 (20:01 -0600)]
Rollup merge of #48618 - scottmcm:elaborate-exitcode, r=alexcrichton

Better docs and associated SUCCESS/FAILURE for process::ExitCode

Follow-up to https://github.com/rust-lang/rust/pull/48497#discussion_r170676525, since that PR was the minimal thing to unblock https://github.com/rust-lang/rust/issues/48453#issuecomment-368155082.

r? @nikomatsakis

6 years agoUpdate compiletest's dependencies
Alex Crichton [Tue, 6 Mar 2018 22:55:33 +0000 (14:55 -0800)]
Update compiletest's dependencies

Drop rustc-serialize, add winapi 0.3 and Serde!

6 years agoRollup merge of #48511 - GuillaumeGomez:rustdoc-resource-suffix, r=QuietMisdreavus
Alex Crichton [Wed, 7 Mar 2018 02:01:05 +0000 (20:01 -0600)]
Rollup merge of #48511 - GuillaumeGomez:rustdoc-resource-suffix, r=QuietMisdreavus

Add resource-suffix option for rustdoc

Alternative version of #48442.

cc @onur

r? @QuietMisdreavus

6 years agoAdd caching for trans_fn_attrs query
Wesley Wiser [Tue, 6 Mar 2018 02:55:49 +0000 (21:55 -0500)]
Add caching for trans_fn_attrs query

Part of #47320

6 years agoAdd linkage to TransFnAttrs
Wesley Wiser [Wed, 28 Feb 2018 03:08:46 +0000 (22:08 -0500)]
Add linkage to TransFnAttrs

Part of #47320

6 years agoAdd target_features to TransFnAttrs
Wesley Wiser [Wed, 28 Feb 2018 01:12:32 +0000 (20:12 -0500)]
Add target_features to TransFnAttrs

Part of #47320

6 years agoAdd flag for rustc_std_internal_symbol attribute
Wesley Wiser [Tue, 27 Feb 2018 02:14:55 +0000 (21:14 -0500)]
Add flag for rustc_std_internal_symbol attribute

Part of #47320

6 years agoRemove the contains_extern_indicator query
Wesley Wiser [Tue, 27 Feb 2018 01:14:58 +0000 (20:14 -0500)]
Remove the contains_extern_indicator query

Part of #47320

6 years agoRemove export_name query
Wesley Wiser [Wed, 7 Feb 2018 03:13:14 +0000 (22:13 -0500)]
Remove export_name query

Part of #47320

6 years agoReplace attr::contains_name(..., "cold")
Wesley Wiser [Mon, 5 Feb 2018 03:11:44 +0000 (22:11 -0500)]
Replace attr::contains_name(..., "cold")

Part of #47320

6 years agoAdd `inline` to `TransFnAttrs`
Wesley Wiser [Wed, 31 Jan 2018 03:39:23 +0000 (22:39 -0500)]
Add `inline` to `TransFnAttrs`

Part of #47320

6 years agoAdd query for trans fn attributes
Wesley Wiser [Tue, 16 Jan 2018 01:08:09 +0000 (20:08 -0500)]
Add query for trans fn attributes

Part of #47320

6 years agoMake metadata references Send + Sync
John Kåre Alsaker [Sat, 3 Mar 2018 05:17:06 +0000 (06:17 +0100)]
Make metadata references Send + Sync

6 years agoRemove unused 'src/etc/ziggurat_tables.py' Python script.
Corey Farwell [Wed, 7 Mar 2018 00:35:16 +0000 (19:35 -0500)]
Remove unused 'src/etc/ziggurat_tables.py' Python script.

This Python script was used to generate a `ziggurat_tables.rs` file in
librand, but librand was moved out of the repo.

* https://github.com/rust-lang/rust/commits/master/src/librand/distributions/ziggurat_tables.rs
* https://github.com/rust-lang-nursery/rand/blob/master/utils/ziggurat_tables.py

6 years agoDo not panic on tuple struct access out of bounds
Shotaro Yamada [Tue, 6 Mar 2018 22:16:25 +0000 (07:16 +0900)]
Do not panic on tuple struct access out of bounds

6 years agoFix save-analysis generation panic with invalid tuple access
Shotaro Yamada [Tue, 6 Mar 2018 13:23:06 +0000 (22:23 +0900)]
Fix save-analysis generation panic with invalid tuple access

6 years agoStabilize option_ref_mut_cloned
Matt Brubeck [Tue, 6 Mar 2018 18:30:42 +0000 (10:30 -0800)]
Stabilize option_ref_mut_cloned

Closes #43738.

6 years agoAuto merge of #48642 - alexcrichton:compile-cargo-once, r=michaelwoerister
bors [Tue, 6 Mar 2018 22:40:15 +0000 (22:40 +0000)]
Auto merge of #48642 - alexcrichton:compile-cargo-once, r=michaelwoerister

Update env_logger to 0.5.4

It looks like this cuts down on the number of dependencies in env_logger and
notably cuts out a difference between a shared dependency of rls/cargo. My goal
here is to ensure that when we compile the RLS/Cargo on CI we only compile Cargo
once, and this is one step towards that!

6 years agoUpdate env_logger to 0.5.4
Alex Crichton [Thu, 1 Mar 2018 19:08:48 +0000 (11:08 -0800)]
Update env_logger to 0.5.4

It looks like this cuts down on the number of dependencies in env_logger and
notably cuts out a difference between a shared dependency of rls/cargo. My goal
here is to ensure that when we compile the RLS/Cargo on CI we only compile Cargo
once, and this is one step towards that!

6 years agoAuto merge of #48768 - kennytm:rollup, r=kennytm
bors [Tue, 6 Mar 2018 15:01:21 +0000 (15:01 +0000)]
Auto merge of #48768 - kennytm:rollup, r=kennytm

Rollup of 14 pull requests

- Successful merges: #48403, #48432, #48546, #48573, #48590, #48657, #48727, #48732, #48753, #48754, #48761, #48474, #48507, #47463
- Failed merges:

6 years agoRollup merge of #47463 - bluss:fused-iterator, r=alexcrichton
kennytm [Tue, 6 Mar 2018 10:21:35 +0000 (18:21 +0800)]
Rollup merge of #47463 - bluss:fused-iterator, r=alexcrichton

Stabilize FusedIterator

FusedIterator is a marker trait that promises that the implementing
iterator continues to return `None` from `.next()` once it has returned
`None` once (and/or `.next_back()`, if implemented).

The effects of FusedIterator are already widely available through
`.fuse()`, but with stable `FusedIterator`, stable Rust users can
implement this trait for their iterators when appropriate.

Closes #35602

6 years agoRollup merge of #48507 - GuillaumeGomez:cstr-note, r=steveklabnik
kennytm [Tue, 6 Mar 2018 10:20:35 +0000 (18:20 +0800)]
Rollup merge of #48507 - GuillaumeGomez:cstr-note, r=steveklabnik

Add new warning for CStr::from_ptr

Fixes #48401.

6 years agoRollup merge of #48474 - christianpoveda:new_cell_docs, r=steveklabnik
kennytm [Tue, 6 Mar 2018 10:18:51 +0000 (18:18 +0800)]
Rollup merge of #48474 - christianpoveda:new_cell_docs, r=steveklabnik

New Cell docs

This fixes https://github.com/rust-lang/rust/issues/44061

6 years agoRollup merge of #48761 - frewsxcv:frewsxcv-rm-python, r=alexcrichton
kennytm [Tue, 6 Mar 2018 08:25:42 +0000 (16:25 +0800)]
Rollup merge of #48761 - frewsxcv:frewsxcv-rm-python, r=alexcrichton

Remove seemingly unused sugarise-doc-comments Python script.

This Python script converts documentation comments from the
`#[doc = "..."]` attribute to the `///` syntax. It was added six
years ago, presumably to help with the transition when `///` was
implemented and hasn't really been touched since. I don't think there's
much value in keeping it around at this point.

6 years agoRollup merge of #48754 - leodasvacas:while-let-all-the-things, r=rkruppe
kennytm [Tue, 6 Mar 2018 08:25:41 +0000 (16:25 +0800)]
Rollup merge of #48754 - leodasvacas:while-let-all-the-things, r=rkruppe

while let all the things

6 years agoRollup merge of #48753 - tbu-:pr_hashmap_isize, r=BurntSushi
kennytm [Tue, 6 Mar 2018 08:25:40 +0000 (16:25 +0800)]
Rollup merge of #48753 - tbu-:pr_hashmap_isize, r=BurntSushi

Remove a couple of `isize` references from hashmap docs

Also fix a spelling mistake.

6 years agoRollup merge of #48732 - debris:remove_powerpc64, r=alexcrichton
kennytm [Tue, 6 Mar 2018 08:25:39 +0000 (16:25 +0800)]
Rollup merge of #48732 - debris:remove_powerpc64, r=alexcrichton

Remove useless powerpc64 entry from ARCH_TABLE

Hope, I understood the scope of the fix correctly. closes #47737

6 years agoRollup merge of #48727 - leodasvacas:refactor-contrived-match, r=rkruppe
kennytm [Tue, 6 Mar 2018 08:25:38 +0000 (16:25 +0800)]
Rollup merge of #48727 - leodasvacas:refactor-contrived-match, r=rkruppe

Refactor contrived match.

6 years agoRollup merge of #48657 - sinkuu:opt_str_repeat, r=dtolnay
kennytm [Tue, 6 Mar 2018 08:25:35 +0000 (16:25 +0800)]
Rollup merge of #48657 - sinkuu:opt_str_repeat, r=dtolnay

Optimize str::repeat

Improves the performance of `str::repeat` by bulk copying. Here is the benchmarks of `"abcde".repeat(n)`:

|`n`|old [ns/iter]|new [ns/iter]|diff [%]|
---|---|---|---
|1|27.205|27.421|+0.794|
|2|27.500|27.516|+0.0581|
|3|27.923|27.648|-0.985|
|4|31.206|30.145|-3.40|
|5|35.144|31.861|-9.34|
|7|43.131|34.621|-19.7|
|10|54.945|36.203|-34.1|
|100|428.31|52.895|-87.7|

6 years agoAuto merge of #48611 - michaelwoerister:share-generics2, r=alexcrichton
bors [Tue, 6 Mar 2018 11:52:16 +0000 (11:52 +0000)]
Auto merge of #48611 - michaelwoerister:share-generics2, r=alexcrichton

Don't recompute SymbolExportLevel for upstream crates.

The data collected in #48373 suggests that we can avoid generating up to 30% of the LLVM definitions by only instantiating function monomorphizations once with a given crate graph. Some more data, collected with a [proof-of-concept implementation](https://github.com/michaelwoerister/rust/commits/share-generics) of re-using monomorphizations, which is less efficient than the MIR-only RLIB approach, suggests that it's still around 25% LLVM definitions that we can save.

So far, this PR only cleans up handling of symbol export status. Too early to review still.

6 years agoDon't show crate metadata symbol as exported symbol to downstream crates.
Michael Woerister [Mon, 5 Mar 2018 16:41:11 +0000 (17:41 +0100)]
Don't show crate metadata symbol as exported symbol to downstream crates.

6 years agoFix export level of plugin and procmacro registrars.
Michael Woerister [Wed, 28 Feb 2018 16:40:25 +0000 (17:40 +0100)]
Fix export level of plugin and procmacro registrars.

6 years agoDon't recompute SymbolExportLevel for upstream crates.
Michael Woerister [Tue, 27 Feb 2018 18:28:21 +0000 (19:28 +0100)]
Don't recompute SymbolExportLevel for upstream crates.

6 years agoCompute symbol names more lazily.
Michael Woerister [Tue, 27 Feb 2018 16:52:07 +0000 (17:52 +0100)]
Compute symbol names more lazily.

6 years agoClean up handling of symbol export information.
Michael Woerister [Fri, 23 Feb 2018 15:25:03 +0000 (16:25 +0100)]
Clean up handling of symbol export information.

6 years agoRename exported_symbol_ids query to something more explicit and document what it...
Michael Woerister [Thu, 22 Feb 2018 11:18:16 +0000 (12:18 +0100)]
Rename exported_symbol_ids query to something more explicit and document what it is doing.

6 years agoRollup merge of #48590 - tshepang:more-simple, r=frewsxcv
kennytm [Tue, 6 Mar 2018 08:25:33 +0000 (16:25 +0800)]
Rollup merge of #48590 - tshepang:more-simple, r=frewsxcv

doc: no need for the reference

Also, we are well within line length limit

6 years agoRollup merge of #48573 - Amanieu:bitreverse2, r=sfackler
kennytm [Tue, 6 Mar 2018 08:25:32 +0000 (16:25 +0800)]
Rollup merge of #48573 - Amanieu:bitreverse2, r=sfackler

Add functions for reversing the bit pattern in an integer

I'm reviving PR #32798 now that the LLVM issues have been resolved.

> This adds the bitreverse intrinsic and adds a reverse_bits function to all integer types.

6 years agoRollup merge of #48546 - GuillaumeGomez:raw-string-error-note, r=estebank
kennytm [Tue, 6 Mar 2018 08:25:31 +0000 (16:25 +0800)]
Rollup merge of #48546 - GuillaumeGomez:raw-string-error-note, r=estebank

Raw string error note

Fixes #48395.

I think this note should be helpful enough to solve the issue.

6 years agoRollup merge of #48432 - flip1995:lit_diag, r=oli-obk
kennytm [Tue, 6 Mar 2018 08:25:30 +0000 (16:25 +0800)]
Rollup merge of #48432 - flip1995:lit_diag, r=oli-obk

Suggest type for overflowing bin/hex-literals

Fixes #48073

For hexadecimal and binary literals, which overflow, it gives an additional note to the warning message, like in this [comment](https://github.com/rust-lang/rust/issues/48073#issuecomment-365370113).

Additionally it will suggest a type (`X < Y`):
- `iX`: if literal fits in `uX` => `uX`, else => `iY`
- `-iX` => `iY`
- `uX` => `uY`

Exceptions: `isize`, `usize`. I don't think you can make a good suggestion here. The programmer has to figure it out on it's own in this case.

r? @oli-obk

6 years agoRollup merge of #48403 - lukaslueg:casted, r=steveklabnik
kennytm [Tue, 6 Mar 2018 08:25:28 +0000 (16:25 +0800)]
Rollup merge of #48403 - lukaslueg:casted, r=steveklabnik

Fix spelling s/casted/cast/

r? @GuillaumeGomez

6 years agoAuto merge of #48509 - Phlosioneer:option-doc-change, r=TimNN
bors [Tue, 6 Mar 2018 06:14:11 +0000 (06:14 +0000)]
Auto merge of #48509 - Phlosioneer:option-doc-change, r=TimNN

Slight modification to the as_ref example of std::option::Option

A user in a reddit thread was confused by the name of the variable
"num_as_int"; they thought the example was trying to convert the
string "10" as if it were binary 2 by calling str::len(). In reality,
the example is simply demonstrating how to take an immutable reference
to the value of an Option. The confusion comes from the coincidence
that the length of the string "10" is also its binary representation,
and the implication from the variable names that a conversion was
occuring ("num_as_str" to "num_as_int").

This PR changes the example number to 12 instead of 10, and changes
the variable name from "num_as_int" to "num_length" to better
communicate what the example is doing.

The reddit thread:
https://www.reddit.com/r/rust/comments/7zpvev/notyetawesome_rust_what_use_cases_would_you_like/dur39xw/

6 years agoAdd i128 tests for intrinsics
Amanieu d'Antras [Wed, 28 Feb 2018 13:56:54 +0000 (13:56 +0000)]
Add i128 tests for intrinsics

6 years agoAdd reverse_bits to integer types
Amanieu d'Antras [Tue, 27 Feb 2018 04:34:55 +0000 (04:34 +0000)]
Add reverse_bits to integer types

6 years agoRemove seemingly unused sugarise-doc-comments Python script.
Corey Farwell [Tue, 6 Mar 2018 01:24:05 +0000 (20:24 -0500)]
Remove seemingly unused sugarise-doc-comments Python script.

This Python script converts documentation comments from the
`#[doc = "..."]` attribute to the `///` syntax. It was added six
years ago, presumably to help with the transition when `///` was
implemented and hasn't really been touched since. I don't think there's
much value in keeping it around at this point.

6 years agoAuto merge of #48456 - mark-i-m:whitelist, r=alexcrichton
bors [Tue, 6 Mar 2018 00:44:21 +0000 (00:44 +0000)]
Auto merge of #48456 - mark-i-m:whitelist, r=alexcrichton

Whitelist rustc dependencies

As per https://internals.rust-lang.org/t/rustc-dependency-policy/6537/8?u=nikomatsakis

cc @alexcrichton @nikomatsakis

6 years agoAdd resource-suffix option for rustdoc
Guillaume Gomez [Sat, 24 Feb 2018 18:14:36 +0000 (19:14 +0100)]
Add resource-suffix option for rustdoc

6 years agoAdd ena to whitelist
Who? Me?! [Fri, 2 Mar 2018 18:15:02 +0000 (12:15 -0600)]
Add ena to whitelist

6 years agoUncomment whitelist
Who? Me?! [Fri, 2 Mar 2018 03:22:06 +0000 (21:22 -0600)]
Uncomment whitelist

6 years agoDo check the deps of path deps
Mark Mansi [Wed, 28 Feb 2018 22:28:30 +0000 (16:28 -0600)]
Do check the deps of path deps

6 years agoenable whitelist
Mark Mansi [Wed, 28 Feb 2018 20:25:34 +0000 (14:25 -0600)]
enable whitelist

6 years agoDon't check in-tree deps
Mark Mansi [Wed, 28 Feb 2018 20:12:15 +0000 (14:12 -0600)]
Don't check in-tree deps

6 years agodifferent versions may have different deps
Mark Mansi [Wed, 28 Feb 2018 00:33:55 +0000 (18:33 -0600)]
different versions may have different deps

6 years agoAdd a few missing deps
Mark Mansi [Tue, 27 Feb 2018 21:56:16 +0000 (15:56 -0600)]
Add a few missing deps

6 years agoRemove spurious whitespace
Mark Mansi [Tue, 27 Feb 2018 18:50:34 +0000 (12:50 -0600)]
Remove spurious whitespace

6 years agouncomment whitelist
Mark Mansi [Tue, 27 Feb 2018 18:47:49 +0000 (12:47 -0600)]
uncomment whitelist

6 years agoFix alexcrichton's comments
Mark Mansi [Tue, 27 Feb 2018 18:02:54 +0000 (12:02 -0600)]
Fix alexcrichton's comments

6 years agoOnly check the whitelist for some crates
Mark Mansi [Tue, 27 Feb 2018 05:45:04 +0000 (23:45 -0600)]
Only check the whitelist for some crates

6 years agoGet the path to cargo from rustbuild
Mark Mansi [Mon, 26 Feb 2018 17:05:43 +0000 (11:05 -0600)]
Get the path to cargo from rustbuild

6 years agoTrying to get paths right...
Mark Mansi [Sat, 24 Feb 2018 00:25:21 +0000 (18:25 -0600)]
Trying to get paths right...

6 years agoMAKE IT FAILgit statusgit status
Mark Mansi [Sat, 24 Feb 2018 00:01:51 +0000 (18:01 -0600)]
MAKE IT FAILgit statusgit status

6 years agoComments
Mark Mansi [Fri, 23 Feb 2018 01:57:55 +0000 (19:57 -0600)]
Comments

6 years agoStart adding a whitelist for rustc dependencies
Mark Mansi [Fri, 23 Feb 2018 01:52:56 +0000 (19:52 -0600)]
Start adding a whitelist for rustc dependencies

6 years agoRun rustfmt on tidy/src/deps.rs
Mark Mansi [Fri, 23 Feb 2018 00:59:04 +0000 (18:59 -0600)]
Run rustfmt on tidy/src/deps.rs

6 years agowhile let all the things
leonardo.yvens [Mon, 5 Mar 2018 18:58:54 +0000 (15:58 -0300)]
while let all the things

6 years agoAuto merge of #48208 - michaelwoerister:track-features, r=petrochenkov
bors [Mon, 5 Mar 2018 18:39:40 +0000 (18:39 +0000)]
Auto merge of #48208 - michaelwoerister:track-features, r=petrochenkov

Turn feature-gate table into a query so it is covered by dependency tracking.

Turn access to feature gates into a query so we handle them correctly during incremental compilation.

Features are still available via `Session` through `features_untracked()`. I wish we had a better way of hiding untracked information. It would be great if we could remove the `sess` field from `TyCtxt`.

Fixes #47003.

6 years agoRemove a couple of `isize` references from hashmap docs
Tobias Bucher [Mon, 5 Mar 2018 17:37:05 +0000 (18:37 +0100)]
Remove a couple of `isize` references from hashmap docs

Also fix a spelling mistake.

6 years agoFix some merge fallout.
Michael Woerister [Wed, 28 Feb 2018 13:11:15 +0000 (14:11 +0100)]
Fix some merge fallout.

6 years agoFix procedural_mbe_matching test case after libsyntax change.
Michael Woerister [Thu, 15 Feb 2018 14:53:26 +0000 (15:53 +0100)]
Fix procedural_mbe_matching test case after libsyntax change.

6 years agoincr.comp.: Add regression test for detecting feature gate changes.
Michael Woerister [Wed, 14 Feb 2018 15:26:56 +0000 (16:26 +0100)]
incr.comp.: Add regression test for detecting feature gate changes.

6 years agoTurn features() into a query.
Michael Woerister [Wed, 14 Feb 2018 15:11:02 +0000 (16:11 +0100)]
Turn features() into a query.

6 years agoAuto merge of #48736 - alexcrichton:fix-rust-src, r=3
bors [Sun, 4 Mar 2018 22:24:20 +0000 (22:24 +0000)]
Auto merge of #48736 - alexcrichton:fix-rust-src, r=3

Include stdsimd in rust-src component

Closes #48734

6 years agoInclude stdsimd in rust-src component
Alex Crichton [Sun, 4 Mar 2018 20:13:21 +0000 (12:13 -0800)]
Include stdsimd in rust-src component

Closes #48734

6 years agoAuto merge of #48592 - spastorino:borrowed_value_error, r=nikomatsakis
bors [Sun, 4 Mar 2018 18:16:43 +0000 (18:16 +0000)]
Auto merge of #48592 - spastorino:borrowed_value_error, r=nikomatsakis

[NLL] Avoid borrowed value must be valid for lifetime '_#2r..." in errors

Closes #48428

- [x] If NLL is enabled, [do not invoke `note_and_explain_region`](https://github.com/rust-lang/rust/issues/48428#issuecomment-367691123)
- [x] Modify `-Zdump-nll-cause` to not print [the overwhelming debug output here](https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/region_infer/mod.rs#L1288-L1299). This way we should I believe at least get nice-ish output for [our original example](https://github.com/rust-lang/rust/issues/48428#issue-299364536).
- [x] Extend `explain_why_borrow_contains_point` to also work for "universal lifetimes" like the `'a` in [the example at the end of this comment](https://github.com/rust-lang/rust/issues/48428#issuecomment-367691123).
- [ ] Figure out how to enable causal information all the time (but that is https://github.com/rust-lang/rust/issues/46590).

6 years agoFixed #48425
Pramod Bisht [Tue, 27 Feb 2018 19:55:38 +0000 (01:25 +0530)]
Fixed #48425

6 years agoRemove useless powerpc64 entry from ARCH_TABLE, closes #47737
debris [Sun, 4 Mar 2018 13:58:10 +0000 (14:58 +0100)]
Remove useless powerpc64 entry from ARCH_TABLE, closes #47737

6 years agoAdd note for unterminated raw string error
Guillaume Gomez [Mon, 26 Feb 2018 14:04:40 +0000 (15:04 +0100)]
Add note for unterminated raw string error

6 years agoAuto merge of #47832 - fintelia:vec-index, r=kennytm
bors [Sun, 4 Mar 2018 12:30:27 +0000 (12:30 +0000)]
Auto merge of #47832 - fintelia:vec-index, r=kennytm

Have Vec use slice's implementations of Index<I> and IndexMut<I>

This PR simplifies the implementation of Index and IndexMut on Vec, and in the process enables indexing Vec by any user types that implement SliceIndex.

The stability annotations probably need to be changed, but I wasn't sure of the right way to do that. It also wasn't completely clear to me if this change could break any existing code.

6 years agoRefactor contrived match.
leonardo.yvens [Sun, 4 Mar 2018 11:12:03 +0000 (08:12 -0300)]
Refactor contrived match.

6 years agoAuto merge of #48587 - Zoxc:transitive-relation, r=nikomatsakis
bors [Sun, 4 Mar 2018 09:41:32 +0000 (09:41 +0000)]
Auto merge of #48587 - Zoxc:transitive-relation, r=nikomatsakis

Make TransitiveRelation thread safe. Avoid locking by using get_mut in some cases

r? @nikomatsakis

6 years agoAuto merge of #48630 - alexcrichton:more-sccache, r=kennytm
bors [Sun, 4 Mar 2018 07:09:41 +0000 (07:09 +0000)]
Auto merge of #48630 - alexcrichton:more-sccache, r=kennytm

rustbuild: Pass `ccache` to build scripts

This is a re-attempt at #48192 hopefully this time with 100% less randomly
[blocking builds for 20 minutes][block]. To work around #48192 the sccache
server is started in the `run.sh` script very early on in the compilation
process.

[block]: https://github.com/rust-lang/rust/issues/48192

6 years agoAuto merge of #48125 - alexcrichton:lld, r=Mark-Simulacrum
bors [Sun, 4 Mar 2018 04:22:39 +0000 (04:22 +0000)]
Auto merge of #48125 - alexcrichton:lld, r=Mark-Simulacrum

rust: Import LLD for linking wasm objects

This commit imports the LLD project from LLVM to serve as the default linker for
the `wasm32-unknown-unknown` target. The `binaryen` submoule is consequently
removed along with "binaryen linker" support in rustc.

Moving to LLD brings with it a number of benefits for wasm code:

* LLD is itself an actual linker, so there's no need to compile all wasm code
  with LTO any more. As a result builds should be *much* speedier as LTO is no
  longer forcibly enabled for all builds of the wasm target.
* LLD is quickly becoming an "official solution" for linking wasm code together.
  This, I believe at least, is intended to be the main supported linker for
  native code and wasm moving forward. Picking up support early on should help
  ensure that we can help LLD identify bugs and otherwise prove that it works
  great for all our use cases!
* Improvements to the wasm toolchain are currently primarily focused around LLVM
  and LLD (from what I can tell at least), so it's in general much better to be
  on this bandwagon for bugfixes and new features.
* Historical "hacks" like `wasm-gc` will soon no longer be necessary, LLD
  will [natively implement][gc] `--gc-sections` (better than `wasm-gc`!) which
  means a postprocessor is no longer needed to show off Rust's "small wasm
  binary size".

LLD is added in a pretty standard way to rustc right now. A new rustbuild target
was defined for building LLD, and this is executed when a compiler's sysroot is
being assembled. LLD is compiled against the LLVM that we've got in tree, which
means we're currently on the `release_60` branch, but this may get upgraded in
the near future!

LLD is placed into rustc's sysroot in a `bin` directory. This is similar to
where `gcc.exe` can be found on Windows. This directory is automatically added
to `PATH` whenever rustc executes the linker, allowing us to define a `WasmLd`
linker which implements the interface that `wasm-ld`, LLD's frontend, expects.

Like Emscripten the LLD target is currently only enabled for Tier 1 platforms,
notably OSX/Windows/Linux, and will need to be installed manually for compiling
to wasm on other platforms. LLD is by default turned off in rustbuild, and
requires a `config.toml` option to be enabled to turn it on.

Finally the unstable `#![wasm_import_memory]` attribute was also removed as LLD
has a native option for controlling this.

[gc]: https://reviews.llvm.org/D42511

6 years agorustc: Tweak default linker selection
Alex Crichton [Sat, 10 Feb 2018 20:09:25 +0000 (12:09 -0800)]
rustc: Tweak default linker selection

This commit refactors how the path to the linker that we're going to invoke is
selected. Previously all targets listed *both* a `LinkerFlavor` and a `linker`
(path) option, but this meant that whenever you changed one you had to change
the other. The purpose of this commit is to avoid coupling these where possible.

Target specifications now only unconditionally define the *flavor* of the linker
that they're using by default. If not otherwise specified each flavor now
implies a particular default linker to run. As a result, this means that if
you'd like to test out `ld` for example you should be able to do:

    rustc -Z linker-flavor=ld foo.rs

whereas previously you had to do

    rustc -Z linker-flavor=ld -C linker=ld foo.rs

This will hopefully make it a bit easier to tinker around with variants that
should otherwise be well known to work, for example with LLD, `ld` on OSX, etc.

6 years agorust: Import LLD for linking wasm objects
Alex Crichton [Sun, 27 Aug 2017 01:30:12 +0000 (18:30 -0700)]
rust: Import LLD for linking wasm objects

This commit imports the LLD project from LLVM to serve as the default linker for
the `wasm32-unknown-unknown` target. The `binaryen` submoule is consequently
removed along with "binaryen linker" support in rustc.

Moving to LLD brings with it a number of benefits for wasm code:

* LLD is itself an actual linker, so there's no need to compile all wasm code
  with LTO any more. As a result builds should be *much* speedier as LTO is no
  longer forcibly enabled for all builds of the wasm target.
* LLD is quickly becoming an "official solution" for linking wasm code together.
  This, I believe at least, is intended to be the main supported linker for
  native code and wasm moving forward. Picking up support early on should help
  ensure that we can help LLD identify bugs and otherwise prove that it works
  great for all our use cases!
* Improvements to the wasm toolchain are currently primarily focused around LLVM
  and LLD (from what I can tell at least), so it's in general much better to be
  on this bandwagon for bugfixes and new features.
* Historical "hacks" like `wasm-gc` will soon no longer be necessary, LLD
  will [natively implement][gc] `--gc-sections` (better than `wasm-gc`!) which
  means a postprocessor is no longer needed to show off Rust's "small wasm
  binary size".

LLD is added in a pretty standard way to rustc right now. A new rustbuild target
was defined for building LLD, and this is executed when a compiler's sysroot is
being assembled. LLD is compiled against the LLVM that we've got in tree, which
means we're currently on the `release_60` branch, but this may get upgraded in
the near future!

LLD is placed into rustc's sysroot in a `bin` directory. This is similar to
where `gcc.exe` can be found on Windows. This directory is automatically added
to `PATH` whenever rustc executes the linker, allowing us to define a `WasmLd`
linker which implements the interface that `wasm-ld`, LLD's frontend, expects.

Like Emscripten the LLD target is currently only enabled for Tier 1 platforms,
notably OSX/Windows/Linux, and will need to be installed manually for compiling
to wasm on other platforms. LLD is by default turned off in rustbuild, and
requires a `config.toml` option to be enabled to turn it on.

Finally the unstable `#![wasm_import_memory]` attribute was also removed as LLD
has a native option for controlling this.

[gc]: https://reviews.llvm.org/D42511

6 years agoMove process::ExitCode internals to sys
Scott McMurray [Sun, 4 Mar 2018 02:29:30 +0000 (18:29 -0800)]
Move process::ExitCode internals to sys

Now begins the saga of fixing compilation errors on other platforms...

6 years agoAuto merge of #48600 - Mark-Simulacrum:rustbuild-updates-2, r=alexcrichton
bors [Sun, 4 Mar 2018 01:32:57 +0000 (01:32 +0000)]
Auto merge of #48600 - Mark-Simulacrum:rustbuild-updates-2, r=alexcrichton

Remove --host and --target arguments to configure in Dockerfiles

These arguments are passed to the relevant x.py invocation in all cases
anyway. As such, there is no need to separately configure them. x.py
will ignore the configuration when they are passed on the command line
anyway.

r? @alexcrichton

6 years agoRemove ty::Predicate::Equate and ty::EquatePredicate (dead code)
Tatsuyuki Ishi [Sat, 3 Mar 2018 13:54:50 +0000 (22:54 +0900)]
Remove ty::Predicate::Equate and ty::EquatePredicate (dead code)

6 years agoRefactor away `inferred_obligations` from the trait selector
Aravind Gollakota [Sun, 4 Mar 2018 00:47:17 +0000 (18:47 -0600)]
Refactor away `inferred_obligations` from the trait selector

6 years agoAvoid unnecessary calculation
Shotaro Yamada [Sun, 4 Mar 2018 00:43:29 +0000 (09:43 +0900)]
Avoid unnecessary calculation