Commit graph

68828 commits

Author SHA1 Message Date
bjorn3
83c08d2174 Remove *MetricFn 2017-12-10 14:30:08 +01:00
bors
7f06055d60 Auto merge of #45381 - bjorn3:move_collector_out_of_trans, r=nikomatsakis
Move collector to rustc_trans_utils
2017-10-21 07:04:34 +00:00
bors
cc03782b93 Auto merge of #45370 - alexcrichton:update-windows-rand, r=sfackler
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-21 04:33:32 +00:00
bors
6a136f6783 Auto merge of #45364 - nikomatsakis:issue-44137-anon, r=michaelwoerister
make `erase_regions_ty` query anonymous

r? @michaelwoerister
2017-10-21 01:59:43 +00:00
bors
6511b4f7ee Auto merge of #45348 - alexcrichton:thinlto-timp, r=michaelwoerister
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-20 23:08:17 +00:00
bors
b633341c49 Auto merge of #44792 - Mark-Simulacrum:correct-deps, r=alexcrichton
Make sure to clear out the stageN-{rustc,std,tools} directories.

We copy built tool binaries into a dedicated directory to avoid deleting them,
stageN-tools-bin.  These aren't ever cleared out by code, since there should be
no reason to do so, and we'll simply overwrite them as necessary.

When clearing out the stageN-{std,rustc,tools} directories, make sure to delete
both Cargo directories -- per-target and build scripts. This ensures that
changing libstd doesn't cause problems due to build scripts not being rebuilt,
even though they should be.

Fixes https://github.com/rust-lang/rust/issues/44739.
2017-10-20 17:36:40 +00:00
bors
87a8e8e073 Auto merge of #45359 - arielb1:escaping-borrow, r=eddyb
Fix a few bugs in drop generation

This fixes a few bugs in drop generation, one of which causes spurious MIR borrowck errors.

Fixes #44832.

r? @eddyb
2017-10-20 14:33:43 +00:00
bors
95272a07f1 Auto merge of #45324 - GuillaumeGomez:switch-default-markdown-renderer, r=steveklabnik
Print rustdoc rendering warnings all the time

r? @rust-lang/dev-tools
2017-10-20 10:31:20 +00:00
bors
c0956ff265 Auto merge of #45319 - michaelwoerister:use-128bit-siphash, r=nikomatsakis
incr.comp.: Use 128bit SipHash for fingerprinting

This PR switches incr. comp. result fingerprinting from 128 bit BLAKE2 to 128 bit SipHash. When we started using BLAKE2 for fingerprinting, the 128 bit version of SipHash was still experimental. Now that it isn't anymore we should be able to get a nice performance boost without significantly increasing collision probability.

~~I'm going to start a try-build for this, so we can gauge the performance impact before merging (hence the `WIP` in the title).~~

EDIT: Performance improvements look as expected. Tests seem to be passing.

Fixes #41215.
2017-10-20 07:50:18 +00:00
bors
c0e0a38101 Auto merge of #45316 - goffrie:exitable-breakable-block, r=nikomatsakis
Mark block exits as reachable if the block can break.

This only happens when desugaring `catch` expressions for now, but regular blocks (in HIR) can be broken from - respect that when doing reachability analysis.

Fixes #45124.
2017-10-20 05:24:04 +00:00
bors
354eb160e0 Auto merge of #45312 - theotherjimmy:refactor-ensure, r=michaelwoerister
Refactor `ensure` and `try_get_with`

There was a bit of code shared between `try_get_with` and `ensure`, after I
added `ensure`. I refactored that shared code into a query-agnostic method
called `read_node_index`.

The new method `read_node_index` will attempt to find the node
index (`DepNodeIndex`) of a query. When `read_node_index` finds the
`DepNodeIndex`, it marks the current query as a reader of the node it's
requesting the index of.

This is used by `try_get_with` and `ensure` as it elides the unimportant (to
them) details of if the query is invalidated by previous changed computation (Red)
or new and if they had to mark the query green. For both `try_get_with` and
`ensure`, they just need to know if they can lookup the results or have to
reevaluate.

@nikomatsakis this is the [refactor we discussed](https://github.com/rust-lang/rust/pull/45228#discussion_r144577392) in the comment thread of #45228
2017-10-20 02:27:16 +00:00
bors
a651106ad0 Auto merge of #45288 - GuillaumeGomez:tab-key-binding, r=QuietMisdreavus
Save the highlighted item when switching tab

To be merged after #45281.

r? @rust-lang/docs
2017-10-19 23:55:20 +00:00
Mark Simulacrum
686c1015cf Make tools which may not build return Option.
This makes it mandatory for other steps to have to handle the potential
failure instead of failing in an odd way later down the road.
2017-10-19 17:30:37 -06:00
bors
4750c1ec04 Auto merge of #45080 - clippered:issue-44986/fix-windows-ui-path, r=estebank
Issue 44986/fix windows ui path

#44968
2017-10-19 21:14:32 +00:00
bors
439f7521b8 Auto merge of #45386 - kennytm:rollup, r=kennytm
Rollup of 8 pull requests

- Successful merges: #45343, #45349, #45352, #45374, #45375, #45376, #45377, #45382
- Failed merges:
2017-10-19 18:22:15 +00:00
kennytm
437186217b
Rollup merge of #45382 - Keruspe:master, r=Mark-Simulacrum
rustbuild: fix dist in debug mode

In debug mode, the artifacts are placed in "debug", so don't hardcode "release" and use our helper to get the right directory name
2017-10-20 00:01:57 +08:00
kennytm
dd41422b66
Rollup merge of #45377 - topecongiro:fix-typos/librustc-ty-README, r=kennytm
Fix typos in librustc/ty/README.md
2017-10-20 00:01:56 +08:00
kennytm
3477715582
Rollup merge of #45376 - topecongiro:fix-typos-in-readme, r=Mark-Simulacrum
Fix typos in src/librustc/README.md
2017-10-20 00:01:55 +08:00
kennytm
44e882cf92
Rollup merge of #45375 - topecongiro:enable-tilde, r=Mark-Simulacrum
Allow passing a path with tilde to the configure script

Currently `./configure --local-rust-root=~/.cargo --enable-local-rebuild` fails with
 ```
Exception: no cargo executable found at `~/.cargo//bin/cargo`
```
2017-10-20 00:01:54 +08:00
kennytm
3de1f8ba53
Rollup merge of #45374 - topecongiro:remove-enable-rustbuild-config-option, r=Mark-Simulacrum
Remove --enable-rustbuild config option from an example

`--enable-rustbuild` is no longer recognized by the configure script. Also I think we should use `./configure` and `./x.py` instead of `configure` and `../x.py`.
2017-10-20 00:01:53 +08:00
kennytm
342e01b742
Rollup merge of #45352 - alexcrichton:emscripten-tests, r=nikomatsakis
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-20 00:01:52 +08:00
kennytm
207dab5773
Rollup merge of #45349 - christianpoveda:closures_str_find, r=steveklabnik
added examples of closures for str::find

This is an attempt to fix https://github.com/rust-lang/rust/issues/45327

r? @steveklabnik
2017-10-20 00:01:51 +08:00
kennytm
7da795ba10
Rollup merge of #45343 - bgermann:master, r=alexcrichton
Make Solaris builder compatible with Solaris 10 retry

Unfortunately, #45255 does not quite cut it,
so use a different approach to have Solaris 10 compatibility
by tricking libbacktrace's autoconf tests.
The sysroot download routine is slightly changed, too.
2017-10-20 00:01:50 +08:00
bors
8b45c24b51 Auto merge of #45301 - ishitatsuyuki:llvm5-backport, r=alexcrichton
Backport ThinLTO LLVM 5 fixes

This makes building nightly more convenient on Arch.
2017-10-19 15:04:46 +00:00
bors
e3fb84e951 Auto merge of #45232 - zackmdavis:moar_lint_suggestions, r=estebank
code suggestions for non-shorthand field pattern, no-mangle lints

continuing in the spirit of #44942

![moar_lint_suggestions](https://user-images.githubusercontent.com/1076988/31485011-3b20cc80-aee7-11e7-993d-81267ab77732.png)

r? @estebank
2017-10-19 11:41:11 +00:00
Marc-Antoine Perennou
27cc11931a rustbuild: fix dist in debug mode
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-10-19 12:22:16 +02:00
bjorn3
906523efea Move collector to rustc_trans_utils 2017-10-19 11:01:31 +02:00
Tatsuyuki Ishi
3efa00365f Update ThinLTO (internalization) for LLVM 5
Ref: ccb80b9c0f
2017-10-19 15:20:47 +09:00
topecongiro
622d20a85a Fix typos in librustc/ty/README.md 2017-10-19 13:29:12 +09:00
topecongiro
547743ec6a Fix typos in src/librustc/README.md 2017-10-19 08:49:07 +09:00
Mark Simulacrum
0fcd3e7b07 Make sure to clear out the stageN-{rustc,std,tools} directories.
We copy built tool binaries into a dedicated directory to avoid deleting
them, stageN-tools-bin. These aren't ever cleared out by code, since
there should be no reason to do so, and we'll simply overwrite them as
necessary.

When clearing out the stageN-{std,rustc,tools} directories, make sure to
delete both Cargo directories -- per-target and build scripts. This
ensures that changing libstd doesn't cause problems due to build scripts
not being rebuilt, even though they should be.
2017-10-18 16:30:33 -06:00
topecongiro
0dde8cdd40 Allow passing a path with tilde 2017-10-19 06:22:32 +09:00
topecongiro
e11abd1541 Fix typos 2017-10-19 06:02:13 +09:00
topecongiro
0d6923d1b5 Remove --enable-rustbuild config option from example 2017-10-19 06:00:15 +09:00
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