Commit Graph

86226 Commits

Author SHA1 Message Date
Nicholas Nethercote
818257e702 Use Mmap to open the rmeta file.
Because those files are quite large, contribute significantly to peak
memory usage, but only a small fraction of the data is ever read.
2018-11-14 05:55:10 +02:00
Nick Cameron
547ac5ef0a save-analysis: be even more aggressive about ignorning macro-generated defs 2018-11-14 16:52:08 +13:00
bors
126a0e2aad Auto merge of #52153 - csmoe:projeq_normal, r=scalexm
chalk lowering rule: ProjectionEq-Normalize

cc #49177
r? @scalexm
2018-11-14 02:46:24 +00:00
Corey Farwell
15e7df8b51
Remove unneeded newline. 2018-11-13 21:34:44 -05:00
Nicholas Nethercote
98dab3335f Wrap some query results in Lrc.
So that the frequent clones in `try_get` are cheaper.

Fixes #54274.
2018-11-14 12:31:27 +11:00
bors
f1d61837d1 Auto merge of #55912 - kennytm:rollup, r=kennytm
Rollup of 20 pull requests

Successful merges:

 - #55136 (Remove short doc where it starts with a codeblock)
 - #55711 (Format BtreeMap::range_mut example)
 - #55722 (impl_stable_hash_for: support enums and tuple structs with generic parameters)
 - #55754 (Avoid converting bytes to UTF-8 strings to print, just pass bytes to stdout/err)
 - #55804 (rustdoc: don't inline `pub use some_crate` unless directly asked to)
 - #55805 (Move `static_assert!` into librustc_data_structures)
 - #55837 (Make PhantomData #[structural_match])
 - #55840 (Fix TLS errors when downloading stage0)
 - #55843 (add FromIterator<A> to Box<[A]>)
 - #55858 (Small fixes on code blocks in rustdoc)
 - #55863 (Fix a typo in std::panic)
 - #55870 (Fix typos.)
 - #55874 (string: Add documentation for `From` impls)
 - #55879 (save-analysis: Don't panic for macro-generated use globs)
 - #55882 (Reference count `crate_inherent_impls`s return value.)
 - #55888 (miri: for uniformity, also move memory_deallocated to AllocationExtra)
 - #55889 (global allocators: add a few comments)
 - #55896 (Document optimizations enabled by FusedIterator)
 - #55905 (Change `Lit::short_name` to `Lit::literal_name`.)
 - #55908 (Fix their/there grammar nit)
2018-11-13 22:17:46 +00:00
Alex Crichton
0d990c7d54 Switch AppVeyor builds to the GCE cloud
[Recommended by AppVeyor][1] this isn't done by default for all builds
due to the high startup overhead (3-4 minutes for a VM), but that's
paltry compared to our overall build times so should be more than
applicable!

[1]: https://help.appveyor.com/discussions/questions/29832-did-recent-changes-apply-to-possibly-slow-down-builds#comment_46494058
2018-11-13 13:38:04 -08:00
Tobias Bieniek
17f08fecfd core/char: Speed up to_digit() for radix <= 10
### Before

```
# Run 1
test char::methods::bench_to_digit_radix_10                ... bench:      16,265 ns/iter (+/- 1,774)
test char::methods::bench_to_digit_radix_16                ... bench:      13,938 ns/iter (+/- 2,479)
test char::methods::bench_to_digit_radix_2                 ... bench:      13,090 ns/iter (+/- 524)
test char::methods::bench_to_digit_radix_36                ... bench:      14,236 ns/iter (+/- 1,949)

# Run 2
test char::methods::bench_to_digit_radix_10                ... bench:      16,176 ns/iter (+/- 1,589)
test char::methods::bench_to_digit_radix_16                ... bench:      13,896 ns/iter (+/- 3,140)
test char::methods::bench_to_digit_radix_2                 ... bench:      13,158 ns/iter (+/- 1,112)
test char::methods::bench_to_digit_radix_36                ... bench:      14,206 ns/iter (+/- 1,312)

# Run 3
test char::methods::bench_to_digit_radix_10                ... bench:      16,221 ns/iter (+/- 2,423)
test char::methods::bench_to_digit_radix_16                ... bench:      14,361 ns/iter (+/- 3,926)
test char::methods::bench_to_digit_radix_2                 ... bench:      13,097 ns/iter (+/- 671)
test char::methods::bench_to_digit_radix_36                ... bench:      14,388 ns/iter (+/- 1,068)
```

### After

```
# Run 1
test char::methods::bench_to_digit_radix_10      ... bench:      11,521 ns/iter (+/- 552)
test char::methods::bench_to_digit_radix_16      ... bench:      12,926 ns/iter (+/- 684)
test char::methods::bench_to_digit_radix_2       ... bench:      11,266 ns/iter (+/- 1,085)
test char::methods::bench_to_digit_radix_36      ... bench:      14,213 ns/iter (+/- 614)

# Run 2
test char::methods::bench_to_digit_radix_10      ... bench:      11,424 ns/iter (+/- 1,042)
test char::methods::bench_to_digit_radix_16      ... bench:      12,854 ns/iter (+/- 1,193)
test char::methods::bench_to_digit_radix_2       ... bench:      11,193 ns/iter (+/- 716)
test char::methods::bench_to_digit_radix_36      ... bench:      14,249 ns/iter (+/- 3,514)

# Run 3
test char::methods::bench_to_digit_radix_10      ... bench:      11,469 ns/iter (+/- 685)
test char::methods::bench_to_digit_radix_16      ... bench:      12,852 ns/iter (+/- 568)
test char::methods::bench_to_digit_radix_2       ... bench:      11,275 ns/iter (+/- 1,356)
test char::methods::bench_to_digit_radix_36      ... bench:      14,188 ns/iter (+/- 1,501)
```
2018-11-13 22:02:51 +01:00
Tobias Bieniek
04aade83f2 core/char: Replace condition + panic!() with assert!() 2018-11-13 22:02:51 +01:00
Tobias Bieniek
98f61a3195 core/benches: Add char::to_digit() benchmarks 2018-11-13 22:02:51 +01:00
Andy Russell
4e35cbb22e
fix various typos in doc comments 2018-11-13 14:45:31 -05:00
csmoe
e853d6c5b6 Implement ProjectionEq-Normalize 2018-11-13 20:33:21 +01:00
bors
9fefb67669 Auto merge of #55356 - Aaron1011:fix/rustdoc-negative-auto, r=nikomatsakis
Check for negative impls when finding auto traits

Fixes #55321

When AutoTraitFinder begins examining a type, it checks for an explicit
negative impl. However, it wasn't checking for negative impls found when
calling 'select' on predicates found from nested obligations.

This commit makes AutoTraitFinder check for negative impls whenever it
makes a call to 'select'. If a negative impl is found, it immediately
bails out.

Normal users of SelectioContext don't need to worry about this, since
they stop as soon as an Unimplemented error is encountered. However, we
add predicates to our ParamEnv when we encounter this error, so we need
to handle negative impls specially (so that we don't try adding them to
our ParamEnv).
2018-11-13 19:16:18 +00:00
ljedrz
cf4f5c3b34 hir: simplify a match expression 2018-11-13 17:35:56 +01:00
ljedrz
3d919297b9 hir: remove an unused type alias 2018-11-13 17:35:25 +01:00
ljedrz
5ea0e0d1aa hir: simplify fmt::Debug for hir::Path 2018-11-13 17:34:51 +01:00
ljedrz
58a2267c15 hir: remove an unused hir_vec macro pattern 2018-11-13 17:34:17 +01:00
cynecx
2f7b95d932 Change sidebar selector to fix compatibility with docs.rs 2018-11-13 17:23:30 +01:00
bors
5c9f7dcd83 Auto merge of #55649 - scalexm:chalk-bound-ty, r=nikomatsakis
Use bound types in `librustc_traits`

r? @nikomatsakis
see the tests which now move the higher-ranked binders to the left in implied bound rules!
2018-11-13 12:22:30 +00:00
scalexm
8d0b9697b5 Fix ui tests 2018-11-13 12:28:43 +01:00
scalexm
afa884c03a Instantiate all bound vars existentially 2018-11-13 12:28:43 +01:00
scalexm
79b6c41bc2 Use a dummy outlives requirement for where Type:, (see #53696)
A `WF(Type)` predicate was used previously, which did not play
well with implied bounds in chalk.
2018-11-13 12:28:43 +01:00
scalexm
156a932eef Reorder code in rustc::traits::structural_impls 2018-11-13 12:28:43 +01:00
scalexm
239df7be37 Bypass ppaux for Outlives predicates 2018-11-13 12:28:43 +01:00
scalexm
3510805f7e Provide program clauses for builtin types 2018-11-13 12:28:43 +01:00
scalexm
79ba84fa79 Adjust documentation 2018-11-13 12:28:43 +01:00
scalexm
eacebf24b0 Pretty print quantified goals and clauses 2018-11-13 12:28:43 +01:00
scalexm
64aac8d4c1 Replace type params with bound vars in rustc_traits::lowering 2018-11-13 12:28:43 +01:00
kennytm
7921572acf
Rollup merge of #55722 - RalfJung:impl-stable-hash, r=varkor
impl_stable_hash_for: support enums and tuple structs with generic parameters

Port a bunch of implementations over to the macro, now that that is possible.
2018-11-13 19:22:53 +08:00
kennytm
2173681647
Rollup merge of #55136 - GuillaumeGomez:short-doc, r=QuietMisdreavus
Remove short doc where it starts with a codeblock

Fixes #54975.
2018-11-13 19:21:09 +08:00
kennytm
8a13ae5fce
Rollup merge of #55908 - KWierso:patch-1, r=wesleywiser
Fix their/there grammar nit
2018-11-13 19:21:06 +08:00
kennytm
64ea02a9dd
Rollup merge of #55905 - nnethercote:short_name-to-literal_name, r=Mark-Simulacrum
Change `Lit::short_name` to `Lit::literal_name`.

This avoids a moderately hot allocation in `parse_lit_token`.

r? @Mark-Simulacrum
2018-11-13 19:21:01 +08:00
kennytm
4d764407e9
Rollup merge of #55896 - rust-lang:opt-fuse, r=shepmaster
Document optimizations enabled by FusedIterator

When reading this I wondered what “some significant optimizations” referred to. As far as I can tell from reading code, the specialization of `.fuse()` is the only case where `FusedIterator` has any impact at all. Is this accurate @Stebalien?
2018-11-13 19:20:58 +08:00
kennytm
99986a5a05
Rollup merge of #55889 - RalfJung:global-alloc, r=alexcrichton
global allocators: add a few comments

These comments answer some questions that came up when I tried to understand how the control flow works for the global allocator, `Global` and `System`.

r? @alexcrichton
2018-11-13 19:20:57 +08:00
kennytm
c246a29813
Rollup merge of #55888 - RalfJung:alloc-extra, r=oli-obk
miri: for uniformity, also move memory_deallocated to AllocationExtra

r? @oli-obk
2018-11-13 19:20:55 +08:00
kennytm
675c95c7b8
Rollup merge of #55882 - hugwijst:rc_return_crate_inherent_impls, r=Mark-Simulacrum
Reference count `crate_inherent_impls`s return value.

The repeated cloning of the result in `inherent_impls` queries has quite
an impact on crates with many inherent trait implementations.

For instance on https://github.com/jmesmon/stm32f429, `cargo check` went from 75 seconds to 38 seconds on my machine.
2018-11-13 19:20:53 +08:00
kennytm
a2774354ee
Rollup merge of #55879 - Xanewok:dont-panic-with-globs, r=nrc
save-analysis: Don't panic for macro-generated use globs

Follow-up to c2bb7cadf2 - as before, ignore the use globs in macro expansions.

Fixes https://github.com/rust-lang-nursery/rls/issues/1117.
Closes #55480.

r? @nrc
2018-11-13 19:20:51 +08:00
kennytm
5134d9cc18
Rollup merge of #55874 - denisvasilik:docs, r=alexcrichton
string: Add documentation for `From` impls

Hi this is part of #51430. I'm a first time contributor, so I started with a small task adding a bit of documentation for From impls.
2018-11-13 19:20:48 +08:00
kennytm
5ccc76fe5c
Rollup merge of #55870 - waywardmonkeys:typo-fixes, r=wesleywiser
Fix typos.
2018-11-13 19:20:44 +08:00
kennytm
910289c9da
Rollup merge of #55863 - dwijnand:patch-1, r=bluss
Fix a typo in std::panic
2018-11-13 19:20:40 +08:00
kennytm
828dd17a91
Rollup merge of #55858 - GuillaumeGomez:fixes-rustdoc-codeblocks, r=QuietMisdreavus
Small fixes on code blocks in rustdoc

It currently has a little margin issue with the `i` and there were js errors.

r? @QuietMisdreavus
2018-11-13 19:20:37 +08:00
kennytm
196db96d8b
Rollup merge of #55843 - Axary:master, r=sfackler
add FromIterator<A> to Box<[A]>
2018-11-13 19:20:35 +08:00
kennytm
5b572fb840
Rollup merge of #55840 - dlrobertson:fix_stage0_download, r=alexcrichton
Fix TLS errors when downloading stage0

While attempting to test #49878 on Windows I hit the following error when attempting to download stage0.

```
The request was aborted: Could not create SSL/TLS secure channel
```

Instead of using the shell, we can just use `urllib`, which seems to fix the issue.
2018-11-13 19:20:33 +08:00
kennytm
f73df10c39
Rollup merge of #55837 - Centril:spökdata-skall-vara-strukturellt-matchbar, r=eddyb
Make PhantomData #[structural_match]

fixes https://github.com/rust-lang/rust/issues/55028

This makes `PhantomData<T>` structurally matchable, irrespective of whether `T` is, per the discussion on this week's language team meeting (the general consensus was that this was a bug-fix).

All types containing `PhantomData<T>` and which used `#[derive(PartialEq, Eq)]` and were previously not `#[structural_match]` only because of `PhantomData<T>` will now be `#[structural_match]`.

r? @nikomatsakis
2018-11-13 19:20:30 +08:00
kennytm
98bc7d63fb
Rollup merge of #55805 - nnethercote:mv-static_assert, r=Mark-Simulacrum
Move `static_assert!` into librustc_data_structures
2018-11-13 19:20:28 +08:00
kennytm
d811f844a5
Rollup merge of #55804 - QuietMisdreavus:eager-crate-inline, r=pnkfelix
rustdoc: don't inline `pub use some_crate` unless directly asked to

cc https://github.com/rust-lang/rust/issues/52509 (fixes it? i'm not sure about my comment summoning the docs team)

When rustdoc encounters a `pub use` statement for an item from another crate, it will eagerly inline its contents into your crate. This somewhat clashes with the new paths behavior in Rust 2018, in which crates are implicitly linked and re-exported with `pub use` instead of `pub extern crate`. In rust 2015, `pub extern crate` would only create a single line for its re-export in the docs, so i'm making it do the same with `pub use some_crate;`.

The exact new behavior is like this: *If rustdoc sees a `pub use` statement, and the item being imported is the root of another crate, it will only inline it if `#[doc(inline)]` is provided.* I made it only avoid crate roots because otherwise it would stop inlining any module, which may or may not be what people want.
2018-11-13 19:20:25 +08:00
kennytm
a8bcf612d5
Rollup merge of #55754 - spastorino:fix-process-output-docs, r=alexcrichton
Avoid converting bytes to UTF-8 strings to print, just pass bytes to stdout/err

r? @nikomatsakis
2018-11-13 19:20:18 +08:00
kennytm
e9bd1f21ec
Rollup merge of #55711 - kngwyu:btreemap-rangemut-doc, r=Mark-Simulacrum
Format BtreeMap::range_mut example

Before:
![image](https://user-images.githubusercontent.com/16046705/48049184-36517780-e1e1-11e8-8da2-a3ae858d5a76.png)
After:
![image](https://user-images.githubusercontent.com/16046705/48049210-45382a00-e1e1-11e8-87b3-84ae60ef798e.png)
2018-11-13 19:20:13 +08:00
Olivier Goffart
562be7e1a1 Forward the ABI of the non-zero sized fields of an union if they have the same ABI
This is supposed to fix the performence regression of using MaybeUninit in
https://github.com/rust-lang/rust/pull/54668
2018-11-13 11:24:00 +01:00
ljedrz
0c08529934 A few tweaks to iterations/collecting 2018-11-13 08:42:48 +01:00