Commit Graph

69177 Commits

Author SHA1 Message Date
Alex Crichton
6511e46753 std: Optimize thread park/unpark implementation
This is an adaptation of alexcrichton/futures-rs#597 for the standard library.
The goal here is to avoid locking a mutex on the "fast path" for thread
park/unpark where you're waking up a thread that isn't sleeping or otherwise
trying to park a thread that's already been notified. Mutex performance varies
quite a bit across platforms so this should provide a nice consistent speed
boost for the fast path of these functions.
2017-10-25 08:35:51 -07:00
bors
2f5ae25a34 Auto merge of #45513 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 5 pull requests

- Successful merges: #45361, #45461, #45465, #45486, #45502
- Failed merges:
2017-10-25 15:34:03 +00:00
Michael Woerister
6faba5bf8d Fix librustc_driver unit test after API change. 2017-10-25 17:33:03 +02:00
Carol (Nichols || Goulding)
0e46cf4db4 Reword to avoid using either re-assignment or reassignment in errors 2017-10-25 11:29:52 -04:00
Alex Crichton
2f3c412c84 std: Disable usage of mmap allocator in libbacktrace
This is sort of a long overdue change from the investigation in #29293
and #37477. The released binaries of rustc don't have debug information and so
don't actively suffer this problem but this can hit local development of rustc
and also larger programs compiled against libstd generating backtraces.

The main purpose of the mmap allocator in libacktrace is to be usable from a
signal handler, but we don't do that, so the normal allocator using malloc/free
should work well for us.
2017-10-25 07:51:36 -07:00
Michael Woerister
89909c76a3 Fix 32 vs 64 bit platform instability in StableHasher. 2017-10-25 16:49:55 +02:00
Michael Woerister
87691846e3 incr.comp.: Add documentation for OnDiskCache. 2017-10-25 15:43:58 +02:00
Michael Woerister
f55425dfcd incr.comp.: Implement query diagnostic persistence. 2017-10-25 15:43:48 +02:00
Michael Woerister
9736474b6c Update ui tests for error message deduplication. 2017-10-25 15:02:41 +02:00
Michael Woerister
621d6f0f6d Update compile-fail tests for error message deduplication. 2017-10-25 15:02:26 +02:00
Michael Woerister
6fccd71f75 librustc_errors: Don't emit the same error message twice. 2017-10-25 15:01:06 +02:00
bors
f764eaf453 Auto merge of #45476 - Xanewok:fingerprint-disambiguator, r=michaelwoerister
Use 128 bit instead of Symbol for crate disambiguator

As discussed on gitter, this changes `crate_disambiguator` from Strings to what they are represented as, a 128 bit number.

There's also one bit I think also needs to change, but wasn't 100% sure how: [create_root_def](f338dba297/src/librustc/hir/map/definitions.rs (L468-L482)). Should I change `DefKey::root_parent_stable_hash` to accept `Fingerprint` as crate_disambiguator to quickly combine the hash of `crate_name` with the new 128 bit hash instead of a string for a disambiguator?

r? @michaelwoerister

EDIT: Are those 3 tests `mir-opt` failing, because the hash is different, because we calculate it a little bit differently (storing directly instead of hashing the hex-string representation)? Should it be updated like in #45319?
2017-10-25 12:38:10 +00:00
Michael Woerister
67f3dc3fee Rename some run-pass tests so they don't crash when executed from eCryptfs. 2017-10-25 13:15:04 +02:00
Oliver Schneider
1ee0ff3bfe
Add a regression test for the const eval type resolution 2017-10-25 10:17:20 +02:00
Oliver Schneider
490742e339
Resolve types properly in const eval 2017-10-25 10:17:20 +02:00
Guillaume Gomez
94c861865a Rollup merge of #45502 - GuillaumeGomez:show-src-on-mobile, r=QuietMisdreavus
Show src button and function version on mobile version

Fixes #45498.

<img width="1440" alt="screen shot 2017-10-24 at 22 36 09" src="https://user-images.githubusercontent.com/3050060/31966689-c0070404-b90b-11e7-8810-810fa0491eda.png">

r? @rust-lang/docs
2017-10-25 09:48:12 +02:00
Guillaume Gomez
a95d97a46b Rollup merge of #45486 - oli-obk:patch-9, r=kennytm
Update docs for Diagnostic::span_suggestion(s)
2017-10-25 09:48:11 +02:00
Guillaume Gomez
e09585c7c2 Rollup merge of #45465 - glaubitz:sparc64, r=alexcrichton
bootstrap: Add openssl configuration for sparc64-unknown-linux-gnu

Hi!

This adds the target missing mapping for sparc64-unknown-linux-gnu.

See: https://github.com/rust-lang/rust/issues/45456

Thanks
2017-10-25 09:48:10 +02:00
Guillaume Gomez
cb1e4142b4 Rollup merge of #45461 - wesleywiser:intrinsics_docs, r=dtolnay
Two small enhancements to intrinsics docs
2017-10-25 09:48:09 +02:00
Guillaume Gomez
5a7de598fa Rollup merge of #45361 - GuillaumeGomez:fs-docs, r=QuietMisdreavus
Add missing code examples

r? @rust-lang/docs
2017-10-25 09:48:08 +02:00
Oliver Schneider
014100df49
Compiletest should parse suggestions from the spans 2017-10-25 08:33:02 +02:00
bors
b2478052f8 Auto merge of #45473 - SimonSapin:variance-red-green, r=nikomatsakis
Remove dependency tracking for variance computation

This custom tracking is now replaced by the red/green algorithm.

Fix https://github.com/rust-lang/rust/issues/45471
2017-10-25 05:02:32 +00:00
bors
6e61bbabe4 Auto merge of #45455 - kennytm:print-extern-impl-for-e0119, r=nikomatsakis
Improve diagnostic of E0119 with extern crate, try to print the conflicting impl.

Closes #27403.
Closes #23563.

Should improve #23980.

The diagnostic now looks like:

```
error[E0119]: conflicting implementations of trait `std::convert::Into<_>` for type `GenX<_>`:
  --> $DIR/issue-27403.rs:15:1
   |
15 | / impl<S> Into<S> for GenX<S> {
16 | |     fn into(self) -> S {
17 | |         self.inner
18 | |     }
19 | | }
   | |_^
   |
   = note: conflicting implementation in crate `core`:
           - impl<T, U> std::convert::Into<U> for T
             where U: std::convert::From<T>;

error: aborting due to previous error
```
2017-10-25 02:24:03 +00:00
Dustin Speckhals
aba409c1a2 Update RLS with skip of failing test 2017-10-24 21:29:26 -04:00
Dustin Speckhals
bca47e42b2 Merge branch 'master' into update-rls-data-for-save-analysis 2017-10-24 19:37:15 -04:00
bors
aa40292e78 Auto merge of #44603 - SimonSapin:stylo, r=alexcrichton
Add Stylo and WebRender to src/tools/cargotest

This is a subset of Servo that takes relatively less time to compile and does not use unstable Rust features.
2017-10-24 23:30:15 +00:00
bgermann
7bab5dabdd Disable jemalloc for sparcv9-sun-solaris
Similar to #36994, rust programs segfault on SPARC64 Solaris machines.
2017-10-25 00:52:56 +02:00
bors
c2799fc9a5 Auto merge of #45446 - leodasvacas:remove-libcollections, r=alexcrichton
Remove deprecated `collections` crate.

The real `collections` was merged with `alloc`, this facade was introduced [in this PR](https://github.com/rust-lang/rust/pull/42720) to give `#[no_std]` users time to adapt. This was done at least two cycles ago, now we can consider removing it for good.
2017-10-24 20:46:17 +00:00
Thomas Karpiniec
ae6a9e6fd2 Update tests for less noisy error messages 2017-10-25 07:39:15 +11:00
Guillaume Gomez
deef11dd26 Show src button and function version on mobile version 2017-10-24 22:34:59 +02:00
Guillaume Gomez
e42da901a8 Fix doc build on other architectures than linux 2017-10-24 21:58:53 +02:00
Simon Sapin
daf84db4d2 Add WebRender to cargotest 2017-10-24 21:41:33 +02:00
Simon Sapin
9d2e83e759 Add Stylo to cargotest 2017-10-24 21:41:33 +02:00
Guillaume Gomez
9ce41f2544 Fix the sidebar height 2017-10-24 21:16:43 +02:00
Guillaume Gomez
b46c014cd3 Set rustfmt broken while waiting for the update of their side 2017-10-24 20:44:02 +02:00
kennytm
3b815730a7
rustbuild: Fix no output generated error for next bootstrap cargo.
Due to rust-lang/cargo#4570, a `*.dll.lib` file is uplifted when building
dynamic libraries on Windows. The current bootstrap code does not
understand files with multiple extensions, and will instead assume
`xxxx.dll` is the file name. This caused a `no output generated` error
because it tries to search for `xxxx.dll-hash.lib` inside the `deps/`
folder, while it should check for `xxxx-hash.dll.lib` instead.

This PR is blocking #45285 (Bump to 1.23 and update bootstrap).
2017-10-25 00:32:28 +08:00
Igor Matuszewski
7fa64bcef3 Introduce CrateDisambiguator newtype and fix tests 2017-10-24 17:49:58 +02:00
bors
61af75437d Auto merge of #45350 - cjkenn:cjkenn/used-trait-imports, r=nikomatsakis
Put used trait imports field into a distinct query

Implementation for #45214

r+ @nikomatsakis
2017-10-24 15:18:08 +00:00
Oliver Schneider
7bb05dbdef
Reduce the repetition in json error output 2017-10-24 16:41:16 +02:00
Oliver Schneider
cf8600d1bb
Add a test reproducing the quadratic json explosion 2017-10-24 16:22:35 +02:00
Thomas Karpiniec
779886f182 Improve recovery after unexpected tokens parsing sequence 2017-10-25 00:04:01 +11:00
bors
fbc3642ef1 Auto merge of #45401 - zackmdavis:crate_shorthand_visibility_modifier, r=nikomatsakis
`crate` shorthand visibility modifier

cc #45388.

r? @nikomatsakis
2017-10-24 12:24:16 +00:00
Michael Woerister
686d2a7f14 incr.comp.: Factor some persistence functionality out of crate metadata code. 2017-10-24 14:01:44 +02:00
Oliver Schneider
1ce1d99b25 Update docs for Diagnostic::span_suggestion(s) 2017-10-24 13:08:30 +02:00
John Paul Adrian Glaubitz
929a8bc13f bootstrap: Add openssl configuration for sparc64-unknown-linux-gnu 2017-10-24 08:53:22 +02:00
bors
a789fa0440 Auto merge of #44984 - Maaarcocr:master, r=nikomatsakis
Create NormalizeTy query

As part of the effort to solve #44891,  I've created the normalize_ty query.

As outlined in the issue this meant:

- renamed `normalize_associated_type()` to `normalize_associated_type_in()`
- created the `normalize_ty` query
- substituted the use of memoize with the query

This PR is not ready. While running tests, one of the incremental ones failed. [This](https://pastebin.com/vGhH6bv6) is the error I got.
2017-10-24 03:55:22 +00:00
bors
336624735c Auto merge of #44766 - sunjay:lift_generics, r=nikomatsakis
Move Generics from MethodSig to TraitItem and ImplItem

As part of `rust-impl-period/WG-compiler-traits`, we want to "lift" `Generics` from `MethodSig` into `TraitItem` and `ImplItem`. This is in preparation for adding associated type generics. (https://github.com/rust-lang/rust/issues/44265#issuecomment-331172238)

Currently this change is only made in the AST. In the future, it may also impact the HIR. (Still discussing)

To understand this PR, it's probably best to start from the changes to `ast.rs` and then work your way to the other files to understand the far reaching effects of this change.

r? @nikomatsakis
2017-10-24 01:20:09 +00:00
whitequark
8431811728 Bring back slice::ref_slice as slice::from_ref.
These functions were deprecated and removed in 1.5, but such simple
functionality shouldn't require using unsafe code, and it isn't
cluttering libstd too much.
2017-10-23 22:53:31 +00:00
Niko Matsakis
4b0f004e3d update inherent_impls tests
Now that we are visiting things in a different order during lowering,
adding parameters winds up affecting the HirIds assigned to thinks in
the method body, whereas it didn't before. We could fix this by
reordering the order in which we visit `generics` during lowering, but
this feels very fragile. Seems better to just let typeck tables be
dirty here.
2017-10-23 16:18:00 -04:00
Simon Sapin
94edd8fa48 Remove dependency tracking for variance computation
This custom tracking is now replaced by the red/green algorithm.

Fix https://github.com/rust-lang/rust/issues/45471
2017-10-23 18:48:05 +02:00