Commit Graph

77455 Commits

Author SHA1 Message Date
kennytm
1c1fd2758e
Rollup merge of #50251 - alexcrichton:wasm-no-threads, r=eddyb
rustc: Disable threads in LLD for wasm

Upstream bug reports (rustwasm/wasm-bindgen#119) show that this may be the
culprit of odd crashes/hangs. The linker is a tiny fraction of build time anyway
right now so let's disable it and figure out how to possibly reenable it later
if necessary.
2018-04-28 03:32:15 +08:00
kennytm
4a961d1f08
Rollup merge of #50192 - bobtwinkles:libsyntax_extensions, r=jseyfried
Add some utilities to `libsyntax`

Adds a few functions to `Mark` and `Span` that I found useful in an upcoming refactor of NLL region error reporting. Also includes some new documentation based on my discussion with @jseyfried on IRC.

r? @jseyfried
2018-04-28 03:32:13 +08:00
kennytm
8b36d9abaa
Rollup merge of #49968 - christianpoveda:stabilize_dyn, r=nikomatsakis
Stabilize dyn trait

This PR stabilizes RFC 2113. I followed the [stabilization guide](https://forge.rust-lang.org/stabilization-guide.html).

Related issue: https://github.com/rust-lang/rust/issues/49218
2018-04-28 03:32:12 +08:00
kennytm
a18e7a6e83
Rollup merge of #49858 - dmizuk:unique-doc-hidden, r=steveklabnik
std: Mark `ptr::Unique` with `#[doc(hidden)]`

`Unique` is now perma-unstable, so let's hide its docs.
2018-04-28 03:32:11 +08:00
bors
a9975254ee Auto merge of #50137 - nox:rm-bool-cmp-hack, r=eddyb
Remove hack around comparisons of i1 values (fixes #40980)

The regression test still passes without that 2 years old hack. The underlying
LLVM bug has probably been fixed upstream since then.
2018-04-27 18:53:16 +00:00
bors
3c43aa5677 Auto merge of #50102 - Zoxc:query-nomacro, r=michaelwoerister
Move query code outside macros and store query jobs separately from query results

Based on https://github.com/rust-lang/rust/pull/50067

r? @michaelwoerister
2018-04-27 16:42:31 +00:00
Christian Poveda
b5c7cbf2f2 rustdoc asks for dyn_trait feature in stage0 2018-04-27 11:02:39 -05:00
Christian Poveda
b80472d84c fixed tests 2018-04-27 11:02:36 -05:00
Guillaume Gomez
74412d2707 fix search load page failure 2018-04-27 17:14:29 +02:00
Christian Poveda
cadf251b78 removed dyn trait attribute from librustdoc 2018-04-27 10:05:58 -05:00
Christian Poveda
72a8eb92b0 fixed rustc version for dyn_trait 2018-04-27 10:05:57 -05:00
Christian Poveda
4bf35f93c9 updated stderr files and removed feature-gate test for dyn_trait 2018-04-27 10:05:51 -05:00
Christian Poveda
55a653dd35 removed linting for dyn_trait 2018-04-27 10:05:45 -05:00
Christian Poveda
0efb5677d7 dyn_trait feature-gate just for stage0 2018-04-27 10:04:58 -05:00
Christian Poveda
c86f1c8cc3 removed dyn_trait feature from tests 2018-04-27 10:04:35 -05:00
Christian Poveda
199ee32773 stop requiring the feature-gate to use dyn_trait 2018-04-27 10:04:02 -05:00
bors
71d3dac4a8 Auto merge of #50097 - glandium:box_free, r=nikomatsakis
Partial future-proofing for Box<T, A>

In some ways, this is similar to @eddyb's PR #47043 that went stale, but doesn't cover everything. Notably, this still leaves Box internalized as a pointer in places, so practically speaking, only ZSTs can be practically added to the Box type with the changes here (the compiler ICEs otherwise).

The Box type is not changed here, that's left for the future because I want to test that further first, but this puts things in place in a way that hopefully will make things easier.
2018-04-27 12:24:17 +00:00
Amanieu d'Antras
5f2c111165 Allow #[inline] on closures
Fixes #49632
2018-04-27 12:34:01 +02:00
John Kåre Alsaker
f678bf0aba Address comments 2018-04-27 12:09:59 +02:00
John Kåre Alsaker
9a59789663 Store query jobs and query results in separate maps to reduce memory usage 2018-04-27 12:09:59 +02:00
John Kåre Alsaker
987631d3ba Move query functions out from the define_maps! macro 2018-04-27 12:09:59 +02:00
John Kåre Alsaker
4036d2be8a Create a job immediately when looking in the query map and start it later 2018-04-27 12:09:58 +02:00
bors
ada45fd49a Auto merge of #50275 - kennytm:rollup, r=kennytm
Rollup of 7 pull requests

Successful merges:

 - #49707 (Add "the Rustc book")
 - #50222 (Bump bootstrap compiler to 2018-04-24)
 - #50227 (Fix ICE with erroneous `impl Trait` in a trait impl)
 - #50229 (Add setting to go to item if there is only one result)
 - #50231 (Add more doc aliases)
 - #50246 (Make dump_{alloc,allocs,local}() no-ops when tracing is disabled.)
 - #49894 (Rename InternedString to LocalInternedString and introduce a new thread-safe InternedString)

Failed merges:
2018-04-27 09:59:12 +00:00
kennytm
44b5359850
Rollup merge of #49894 - Zoxc:sync-internedstring, r=michaelwoerister
Rename InternedString to LocalInternedString and introduce a new thread-safe InternedString

This is an allocation-free alternative to https://github.com/rust-lang/rust/pull/46972.
2018-04-27 16:25:23 +08:00
kennytm
f1a4c10fb4
Rollup merge of #50246 - nnethercote:no-dump_allocs, r=Mark-Simulacrum
Make dump_{alloc,allocs,local}() no-ops when tracing is disabled.

Because they traverse data structures and build up strings, which is
wasted effort if those strings aren't printed.

The patch also removes some now-unnecessary log_enabled! tests at call
sites.

This is a big win for the Debug and Opt runs of coercions, tuple-stress, html5ever, and encoding.
```
coercions-opt
        avg: -7.8%      min: -14.8%     max: 0.1%
coercions
        avg: -8.0%      min: -12.8%     max: 0.1%
tuple-stress
        avg: -7.2%      min: -10.8%     max: -0.7%
tuple-stress-opt
        avg: -6.9%      min: -10.7%     max: 0.6%
html5ever
        avg: -4.6%      min: -7.3%      max: -0.3%
encoding
        avg: -2.4%      min: -4.5%      max: 0.1%
html5ever-opt
        avg: -2.7%      min: -4.2%      max: -0.2%
encoding-opt
        avg: -1.4%      min: -2.4%      max: 0.0%
```
2018-04-27 16:23:29 +08:00
kennytm
e9b67d221f
Rollup merge of #50231 - GuillaumeGomez:doc-aliases, r=QuietMisdreavus
Add more doc aliases

r? @QuietMisdreavus
2018-04-27 16:23:28 +08:00
kennytm
e6889933e3
Rollup merge of #50229 - GuillaumeGomez:search-one-result, r=QuietMisdreavus
Add setting to go to item if there is only one result

Fixes #50216.

r? @QuietMisdreavus
2018-04-27 16:23:26 +08:00
kennytm
3f4e5b28b9
Rollup merge of #50227 - sinkuu:ice_non_local_trait, r=estebank
Fix ICE with erroneous `impl Trait` in a trait impl

Fixes #49841.
2018-04-27 16:23:24 +08:00
kennytm
d1faefcbc3
Rollup merge of #50222 - michaelwoerister:bump-stage0-compiler-to-2018-04-24, r=alexcrichton
Bump bootstrap compiler to 2018-04-24

r? @alexcrichton
2018-04-27 16:23:23 +08:00
bors
9822b5709c Auto merge of #49891 - cuviper:compiletest-crash, r=alexcrichton
compiletest: detect non-ICE compiler panics

Fixes #49888, but will be blocked by revealing #49889.
2018-04-27 07:43:46 +00:00
kennytm
d403d82b0a
Rollup merge of #49707 - steveklabnik:rustc-book, r=QuietMisdreavus
Add "the Rustc book"

This PR introduces a new book into the documentation, "The rustc book". We already have books for Cargo, and for Rustdoc, rustc should have some too. This book is focused on *users* of rustc, and provides a nice place to write documentation for users.

I haven't put content here, but plan on scaffolding it out very soon, and wanted this PR open for a few discussions first. One of those is "what exactly should said TOC be?" I plan on having a proposed one up tomorrow, but figured I'd let people know to start thinking about it now.

The big one is that we also will want to put https://github.com/rust-lang-nursery/rustc-guide in-tree as well, and the naming is... tough. I'm proposing:

* doc.rust-lang.org/rustc is "The Rustc book", to mirror the other tools' books.
* doc.rust-lang.org/rustc-contribution is "The Rustc contribution guide", and contains that book

@nikomatsakis et al, any thoughts on this? I'm not attached to it in particular, but had to put something together to get this discussion going. I think mirroring the other tools is a good idea for this work, but am not sure where exactly that leaves yours.

Fixes https://github.com/rust-docs/team/issues/11
2018-04-27 14:16:42 +08:00
Scott McMurray
f0069b8486 Add a ui test for an incorrect Result success type in a #[test] 2018-04-26 21:33:05 -07:00
bors
8a09bc6a77 Auto merge of #48995 - aravind-pg:canonical-query, r=nikomatsakis
Create a canonical trait query for `evaluate_obligation`

This builds on the canonical query machinery introduced in #48411 to introduce a new canonical trait query for `evaluate_obligation` in the trait selector. Also ports most callers of the original `evaluate_obligation` to the new system (except in coherence, which requires support for intercrate mode). Closes #48537.

r? @nikomatsakis
2018-04-27 03:53:39 +00:00
Alex Crichton
3565556d8b Update parking_lot dependencies
This commit updates `parking_lot` to pull in Amanieu/parking_lot#70 and...

Closes #49438
2018-04-26 20:50:06 -07:00
John Kåre Alsaker
4d52751d12 Rename InternedString to LocalInternedString and introduce a new thread-safe InternedString 2018-04-27 03:35:32 +02:00
bors
e05b78daa6 Auto merge of #49420 - nox:enum-scalarpair, r=eddyb
Use ScalarPair for tagged enums
2018-04-27 01:30:10 +00:00
Aravind Gollakota
e423dcc713 Update a compile-fail test 2018-04-26 20:28:30 -05:00
Aravind Gollakota
d5b2e90744 Retry canonical trait query in standard mode if overflow occurs
This is slightly hacky and hopefully only a somewhat temporary solution.
2018-04-26 20:28:30 -05:00
Aravind Gollakota
5cb0372160 Remove the stored obligation in OverflowError to simplify things
We will shortly refactor things so that it is no longer needed
2018-04-26 20:28:30 -05:00
Aravind Gollakota
e5535fc7dd Introduce trait query mode and use it to set overflow error handling policy in traits::select 2018-04-26 20:28:30 -05:00
Aravind Gollakota
3dd26b8a3e Simplify trait selector's evaluation API slightly 2018-04-26 20:28:30 -05:00
Aravind Gollakota
bc16b8e92a Port existing callers of evaluate_obligation to the new canonical trait query
Except the one in coherence, which needs support for intercrate mode.
2018-04-26 20:28:30 -05:00
Aravind Gollakota
3ab3a9f509 Create a canonical trait query for evaluate_obligation 2018-04-26 20:28:29 -05:00
Aravind Gollakota
79f71f976a Refactor overflow handling in traits::select to propagate overflow instead of aborting eagerly
We store the obligation that caused the overflow as part of the OverflowError, and report it at the public API endpoints (rather than in the implementation internals).
2018-04-26 20:26:20 -05:00
Alex Crichton
20ad427af0 rustc: Emit uwtable for allocator shims
This commit emits the `uwtable` attribute to LLVM for platforms that require it
for the allocator shims that we generate to ensure that they can hopefully get
unwound past. This is a stab in the dark at helping
https://bugzilla.mozilla.org/show_bug.cgi?id=1456150 along.
2018-04-26 17:09:08 -07:00
bors
7d8f0e22f5 Auto merge of #50253 - nikomatsakis:regressions-2018-04-26, r=eddyb
drop elaboration should reveal all

This used to happen implicitly through the normalization function; but we now keep the param-env as is, which seems less surprising.

cc #49685

r? @eddyb
2018-04-26 23:11:39 +00:00
bobtwinkles
73e0c1e968 Fix review nits 2018-04-26 18:28:34 -04:00
Esteban Küber
d92d1935cb Don't ICE on tuple struct ctor with incorrect arg count 2018-04-26 14:19:21 -07:00
Anthony Ramine
90656441a9 Emit range metadata on calls returning scalars (fixes #50157) 2018-04-26 22:02:23 +02:00
bors
7f3444e1ba Auto merge of #49513 - nox:univariant-fieldless-enum-as-zst, r=eddyb
Treat repr(Rust) univariant fieldless enums as ZSTs

This makes all those enums be represented the same way:

```rust
enum A1 { B1 }
enum A2 { B2 = 0 }
enum A3 { B3, C3(!) }
```

Related to #15747.

Cc @rust-lang/wg-codegen @rust-lang/lang
2018-04-26 18:26:03 +00:00