Commit graph

66984 commits

Author SHA1 Message Date
Niko Matsakis
08071c28f8 Revert "Cleanup some remains of hr_lifetime_in_assoc_type compatibility lint"
This reverts commit 80cf3f99f4.
2017-10-06 12:00:51 -04:00
Ariel Ben-Yehuda
7b54e83ff2 fix logic error in #44269's prune_cache_value_obligations
We want to retain obligations that *contain* inference variables, not
obligations that *don't contain* them, in order to fix #43132. Because
of surrounding changes to inference, the ICE doesn't occur in its
original case, but I believe it could still be made to occur on master.

Maybe I should try to write a new test case? Certainly not right now
(I'm mainly trying to get us a beta that we can ship) but maybe before
we land this PR on nightly?

This seems to cause a 10% performance regression in my imprecise
attempt to benchmark item-body checking for #43613, but it's better to
be slow and right than fast and wrong. If we want to recover that, I
think we can change the constrained-type-parameter code to actually
give a list of projections that are important for resolving inference
variables and filter everything else out.
2017-10-06 10:39:57 -04:00
Niko Matsakis
41d7051ee9 update prerelease version 2017-09-28 16:57:48 -04:00
Niko Matsakis
89247fbb7a update comment 2017-09-28 16:19:53 -04:00
Niko Matsakis
02a49f8582 add in a "paranoid" trait bound 2017-09-28 16:19:43 -04:00
Niko Matsakis
596c9a78e4 limit and clear cache obligations opportunistically
Keep **all** the obligations for every projection is wasteful of
memory and compilation time. We only really care about those
subobligations that may inform the result of the projection (i.e., may
help to resolve any inference variables that appear within).
Therefore, we can clear the subobligations from the cache that don't
potentially affect the result of the projection. On every cache hit,
we also take the opportunity to check if the type variables have been
resolved *yet* and, if so, clear out the pending obligations.

Fixes #43613
2017-09-28 16:19:34 -04:00
Ariel Ben-Yehuda
423251a4ae clear out projection subobligations after they are processed
After a projection was processed, its derived subobligations no longer
need any processing when encountered, and can be removed. This improves
the status of #43787.

This is actually complementary to #43938 - that PR fixes selection
caching (and @remram44's example, which "accidentally" worked because of
the buggy projection caching) while this PR fixes projection caching
2017-09-28 16:19:15 -04:00
Alex Crichton
69bd53a11a Update the libc submodule
Brings in a few fixes for wasm/asmjs
2017-09-28 16:01:07 -04:00
Zack M. Davis
957846c3a2 --cap-lints allow switches off can_emit_warnings
This boolean field on the error `Handler` is toggled to silence
warnings when `-A warnings` is passed. (This is actually a separate
mechanism from the global lint level—whether there's some redundancy
to be factored away here is an important question, but not one we
concern ourselves with in this commit.)  But the same rationale
applies for `--cap-lints allow`. In particular, this makes the "soft"
feature-gate warning introduced in 8492ad24 (which is not a lint, but
just calls `struct_span_warn`) not pollute the builds of dependent
crates.

Thanks to @kennytm for pointing out the potential of
`can_emit_warnings` for this purpose.

Resolves #44213.
2017-09-28 15:07:38 -04:00
Jeffrey Seyfried
7e08df507d Fix bug in collecting trait and impl items with derives. 2017-09-28 14:56:20 -04:00
David Tolnay
658134a8a2 Allow unused extern crate again
This is a partial revert of #42588. There is a usability concern
reported in #44294 that was not considered in the discussion of the PR,
so I would like to back this out of 1.21. As is, I think users would
have a worse and more confusing experience with this lint enabled by
default. We can re-enabled once there are better diagnostics or the case
in #44294 does not trigger the lint.
2017-09-28 14:54:28 -04:00
bors
3c3cd3f682 Auto merge of #44823 - dtolnay:backport21, r=alexcrichton
[beta] Backport accepted PRs to 1.21

Backport of:

- ~don't suggest placing `use` statements into expanded code https://github.com/rust-lang/rust/pull/44215~
- stabilize tcpstream_connect_timeout https://github.com/rust-lang/rust/pull/44563
- stabilized iterator_for_each https://github.com/rust-lang/rust/pull/44567
- travis: Move sccache to the us-west-1 region https://github.com/rust-lang/rust/pull/44574
- stabilized ord_max_min https://github.com/rust-lang/rust/pull/44593
- stabilized compiler_fences https://github.com/rust-lang/rust/pull/44595
- ci: Upload/download from a new S3 bucket https://github.com/rust-lang/rust/pull/44617
- stabilized needs_drop https://github.com/rust-lang/rust/pull/44639
- Stabilized vec_splice and modified splice tracking issue https://github.com/rust-lang/rust/pull/44640
- Backport libs stabilizations to 1.21 beta https://github.com/rust-lang/rust/pull/44824
2017-09-26 14:29:55 +00:00
David Tolnay
f38d35386d
Use the new String::splice tracking issue for string::Splice
I backported the stabilization of Vec::splice and the move of
String::splice to the new tracking issue, but not the new signature of
String::splice in 1.22. This combination requires updating the tracking
issue on some code that no longer exists in nightly.
2017-09-25 21:43:35 -07:00
David Tolnay
a8117df5dd
Backport libs stabilizations to 1.21 beta
This includes the following stabilizations:

- tcpstream_connect_timeout https://github.com/rust-lang/rust/pull/44563
- iterator_for_each https://github.com/rust-lang/rust/pull/44567
- ord_max_min https://github.com/rust-lang/rust/pull/44593
- compiler_fences https://github.com/rust-lang/rust/pull/44595
- needs_drop https://github.com/rust-lang/rust/pull/44639
- vec_splice https://github.com/rust-lang/rust/pull/44640
2017-09-25 21:43:30 -07:00
Michal Budzynski
6185701584
Updated tracking issue for String::splice and its unstable-book entry 2017-09-24 23:00:13 -07:00
Michal Budzynski
bce9b14519
stabilized vec_splice (fixes #32310) 2017-09-24 22:58:02 -07:00
Michal Budzynski
00cd2d60ba
stabilized needs_drop (fixes #41890) 2017-09-24 22:57:45 -07:00
Alex Crichton
8b82e3d3f2
ci: Upload/download from a new S3 bucket
Moving buckets from us-east-1 to us-west-1 because us-west-1 is where
rust-central-station itself runs and in general is where we have all our other
buckets.
2017-09-24 22:57:31 -07:00
Michal Budzynski
73bd10aa7d
Added more text from unstable-book to compiler_fence docs 2017-09-24 22:57:20 -07:00
Michal Budzynski
f7d4d845df
Added example to compiler_fence docs taken from unstable-book 2017-09-24 22:57:12 -07:00
Michal Budzynski
bdc90e5bb3
stabilized compiler_fences (fixes #41091) 2017-09-24 22:57:05 -07:00
Michal Budzynski
7b61414826
stabilized iterator_for_each (closes #42986)
updated clippy and rls as it uses the iterator_for_each
2017-09-24 22:55:08 -07:00
Michal Budzynski
df8fec1d70
stabilized ord_max_min (fixes #25663) 2017-09-24 22:47:28 -07:00
Alex Crichton
44f783369b
travis: Move sccache to the us-west-1 region
Most of the other rust-lang buckets are in us-west-1 and I think the original
bucket was just accidentally created in the us-east-1 region. Let's consolidate
by moving it to the same location as the rest of our buckets.
2017-09-24 22:47:11 -07:00
Michal Budzynski
88063cac17
stabilize tcpstream_connect_timeout (closes #43079) 2017-09-24 22:46:05 -07:00
bors
ea1fd7d422 Auto merge of #44357 - nrc:rls-manifest-beta-2, r=alexcrichton
[beta] Attempt to fix the component manifest problem for rls-preview

cc #44270

see #44352
2017-09-15 00:29:04 +00:00
Alex Crichton
25676e0151 Bump beta to .3 2017-09-14 10:37:43 -07:00
Nick Cameron
45b426c82a Attempt to fix the component manifest problem for rls-preview
cc #44270
2017-09-14 10:37:43 -07:00
Alex Burka
6c6a2c12ba update "since" for discriminant_value
It's going to be backported to beta.
2017-09-14 10:37:43 -07:00
Alex Crichton
214abf211b rustc: Spawn cmd /c emcc.bat explicitly
In #42436 the behavior for spawning processes on Windows was tweaked slightly to
fix various bugs, but this caused #42791 as a regression, namely that to spawn
batch scripts they need to be manually spawned with `cmd /c` instead now. This
updates the compiler to handle this case explicitly for Emscripten.

Closes #42791
2017-09-14 10:37:43 -07:00
Alex Crichton
65bf0e2862 travis: Downgrade to previous images temporarily
Travis is in the process of [rolling out an update][update] but looks like our
tests are breaking, let's temporarily roll back to get the queue moving again.

[update]: https://blog.travis-ci.com/2017-08-29-trusty-image-updates
2017-09-14 10:37:43 -07:00
Alex Crichton
27e18d3c50 Rotate Travis/AppVeyor S3 keys
Haven't done this in awhile so seems like a good idea!
2017-09-14 10:37:42 -07:00
Josh Stone
0df9c5450b Include rustc in the default ./x.py install
The default install used to include rustc, rust-std, and rust-docs, but
the refactoring in commit 6b3413d825 make rustc only default in
extended builds.  This commit makes rustc installed by default again.
2017-09-14 10:37:42 -07:00
Alex Burka
c4474ab905 stabilize mem::discriminant (closes #24263) 2017-09-14 10:37:42 -07:00
bors
133aefc9fe Auto merge of #44235 - alexcrichton:beta-next, r=alexcrichton
[beta] Boostrap from released compilers

No need to use dev any more!

Also contains backports for:

* https://github.com/rust-lang/rust/pull/44049
* https://github.com/rust-lang/rust/pull/44121
* https://github.com/rust-lang/rust/pull/44144
2017-09-02 03:55:23 +00:00
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