Commit graph

66949 commits

Author SHA1 Message Date
Alex Crichton
38b513dfd1 [beta] Boostrap from released compilers
No need to use dev any more!
2017-09-01 10:08:13 -07:00
Alex Crichton
7be7dc8fd5 Bump beta to .2 2017-09-01 10:06:50 -07:00
Alex Crichton
44668346e1 rustbuild: Fix dependencies of build-manifest
No need to depend on librustc! All we need is libstd

Closes #44140
2017-09-01 10:06:29 -07:00
Tatsuyuki Ishi
f6dd218d34 bootstrap: remove unneeded extern crate
The crate itself is internally referenced by serde_derive.
2017-09-01 10:06:19 -07:00
Alex Crichton
5c8816cfc9 std: Mark allocation functions as nounwind
This commit flags all allocation-related functions in liballoc as "this can't
unwind" which should largely resolve the size-related issues found on #42808.
The documentation on the trait was updated with such a restriction (they can't
panic) as well as some other words about the relative instability about
implementing a bullet-proof allocator.

Closes #42808
2017-09-01 10:06:11 -07:00
bors
7d856ac502 Auto merge of #44204 - nrc:beta, r=alexcrichton
RLS on beta

Reverts the RLS backout commit, updates the RLS to the beta branch (which includes a relative path dep for Cargo and sets the version to 0.121, plus fixes a bug I was having running tests on the beta branch), and backports #44141 (renaming rls component to rls-preview).

r? @alexcrichton
2017-09-01 02:11:17 +00:00
bors
dc6ab22e66 Auto merge of #44148 - arielb1:closure-key-beta, r=nikomatsakis
[beta] Track closure signatures & kinds in freshened types

This allows caching closure signatures and kinds in the normal selection
and evaluation caches, and fixes the exponential worst-case in
@remram44's example, which is a part of #43787.

This improvement is complenentary to #43999 - they fix different cases.

This is the pre-generators variation of #43938, cloned for beta.
2017-08-31 05:54:39 +00:00
Nick Cameron
80a77b6420 Rename the rls component to rls-preview on beta/stable 2017-08-31 12:48:36 +12:00
Nick Cameron
73fee0d467 Update rls to beta (1.21) branch 2017-08-31 12:48:36 +12:00
Nick Cameron
a6f5e017a5 Revert "Remove all packaging support for the RLS"
This reverts commit ccb7c55ac7.
2017-08-30 18:54:14 +12:00
bors
1981099116 Auto merge of #44130 - alexcrichton:beta-next, r=alexcrichton
Prepare the 1.21.0 beta1 release
2017-08-29 03:35:14 +00:00
Alex Crichton
ccb7c55ac7 Remove all packaging support for the RLS 2017-08-28 19:02:51 -07:00
Alex Crichton
d0911acabf Update bootstrap compiler 2017-08-28 09:41:44 -07:00
Alex Crichton
10632a95f8 Update the release channel to beta 2017-08-28 07:10:26 -07:00
Ariel Ben-Yehuda
b2a46613c1 Track closure signatures & kinds in freshened types
This allows caching closure signatures and kinds in the normal selection
and evaluation caches, and fixes the exponential worst-case in
@remram44's example, which is a part of #43787.

This improvement is complenentary to #43999 - they fix different cases.
2017-08-27 20:03:22 +03:00
bors
e266888240 Auto merge of #44110 - alexcrichton:docker-init, r=Mark-Simulacrum
ci: Remove the need for `dumb-init`

Newer versions of Docker have a `--init` argument which spawns an init process
in the container, which we should be able to use everywhere now.
2017-08-27 15:31:11 +00:00
bors
eb8f2586eb Auto merge of #44060 - taleks:issue-43205, r=arielb1
Fixes issue #43205: ICE in Rvalue::Len evaluation.

- fixes evaluation of array length for zero-sized type referenced by rvalue operand.
- adds test to verify fix.

*Cause of the issue*.

Zero-sized aggregates are handled as operands, not lvalues. Therefore while visiting `Assign` statement by `LocalAnalyser`, `mark_as_lvalue()` is not called for related `Local`. This behaviour is controlled by `rvalue_creates_operand()` method.

As result it causes error later, when rvalue operand is evaluated in `trans_rvalue_operand()` while handling `Rvalue::Len` case. Array length evaluation invokes `trans_lvalue()` which expects referenced `Local` to be value, not operand.

*How it is fixed*.

In certain cases result of `Rvalue::Len` can be evaluated without calling
`trans_lvalue()`. Method `evaluate_array_len()` is introduced to handle length
evaluation for zero-sized types referenced by Locals.

*Some concerns*.

- `trans_lvalue()` has two other entry points in `rvalue.rs`: it is invoked while handling `Rvalue::Ref` and `Rvalue::Discriminant`. There is a chance those may produce the same issue, but I've failed to write a specific test that leads to this.
- `evaluate_array_len()` performs the same check (matches lvalue and `Local`), which is performed again in `trans_lvalue()`. Without changing `trans_lvalue()` signature to make it aware that caller deals with rvalue, it seems there is no cheap solution to avoid this check.
2017-08-27 12:53:48 +00:00
bors
78e95bb7ac Auto merge of #42588 - ishitatsuyuki:patch-1, r=petrochenkov
Make unused-extern-crate warn-by-default

Apart from enabling the lint, this pull request also removes existing unused crates in the codebase, and fix some amount of false positives on crates with special purposes.

Now that all false positive issues are closed, it should be possible to make it available to wider users.

Quote:
> Now that macro modularization is implemented, this is true today! *https://github.com/rust-lang/rust/issues/30849#issuecomment-286573218*

Concerns: can break some `#[deny(warnings)]`.

Close #42591
2017-08-27 10:02:51 +00:00
Tatsuyuki Ishi
a91bdf4ad5 Update Cargo submodule 2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
2140a1e5c6 Whitelist for dummy_jemalloc 2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
7a8d38e522 Additional libc cleanup 2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
7f054990b6 Platform gate libc in libtest 2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
bf9bdefe8a Whitelist unwind import in std
This is a part of libbacktrace linkage and thus the compiler cannot detect if it's used or not.
2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
6e18fe4d22 Add missing dependency for Windows 2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
8309a4c43b Address review comments, second turn 2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
611b111139 Move unused-extern-crate to late pass 2017-08-27 19:02:24 +09:00
Tatsuyuki Ishi
bc5bd51c45 Make unused-extern-crate warn-by-default 2017-08-27 19:02:24 +09:00
bors
93cdf5e3c4 Auto merge of #44112 - alexcrichton:thread-join, r=sfackler
std: Handle OS errors when joining threads

Also add to the documentation that the `join` method can panic.

cc #34971
cc #43539
2017-08-27 04:20:28 +00:00
Alex Crichton
dc7c7ba0c9 std: Handle OS errors when joining threads
Also add to the documentation that the `join` method can panic.

cc #34971
cc #43539
2017-08-26 19:36:46 -07:00
bors
3e96461230 Auto merge of #44102 - Mark-Simulacrum:update-cargo, r=alexcrichton
Update cargo

Should permit https://github.com/rust-lang/rust/pull/41991 to move forward. I think it's best to land this as a separate patch and rebase that, though.

r? @alexcrichton
2017-08-27 01:41:45 +00:00
Alex Crichton
ffe64a26ab ci: Remove the need for dumb-init
Newer versions of Docker have a `--init` argument which spawns an init process
in the container, which we should be able to use everywhere now.
2017-08-26 18:34:13 -07:00
bors
ff33b60a80 Auto merge of #44096 - Dushistov:master, r=japaric
Add test for wrong code generation for HashSet creation on arm cpu

This is test for #42918.
To reproduce bug you need machine with arm cpu and compile with optimization.
I tried with rustc 1.19.0-nightly (3d5b8c626 2017-06-09),
if compile test with -C opt-level=3 for target=arm-linux-androideabi
and run on "Qualcomm MSM 8974 arm cpu" then assert fails,
if compile and run with -C opt-level=2 it gives segmentation fault.
So I add `compile-flags: -O`.
With rustc 1.19.0 (0ade33941 2017-07-17) all works fine.
Closes #42918
2017-08-26 23:11:44 +00:00
bors
003a929f99 Auto merge of #44084 - alexcrichton:msvc-ninja, r=Mark-Simulacrum
rustbuild: Automatically enable Ninja on MSVC

Discovered in #43767 it turns out the default MSBuild generator in CMake for
whatever reason isn't supporting many of the configuration options we give to
LLVM. To improve the contributor experience automatically enable Ninja if we
find it to ensure that "flavorful" configurations of LLVM work by default in
more situations.

Closes #43767
2017-08-26 20:21:28 +00:00
Mark Simulacrum
a947c6a595 Update cargo 2017-08-26 12:30:57 -06:00
bors
315e7022f3 Auto merge of #44082 - pnkfelix:issue-43457, r=eddyb
Fix destruction extent lookup during HIR -> HAIR translation

My method for finding the destruction extent, if any, from cbed41a174 (in #39409), was buggy in that it sometimes failed to find an extent that was nonetheless present.

This fixes that, and is cleaner code to boot.

Fix #43457
2017-08-26 17:48:29 +00:00
bors
32f6056079 Auto merge of #44098 - frewsxcv:rollup, r=frewsxcv
Rollup of 7 pull requests

- Successful merges: #43776, #43966, #43979, #44072, #44086, #44090, #44091
- Failed merges:
2017-08-26 15:17:32 +00:00
Corey Farwell
502a11d53e Rollup merge of #44091 - kallisti5:haiku-fix, r=eddyb
haiku/librustc_back: Remove incorrect no_integrated_as

* Makes rust bootstrap incorrectly search for xxx.s vs xxx.0.s
* Not needed or incorrect fix for another issue.
2017-08-26 06:46:37 -07:00
Corey Farwell
fdf4598f8c Rollup merge of #44090 - GuillaumeGomez:str-doc, r=steveklabnik
Add missing link in string doc

r? @rust-lang/docs
2017-08-26 06:46:36 -07:00
Corey Farwell
cc5c1e39f4 Rollup merge of #44086 - kennytm:htmldocck-python3, r=Mark-Simulacrum
Allow `htmldocck.py` to run using Python 3
2017-08-26 06:46:35 -07:00
Corey Farwell
7e8753d1c1 Rollup merge of #44072 - lukaramu:fix-doc-headings, r=steveklabnik
Fix inconsistent doc headings

This fixes headings reading "Unsafety" and "Example", they should be "Safety" and "Examples" according to RFC 1574.

r? @steveklabnik
2017-08-26 06:46:34 -07:00
Corey Farwell
b4dcdee0fd Rollup merge of #43979 - Jouan:Add-links-for-impls, r=GuillaumeGomez
Add links for impls

Implements a solution for issue #23552
r? @QuietMisdreavus
2017-08-26 06:46:33 -07:00
Corey Farwell
e9a6dccce0 Rollup merge of #43966 - GuillaumeGomez:remove-dup, r=QuietMisdreavus
Remove duplicates in rustdoc

Fixes #43934.

Two things however:

 1. I'm not happy with the current check. It seems completely overkill and unsatisfying.
 2. I have no idea how to test if there is only one element and not two.

r? @rust-lang/docs
2017-08-26 06:46:32 -07:00
Corey Farwell
1412ff5512 Rollup merge of #43776 - zackmdavis:feature_gate_fn_must_use, r=alexcrichton
feature-gate #[must_use] for functions as `fn_must_use`

@eddyb I [was](https://github.com/rust-lang/rust/pull/43728#issuecomment-320854120) [dithering](https://github.com/rust-lang/rust/pull/43728#issuecomment-320856407) on this, but [your comment](https://github.com/rust-lang/rust/issues/43302#issuecomment-321174989) makes it sound like we do want a feature gate for this? Please advise.

r? @eddyb
2017-08-26 06:46:31 -07:00
bors
669d4770f2 Auto merge of #44081 - est31:master, r=eddyb
Fix a byte/char confusion issue in the error emitter

Fixes #44078. Fixes #44023.

The start_col member is given in chars, while the code previously assumed it was given in bytes.

The more basic issue #44080 doesn't get fixed.
2017-08-26 12:50:11 +00:00
bors
e7070dd019 Auto merge of #44071 - alexcrichton:no-cycles, r=nikomatsakis
rustc: Start moving toward "try_get is a bug" for incremental

This PR is an effort to burn down some of the work items on #42633. The basic change here was to leave the `try_get` function exposed but have it return a `DiagnosticBuilder` instead of a `CycleError`. This means that it should be a compiler bug to *not* handle the error as dropping a diagnostic should result in a complier panic.

After that change it was then necessary to update the compiler's callsites of `try_get` to handle the error coming out. These were handled as:

* The `sized_constraint` and `needs_drop_raw` checks take the diagnostic and defer it as a compiler bug. This was a new piece of functionality added to the error handling infrastructure, and the idea is that for both these checks a "real" compiler error should be emitted elsewhere, so it's only a bug if we don't actually emit the complier error elsewhere.
* MIR inlining was updated to just ignore the diagnostic. This is being tracked by https://github.com/rust-lang/rust/issues/43542 which sounded like it either already had some work underway or was planning to change regardless.
* The final case, `item_path`, is still sort of up for debate. At the time of this writing this PR simply removes the invocations of `try_get` there, assuming that the query will always succeed. This turns out to be true for the test suite anyway! It sounds like, though, that this logic was intended to assist in "weird" situations like `RUST_LOG` where debug implementations can trigger at any time. This PR would therefore, however, break those implementations.

I'm unfortunately sort of out of ideas on how to handle `item_path`, but other thoughts would be welcome!

Closes #42633
2017-08-26 08:25:44 +00:00
Evgeniy A. Dushistov
911a15d5a8 Add test for wrong code generation for HashSet creation on arm cpu
This is test for #42918.
To reproduce bug you need machine with arm cpu and compile with optimization.
I tried with rustc 1.19.0-nightly (3d5b8c626 2017-06-09),
if compile test with -C opt-level=3 for target=arm-linux-androideabi
and run on "Qualcomm MSM 8974 arm cpu" then assert fails,
if compile and run with -C opt-level=2 it gives segmentation fault.
So I add `compile-flags: -O`.
With rustc 1.19.0 (0ade33941 2017-07-17) all works fine.
Closes #42918
2017-08-26 08:33:35 +03:00
bors
398aaffc94 Auto merge of #44028 - nrc:rls-update, r=alexcrichton
Update RLS and Cargo

r? @alexcrichton
2017-08-26 01:28:57 +00:00
Nick Cameron
7cb3f45063 Update RLS and Cargo 2017-08-25 18:12:47 -07:00
Alex Crichton
c766aa4e3b rustc: Make report_cycle and CycleError private 2017-08-25 17:37:21 -07:00
Alex Crichton
c77213d0cc rustc: Skip cyclic checks in item_path
This seems like it may be likely to cause bugs with `RUST_LOG` and other
"interesting" scenarios, but it removes the usage of `try_get` for now!
2017-08-25 16:08:35 -07:00