Commit Graph

69066 Commits

Author SHA1 Message Date
Alex Crichton
55c01736cb std: Update randomness implementation on Windows
This commit updates the OS random number generator on Windows to match the
upstream implementation in the `rand` crate. First proposed in
rust-lang-nursery/rand#111 this implementation uses a "private" API of
`RtlGenRandom`. Despite the [documentation][dox] indicating this is a private
function its widespread use in Chromium and Firefox as well as [comments] from
Microsoft internally indicates that it's highly unlikely to break.

Another motivation for switching this is to also attempt to make progress
on #44911. It may be the case that this function succeeds while the previous
implementation may fail in "weird" scenarios.

[dox]: https://msdn.microsoft.com/en-us/library/windows/desktop/aa387694(v=vs.85).aspx
[comments]: https://github.com/rust-lang-nursery/rand/issues/111#issuecomment-316140155
2017-10-18 11:48:20 -07:00
bors
b7960878ba Auto merge of #45368 - kennytm:rollup, r=kennytm
Rollup of 10 pull requests

- Successful merges: #44138, #45082, #45098, #45181, #45217, #45281, #45325, #45326, #45340, #45354
- Failed merges:
2017-10-18 18:07:22 +00:00
kennytm
6b505d6a3f Rollup merge of #45354 - cuviper:unit_doc, r=QuietMisdreavus
rustdoc: add a primitive page for "unit"

In `src/libstd/primitive_docs.rs`, a `#[doc(primitive = "unit")]`
section has sat long neglected.  This patch teaches rustdoc to recognize
"unit", and steals its trait implementations away from the tuple page.
2017-10-19 01:59:54 +08:00
kennytm
c6892f470e Rollup merge of #45340 - stjepang:localkey-state-doc-skip-uninitialized, r=alexcrichton
Docs: a LocalKey might start in the Valid state

Add a comment to the docs for `LocalKey::state` explaining that some keys might skip the `Uninitialized` state and start in the `Valid` state.

cc #27716

r? @alexcrichton
2017-10-19 01:59:53 +08:00
kennytm
c77068a94b Rollup merge of #45326 - cuviper:min-llvm-3.9, r=alexcrichton
Bump the minimum LLVM to 3.9

Old LLVM bugs are reportedly cropping up harder, but 3.9 seems to be OK.

Fixes #45277.
2017-10-19 01:59:52 +08:00
kennytm
0d4dbbab46 Rollup merge of #45325 - spastorino:first_statement_index_with_macro, r=nikomatsakis
Generate FirstStatementIndex using newtype_index macro
2017-10-19 01:59:51 +08:00
kennytm
4913b92ff5 Rollup merge of #45281 - GuillaumeGomez:tab-selection, r=QuietMisdreavus
Save selected search tab

Fixes #45278.

r? @rust-lang/docs
2017-10-19 01:59:50 +08:00
kennytm
0350c2f783 Rollup merge of #45217 - SimonSapin:alloc-doc, r=steveklabnik
Fix out of date unstable book entries for `alloc_*` features.

The `alloc_jemalloc` crate does not provide a type to use with `#[global_allocator]`, and (according to Alex) `extern crate alloc_jemalloc;` alone became a no-op when `#[global_allocator]` was introduced.
2017-10-19 01:59:49 +08:00
kennytm
61c58c1584 Rollup merge of #45181 - Havvy:doc-unstable-lang-items, r=frewsxcv
List of all lang items in unstable book.

I don't know how to link to the source code correctly, so I just put the information aside the lang item name.
2017-10-19 01:59:48 +08:00
kennytm
578016b8b5 Rollup merge of #45098 - sunjay:breakingrustfmtrls, r=alexcrichton
Documenting the process for when rustfmt/rls break

**DO NOT MERGE YET**

I'm documenting what to do when rustfmt or rls break because of your changes. I'm currently going through this and will keep adding more as I figure out what all the steps are. This first commit is based on @alexcrichton's [comment on my original PR](https://github.com/rust-lang/rust/pull/44766#issuecomment-332653525).

[Rendered](https://github.com/sunjay/rust/blob/breakingrustfmtrls/CONTRIBUTING.md#breaking-tools-built-with-the-compiler)

Reviews are welcome, but as I mentioned, I will be revising this as I go.
2017-10-19 01:59:47 +08:00
kennytm
9dfb210761 Rollup merge of #45082 - jacwah:explain-E0382, r=steveklabnik
Mention Clone and refs in --explain E0382

I followed the discussion in #42446 and came up with these additions.

- Mention references before going into traits. They're probably more likely solutions.
- Mention `Clone` before `Copy`. Cloning has wider applicability and `#derive[Copy, Clone]` makes more sense after learning about `Clone`.

The language is not great, any suggestions there would be appreciated 
2017-10-19 01:59:46 +08:00
kennytm
ebdfe338e5 Rollup merge of #44138 - steveklabnik:rustdoc-deprecations, r=QuietMisdreavus
Deprecate several flags in rustdoc

Part of #44136

cc @rust-lang/dev-tools @rust-lang/docs

This is a very basic PR to start deprecating some flags; `rustdoc` doesn't really have fancy output options like `rustc` does, so I went with `eprintln!`. Happy to change it if people feel that's not appropriate.

Also, I have no idea if we can or should write tests here, so I didn't try. If someone feels strongly about it, then let's do it, but given that the only outcome here is a side effect...
2017-10-19 01:59:44 +08:00
Niko Matsakis
b5e2451f62 make erase_regions_ty query anonymous 2017-10-18 11:21:45 -04:00
Josh Stone
6309a475f9 Remove two obsolete min-llvm-version tests 2017-10-18 07:54:35 -07:00
Alex Crichton
3541ffb668 rustc: Add _imp_ symbols later in compilation
On MSVC targets rustc will add symbols prefixed with `_imp_` to LLVM modules to
"emulate" dllexported statics as that workaround is still in place after #27438
hasn't been solved otherwise. These statics, however, were getting gc'd by
ThinLTO accidentally which later would cause linking failures.

This commit updates the location we add such symbols to happen just before
codegen to ensure that (a) they're not eliminated by the optimizer and (b) the
optimizer doesn't even worry about them.

Closes #45347
2017-10-18 07:01:29 -07:00
bors
fc208bb62c Auto merge of #44573 - dotdash:dbg_bloat, r=arielb1
Avoid unnecessary allocas for indirect function arguments

The extra alloca was only necessary because it made LLVM implicitly
handle the necessary deref to get to the actual value. The same happens
for indirect arguments that have the byval attribute. But the Rust ABI
does not use the byval attribute and so we need to manually add the
deref operation to the debuginfo.
2017-10-18 13:36:17 +00:00
Ariel Ben-Yehuda
0caba178df run EndRegion when unwinding otherwise-empty scopes
Improves #44832

borrowck-overloaded-index-move-index.rs - fixed
borrowck-multiple-captures.rs - still ICE
borrowck-issue-2657-1.rs - fixed
borrowck-loan-blocks-move.rs - fixed
borrowck-move-from-subpath-of-borrowed-path.rs - fixed
borrowck-mut-borrow-linear-errors.rs - still ICE
borrowck-no-cycle-in-exchange-heap.rs - fixed
borrowck-unary-move.rs - fixed
borrowck-loan-blocks-move-cc.rs - fixed
borrowck-vec-pattern-element-loan.rs - still broken
2017-10-18 14:11:06 +03:00
Björn Steinbrink
6bfecd41cc Avoid unnecessary allocas for indirect function arguments
The extra alloca was only necessary because it made LLVM implicitly
handle the necessary deref to get to the actual value. The same happens
for indirect arguments that have the byval attribute. But the Rust ABI
does not use the byval attribute and so we need to manually add the
deref operation to the debuginfo.
2017-10-18 12:58:15 +02:00
bors
7a4f39453c Auto merge of #44501 - nikomatsakis:issue-44137-non-query-data-in-tcx, r=eddyb
remove or encapsulate the remaining non-query data in tcx

I wound up removing the existing cache around inhabitedness since it didn't seem to be adding much value. I reworked const rvalue promotion, but not that much (i.e., I did not split the computation into bits, as @eddyb had tossed out as a suggestion). But it's now demand driven, at least.

cc @michaelwoerister -- see the `forbid_reads` change in last commit

r? @eddyb -- since the trickiest of this PR is the work on const rvalue promotion

cc #44137
2017-10-18 10:44:08 +00:00
Josh Stone
9fda05c0bc rustdoc: add a primitive page for "unit"
In `src/libstd/primitive_docs.rs`, a `#[doc(primitive = "unit")]`
section has sat long neglected.  This patch teaches rustdoc to recognize
"unit", and steals its trait implementations away from the tuple page.
2017-10-17 23:03:50 -07:00
Christian Poveda
2a889eb945 added non trivial examples of closures for str::find 2017-10-17 23:51:27 -05:00
Sunjay Varma
790604adad Updating the instructions for when a tool breaks to use the new toolstate feature 2017-10-17 23:05:45 -04:00
Sunjay Varma
3f90c3a2cf Added a section about updating submodules
The process for updating rustfmt is quite involved because of the way everything is configured. This section covers the steps for updating rustfmt and rationale behind them.
2017-10-17 23:05:45 -04:00
Sunjay Varma
bd4907d534 Documenting the process for when rustfmt/rls breakk because of your changes 2017-10-17 23:05:45 -04:00
Sunjay Varma
60bff8ce93 Marking the tools as broken 2017-10-17 22:15:34 -04:00
Sunjay Varma
693687187e Revert "Updated to latest rustfmt-nightly"
This reverts commit a49157dc30bf7a163200b10d63a71b005a1376e3.
2017-10-17 22:14:14 -04:00
Sunjay Varma
14c426da99 Removed Generics from FnKind::ItemFn in libsyntax 2017-10-17 22:14:14 -04:00
Sunjay Varma
86ae34900f Updated to latest rustfmt-nightly 2017-10-17 22:14:14 -04:00
Sunjay Varma
b43db76d36 Fixing rustdoc 2017-10-17 22:14:14 -04:00
Sunjay Varma
2095ac1e27 Fixed tidy errors 2017-10-17 22:14:14 -04:00
Sunjay Varma
bb30144605 Lifted generics into TraitItem and ImplItem from MethodSig -- HIR now matches AST 2017-10-17 22:14:14 -04:00
Sunjay Varma
892e4689ef Removed redundant generics visits 2017-10-17 22:14:14 -04:00
Sunjay Varma
e03447dae3 Fixed tidy errors 2017-10-17 22:14:14 -04:00
Sunjay Varma
f61394f0bd Lifting Generics from MethodSig to TraitItem and ImplItem since we want to support generics in each variant of TraitItem and ImplItem 2017-10-17 22:14:14 -04:00
Alex Crichton
d9ecdfe3a7 test: Update Emscripten failures/passing
All tests should now have annotation for *why* they're ignored on emscripten. A
few tests no longer need such an annotation as well!

Closes #41299
2017-10-17 18:46:38 -07:00
Christian Poveda
da7aab6e51 added examples of closures 2017-10-17 20:11:03 -05:00
Bryan Tan
3566832ef3 Add child process IO handling docs 2017-10-17 17:49:02 -07:00
steveklabnik
045ce183cc modify tests to use new flag 2017-10-17 15:38:52 -04:00
Ariel Ben-Yehuda
a6ca84a383 look past the next drop for the drop panic target
The previous code would leak data on a drop panic if the immediate next
drop was a StorageDead that was followed by another drop.
2017-10-17 21:37:18 +03:00
Niko Matsakis
7715f97279 break clippy 2017-10-17 11:24:52 -04:00
Niko Matsakis
0e67d17358 make erase_regions use a query instead of an ad-hoc cache 2017-10-17 11:24:46 -04:00
Santiago Pastorino
b8f981a149 Generate FirstStatementIndex using newtype_index macro 2017-10-17 12:06:20 -03:00
bors
f6d7514545 Auto merge of #45344 - kennytm:rollup, r=kennytm
Rollup of 10 pull requests

- Successful merges: #45097, #45151, #45307, #45308, #45310, #45315, #45321, #45329, #45338, #45339
- Failed merges:
2017-10-17 14:57:33 +00:00
steveklabnik
aad8787586 Create a new flag, --document-private-items
Fixes #44136
2017-10-17 10:54:27 -04:00
steveklabnik
4adf6aed69 Deprecate several flags in rustdoc
Part of #44136

Upgrades cargo due to https://github.com/rust-lang/cargo/pull/4451
2017-10-17 10:54:27 -04:00
bgermann
0597bdabff Remove tabs 2017-10-17 16:39:15 +02:00
Havvy
12873006f6 List of all lang items in unstable book. 2017-10-17 07:22:08 -07:00
kennytm
7f72b31165 Rollup merge of #45339 - xfix:patch-4, r=steveklabnik
Update array documentation for Clone trait changes

Just a note, for this to work, `T` doesn't have to `Copy`, `Clone` is sufficient. For instance, the following works.

```rust
fn x(a: &[String; 100]) -> [String; 100] {
    a.clone()
}
```
2017-10-17 22:21:05 +08:00
kennytm
e72c2a8299 Rollup merge of #45338 - ishitatsuyuki:boot-jemalloc, r=aidanhs
bootstrap: Avoid fetching jemalloc if it's disabled

Fix #45300

More conditions, more madness :) Tested locally.
2017-10-17 22:21:04 +08:00
kennytm
78080f11ad Rollup merge of #45329 - rust-lang:duplicate-word, r=QuietMisdreavus
Remove duplicated word

r? @rust-lang/docs
2017-10-17 22:21:03 +08:00