Commit Graph

90904 Commits

Author SHA1 Message Date
Alex Crichton
72958acd57 std: Spin for a global malloc lock on wasm32
There's lots of comments in the code, but the main gist of this commit
is that the acquisition of the global malloc lock on the
`wasm32-unknown-unknown` target when threads are enabled will not spin
on contention rather than block.
2019-03-05 07:42:17 -08:00
Hadley Canine
c0cef3344f
Remove JSBackend from config.toml
JSBackend is implied when building the emscripten backend, and not available for the standard llvm backend.  This commit also puts the example config in sync with the defaults in src/bootstrap/native.rs
2019-03-05 14:52:38 +00:00
Simon Sapin
5d1022ad7b Rename the feature gate for alloc::prelude
… to separate it from that of the crate.

New tracking issue: https://github.com/rust-lang/rust/issues/58935
2019-03-05 14:44:45 +01:00
Dan Robertson
1243859d40
core: ensure VaList passes improper_ctypes lint
Ensure the core::ffi::VaList structure passes the improper_ctypes lint.
2019-03-05 13:43:48 +00:00
Saleem Jaffer
9902f8c3c2 fixes rust-lang#52482 2019-03-05 16:13:44 +05:30
Giles Cope
33a64699b1 Unrolled await macro.
Was then able to the minimise the reproduction a little further.
2019-03-05 09:06:24 +00:00
Simon Sapin
2b49ec0bb6 Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std
This was one of the unresolved questions of https://github.com/rust-lang/rfcs/pull/2480.
As the RFC says this is maybe not useful in the sense that we are unlikely
to ever have a second version, but making the crate a true subset
makes one less issue to think about if we stabilize it and later
want to merge standard library crates and have Cargo feature flags
to enable or disable parts of the `std` crate.

See also discussion in https://github.com/rust-lang/rust/pull/58175
2019-03-05 10:02:38 +01:00
bors
f22dca0a1b Auto merge of #58423 - nox:relax-bounds-buf-reader, r=dtolnay
Relax Read bounds on a bunch of BufReader<R> methods
2019-03-05 05:40:16 +00:00
Esteban Küber
2983d9c154 Elide invalid method receiver error when it contains TyErr
Fix #58712.
2019-03-04 21:30:07 -08:00
John Kåre Alsaker
cdbae16516 Use Ident for project 2019-03-05 06:06:20 +01:00
Taeguk Kwon
cbe33441e0 Add librustc, libsyntax to rust-src distribution. 2019-03-05 08:56:51 +09:00
Gabriela Alexandra Moldovan
cd9a0cf537 Make the lifetime parameters of tcx consistent. 2019-03-04 23:49:04 +00:00
John Kåre Alsaker
74b6419bb6 Update Cargo.lock 2019-03-05 00:36:25 +01:00
John Kåre Alsaker
10d2008c51 Add ignore and project attributes 2019-03-05 00:36:25 +01:00
John Kåre Alsaker
70156fbb75 Encode proc macro stability 2019-03-05 00:36:25 +01:00
John Kåre Alsaker
e501a87e89 Bootstrap changes 2019-03-05 00:36:24 +01:00
John Kåre Alsaker
c3c1c8d4e0 Allow linking to a proc macro on the target in metadata and still use a host proc macro to execute them 2019-03-05 00:36:23 +01:00
John Kåre Alsaker
97431a4090 Create a derive macro for HashStable 2019-03-05 00:36:20 +01:00
Josh Stone
538a0963ff Add as_slice() to slice::IterMut and vec::Drain
In bluss/indexmap#88, we found that there was no easy way to implement
`Debug` for our `IterMut` and `Drain` iterators. Those are built on
`slice::IterMut` and `vec::Drain`, which implement `Debug` themselves,
but have no other way to access their data. With a new `as_slice()`
method, we can read the data and customize its presentation.
2019-03-04 15:12:45 -08:00
Esteban Küber
e6387b6a75 Fix rebase and move suggestion to its own method 2019-03-04 13:39:52 -08:00
Josh Stone
842014d8fc Add an explicit test for issue #50582
This code no longer ICEs, and @yodaldevoid found that it was fixed by
commit fe5710a. While that added a similar test, we can explicitly test
this reproducer too.

Closes #50582.
2019-03-04 13:28:31 -08:00
Esteban Küber
f2718dc726 Add fixme 2019-03-04 13:17:54 -08:00
Esteban Küber
9e8a62b734 On return type impl Trait for block with no expr point at last semi 2019-03-04 13:17:54 -08:00
Giles Cope
6dd2a857aa Regression test added for an async ICE. 2019-03-04 18:53:12 +00:00
Mark Rousskov
9ed94e5e54 Fix release note problems noticed after merging. 2019-03-04 17:42:15 +01:00
Oliver Scherer
5c0615b89c Use early unwraps instead of bubbling up errors just to unwrap in the end 2019-03-04 17:13:50 +01:00
Oliver Scherer
60fde17a29 Use bit operations for setting large ranges of bits in a u64 2019-03-04 17:10:02 +01:00
Oliver Scherer
4ded592f60 Use a more general approach for setting large definedness ranges 2019-03-04 17:10:02 +01:00
Oliver Scherer
d32b7e5b13 Test the UndefMask type 2019-03-04 17:10:02 +01:00
Oliver Scherer
aa8c48a274 Don't try to copy relocations if there are none 2019-03-04 17:10:02 +01:00
Oliver Scherer
1e3d1b65c5 No magic numbers 2019-03-04 17:10:02 +01:00
Oliver Scherer
3f20a5dff7 Optimize copying large ranges of undefmask blocks 2019-03-04 17:10:02 +01:00
Edward Barnard
124ab2a4d8 Fix typo 2019-03-04 12:53:54 +00:00
Edward Barnard
0a991e424a Add test for the behaviour of fs::copy when to is a symlink 2019-03-04 12:35:46 +00:00
Edward Barnard
c82a42c155 Change std::fs::copy to use copyfile on MacOS and iOS 2019-03-04 12:33:15 +00:00
Felix S. Klock II
b129de47a0 Regression test for #58435. 2019-03-04 13:16:49 +01:00
Anthony Ramine
1fec8c2835 Make the Entry API of HashMap<K, V> Sync and Send (fixes #45219) 2019-03-04 10:20:40 +01:00
Yuki Okushi
939a263974 Update rand version 2019-03-04 16:20:46 +09:00
bors
a9da8fc9c2 Auto merge of #58380 - estebank:missing-match-pats, r=zackmdavis
Point at enum definition when match patterns are not exhaustive

```
error[E0004]: non-exhaustive patterns: type `X` is non-empty
 --> file.rs:9:11
  |
1 | / enum X {
2 | |     A,
  | |     - variant not covered
3 | |     B,
  | |     - variant not covered
4 | |     C,
  | |     - variant not covered
5 | | }
  | |_- `X` defined here
...
9 |       match x {
  |             ^
  |
  = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

error[E0004]: non-exhaustive patterns: `B` and `C` not covered
  --> file.rs:11:11
   |
1  | / enum X {
2  | |     A,
3  | |     B,
4  | |     C,
   | |     - not covered
5  | | }
   | |_- `X` defined here
...
11 |       match x {
   |             ^ patterns `C` not covered
```

When a match expression doesn't have patterns covering every variant,
point at the enum's definition span. On a best effort basis, point at the
variant(s) that are missing. This does not handle the case when the missing
pattern is due to a field's enum variants:

```
enum E1 {
    A,
    B,
    C,
}
enum E2 {
    A(E1),
    B,
}
fn foo() {
    match E2::A(E1::A) {
        E2::A(E1::B) => {}
        E2::B => {}
    }
    //~^ ERROR `E2::A(E1::A)` and `E2::A(E1::C)` not handled
}
```

Unify look between match with no arms and match with some missing patterns.

Fix #37518.
2019-03-04 04:46:38 +00:00
bors
9261088a73 Auto merge of #58807 - Xanewok:update-clippy, r=Xanewok
Update Clippy

Should fix the fallout caused by https://github.com/rust-lang/rust/pull/58321 (still testing it locally).

r? @oli-obk
2019-03-04 01:46:37 +00:00
Igor Matuszewski
594e2616db Update Clippy 2019-03-03 23:51:24 +01:00
bors
45d015c95a Auto merge of #58505 - schomatis:fix/nll/remove-live-var, r=matthewjasper
[NLL] Remove `LiveVar`

The `LiveVar` type (and related) made it harder to reason about the code. It seemed as an abstraction that didn't bring any useful concept to the reader (when transitioning from the RFC theory to the actual implementation code).

It achieved a compactness in the vectors storing the def/use/drop information that was related only to the `LocalUseMap`. This PR went in the other direction and favored time over memory (but this decision can be easily reverted to the other side without reintroducing `LiveVar`).

What this PR aims at is to clarify that there's no significant transformation between the MIR `Local` and the `LiveVar` (now refactored as `live_locals: Vec<Local>`): we're just filtering (not mapping) the entire group of `Local`s into a meaningful subset that we should perform the liveness analysis on.

As a side note, there is no guarantee that the liveness analysis is performed only on (what the code calls) "live" variables, if the NLL facts are requested it will be performed on *any* variable so there can't be any assumptions on that regard. (Still, this PR didn't change the general naming convention to reduce the number of changes here and streamline the review process).

**Acceptance criteria:** This PR attempts to do only a minor refactoring and not to change the logic so it can't have any performance impact, particularly, it can't lose any of the significant performance improvement achieved in the great work done in https://github.com/rust-lang/rust/pull/52115.

r? @nikomatsakis
2019-03-03 22:49:16 +00:00
Tim
60a649ef6e Add .nll.stderr output 2019-03-03 23:43:46 +01:00
Wim Looman
41e60d1562 Monomorphize generator field types for debuginfo 2019-03-04 11:23:38 +13:00
benaryorg
2293d2260a
race condition in thread local storage example
The example had a potential race condition that would still pass the test.
If the thread which was supposed to modify it's own thread local was slower than the instruction to
modify in the main thread, then the test would pass even in case of a failure.
This is would be minor if the child thread was waited for since it check using an `assert_eq` for
the same thing, but vice versa.
However, if the `assert_eq` failed this would trigger a panic, which is not at all caught by the
example since the thread is not waited on.

Signed-off-by: benaryorg <binary@benary.org>
2019-03-03 20:53:50 +01:00
bors
87a436377a Auto merge of #58425 - wesleywiser:more_profiler_changes, r=michaelwoerister
[self-profiler] Make the profiler faster/more efficient

Related to #58372

r? @michaelwoerister
2019-03-03 19:48:12 +00:00
bors
2cfd6444a7 Auto merge of #58673 - matthewjasper:typeck-ptr-coercions, r=pnkfelix
[NLL] Type check operations with pointer types

It seems these were forgotten about. Moving to `Rvalue::AddressOf` simplifies the coercions from references, but I want this to be fixed as soon as possible.

r? @pnkfelix
2019-03-03 16:46:12 +00:00
Wesley Wiser
f20ad70439 Use FxHashMap 2019-03-03 10:07:32 -05:00
Wesley Wiser
9d26789495 Reduce the size of events by using a u64 instead of Instant
Part of #58372
2019-03-03 10:07:32 -05:00
Wesley Wiser
fccc84199c Remove profiler output and replace with a raw event dump
Related to #58372
2019-03-03 10:07:32 -05:00