Commit Graph

59523 Commits

Author SHA1 Message Date
Alex Crichton
5e991e0afb Fix travis builds
After reading some articles [1] [2] yesterday about Docker and the "init"
process I got to thinking about the problems that we've been seeing on Travis.
The basic problem is that a Linux system may need an "init" process to work
properly when processes become zombies. Docker by default doesn't handle this
and the root process typically isn't an init process, so this can occasionally
cause quite a few problems.

We've been seeing spurious errors on Travis inside containers which look like
OOM and such, but my guess is that zombie processes were being reparented to the
top-level shell. The shell didn't expect the zombies and then behaved very
strangely.

This commit fixes these problems by using Yelp's "dumb-init" program [2] as the
init process in all of our containers. This ensures that there's a valid init
ready to reap children when they're reparented, which our test suite apparently
generates a bunch of throughout the tests and such.

[1]: https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/
[2]: https://engineeringblog.yelp.com/2016/01/dumb-init-an-init-for-docker.html
2016-12-13 00:13:14 -08:00
bors
b1a2ab86db Auto merge of #38179 - michael-zapata:rf/harmonise_rustdoc_errors, r=GuillaumeGomez
feat(rustdoc): harmonise error messages

Based on unix tools wording, it follows a standard format: `program_name: context: error message`, potentially prompting the user to use the `--help` option.

This is clearly meant to trigger some discussion on #38084, as messages still use `stdout` and `stderr` somewhat arbitrarily, and there are a few `error!()` calls as well.
2016-12-13 06:29:25 +00:00
Steven Fackler
75fe727b78 Implement RFC #1725
cc #37955
2016-12-12 21:44:09 -08:00
bors
5a2b50b33d Auto merge of #38325 - frewsxcv:rollup, r=frewsxcv
Rollup of 7 pull requests

- Successful merges: #37052, #37941, #38067, #38164, #38202, #38264, #38299
- Failed merges:
2016-12-13 02:28:23 +00:00
Ulrik Sverdrup
4e696edc71 rustbuild: Add cli option --keep-stage
This option is intended to be used like:

./x.py build --stage 1 --keep-stage 0

Which skips all stage 0 steps, so that stage 1 can be recompiled
directly (even if for example libcore has changes).

This is useful when working on `cfg(not(stage0))` parts of the
libraries, or when re-running stage 1 tests in libraries in general.
2016-12-13 00:05:12 +01:00
Jeremy Soller
daaa231876 Fix tidy checks 2016-12-12 15:57:19 -07:00
bors
1336742a1a Auto merge of #38324 - alexcrichton:fix-nightlies, r=alexcrichton
First attempt at fixing nightlies

Looks like we've got a whole slew of bugs on our hands, let's try to fix them all at once.
2016-12-12 22:14:05 +00:00
Jeremy Soller
7e7775ce7b Merge branch 'master' into redox 2016-12-12 14:55:09 -07:00
Jeremy Soller
c61baa0fc7 Fix accidental removal of import 2016-12-12 14:30:41 -07:00
Jeremy Soller
056ebccee3 Rollback prefix 2016-12-12 14:21:44 -07:00
Alex Crichton
6cb8bbc3ff rustbuild: Fix dist of save-analysis info
We don't need an extra bare tarball, the save-analysis info is already produced
with a version/target in the filename.
2016-12-12 12:28:22 -08:00
Corey Farwell
cba1304313 Rollup merge of #38299 - achanda:ctrl-c, r=brson
Handle Ctrl+C in the build script
2016-12-12 14:10:33 -05:00
Corey Farwell
e3363f2772 Rollup merge of #38264 - ollie27:rustdoc_src_macro, r=brson
rustdoc: Remove broken src links from reexported items from macros

When an item is defined in an external macro it doesn't get a real
filename so we need to filter out these when generating src links for
reexported items.
2016-12-12 14:10:33 -05:00
Corey Farwell
a9dcfd0936 Rollup merge of #38202 - michaelwoerister:closure-ich-test, r=nikomatsakis
Some incr. comp. hash tests

r? @nikomatsakis
2016-12-12 14:10:33 -05:00
Corey Farwell
5e425b7b4b Rollup merge of #38164 - sourcefrog:fonts, r=GuillaumeGomez
Avoid using locally installed Source Code Pro font (fixes #24355).

In some versions of this font the ampersands are drawn badly.

A doc tree built with this change is at https://storage.googleapis.com/mbp-rust-builds/fonts/doc/std/index.html

I'm not seeing this problem locally so I'm not sure this fixes it, but based on the diagnosis in the bug it should.

I've made this a minimal change by only removing the one problematic font but maybe for consistency every font should be read from the Rust docs tree?
2016-12-12 14:10:33 -05:00
Corey Farwell
3bd2c80382 Rollup merge of #38067 - GuillaumeGomez:udp-doc, r=frewsxcv,nagisa
Add more examples to UpdSocket

r? @frewsxcv
2016-12-12 14:10:32 -05:00
Corey Farwell
8c3c9c2979 Rollup merge of #37941 - Cobrand:docfix-issue-37915, r=GuillaumeGomez
Improve and fix mpsc documentation

Closes #37915

This commit enhances documentation with several links and
fixes an error in the `sync_channel` documentation as well:
`send` doesn't panic when the senders are all disconnected

r? @steveklabnik
2016-12-12 14:10:32 -05:00
Corey Farwell
dc1a094b40 Rollup merge of #37052 - srinivasreddy:hair_cx, r=pnkfelix
Run rustfmt on librustc_mir/hair/cx
2016-12-12 14:10:32 -05:00
Alex Crichton
5f07d3dea9 rustbuild: Check for .git as a dir
Git worktrees have this as a file and typically won't work inside docker
containers, but that's ok, so instead of just checking for existence check for a
directory to see if the git commands will succeed.
2016-12-12 11:05:29 -08:00
Vadzim Dambrouski
9d764fc3c1 Do not generate '@' character in symbol names.
MSP430 assembler does not like '@' character in symbol names, so we should
only use alphanumerics when we generate a new name.

Fixes #38116
2016-12-12 21:56:52 +03:00
bors
6483bdd860 Auto merge of #38243 - michaelwoerister:fix-debuginfo-namespace-edge, r=nikomatsakis
incr.comp.: Avoid creating an edge to DepNode::Krate when generating debuginfo namespaces.

r? @nikomatsakis

Fixes #38222
2016-12-12 17:31:48 +00:00
Alex Crichton
48bda31ab9 rustbuild: Update gcc-rs to 0.3.40
This commit updates the gcc-rs dependency to 0.3.40 to pick up a fix for i686
musl where we needed to pass an extra linker flag to get autoconf's detection of
executables working correctly.
2016-12-12 09:27:14 -08:00
Michael Woerister
271fb22924 incr.comp.: Avoid creating an edge to DepNode::Krate when generating debuginfo namespaces. 2016-12-12 12:18:04 -05:00
Alex Crichton
6f62fae926 rustbuild: Enable unstable features in rustdoc
This ensures that stable releases produced by rustbuild will succeed in testing
as some of the rustdoc tests use unstable features.
2016-12-12 09:03:35 -08:00
Michael Zapata
430d39da9d
feat(rustdoc): harmonise error messages
Based on unix tools wording, it follows a standard format:
`program_name: context: error message` on stderr, prompting the user
to use the `--help` option in case of misuse.
2016-12-12 15:26:28 +01:00
Jake Goulding
5bce12c95f [LLVM 4.0] Move debuginfo alignment argument
Alignment was removed from createBasicType and moved to

- createGlobalVariable
- createAutoVariable
- createStaticMemberType (unused in Rust)
- createTempGlobalVariableFwdDecl (unused in Rust)

e69c459a6e
2016-12-12 09:00:04 -05:00
bors
b4b1e5ece2 Auto merge of #38049 - frewsxcv:libunicode, r=alexcrichton
Rename 'librustc_unicode' crate to 'libstd_unicode'.

Fixes https://github.com/rust-lang/rust/issues/26554.
2016-12-12 13:19:33 +00:00
bors
0eae43e4d0 Auto merge of #38307 - bluss:mir-opt-level, r=eddyb
Simplify use of mir_opt_level

Remove the unused top level option by the same name, and retain the
debug option.

Use -Zmir-opt-level=1 as default.

One pass is enabled by default but wants to be optional:

- Instcombine requires mir_opt_level > 0

Copy propagation is not used by default, but used to be activated by
explicit -Zmir-opt-level=1. It must move one higher to be off by
default:

- CopyPropagation requires mir_opt_level > 1

Deaggregate is not used by default, and used to be on a different level
than CopyPropagation:

- Deaggreate requires mir_opt_level > 2
2016-12-12 10:19:14 +00:00
bors
8d66181b5e Auto merge of #38296 - dylanmckay:llvm-4.0-errortype, r=alexcrichton
[LLVM 4.0] Explicitly call constructor of 'llvm::Error'

The implicit constructor has been deleted. We should use
Error::success() instead.

The constructor in the LLVM headers mentions that "success" should be
used instead of the deleted constructor for clarity.
2016-12-12 07:19:35 +00:00
bors
81fb6509c8 Auto merge of #38291 - brson:licenseck, r=alexcrichton
Check the license of vendored deps

r? @alexcrichton
2016-12-12 03:40:15 +00:00
bors
5e2f37fca9 Auto merge of #38057 - KiChjang:display-formal-type-param, r=nikomatsakis
Display better error messages for E0282

Fixes #36554.
2016-12-12 00:22:30 +00:00
bors
3db197aa9d Auto merge of #38265 - bluss:mir-deaggregator-loop, r=nagisa
Reinstate while loop in deaggregator pass

A previous commit must have removed the `while let` loop here by
mistake; for each basic block, it should find and deaggregate multiple
statements in their index order, and the `curr` index tracks the
progress through the block.

This fixes both the case of deaggregating statements in separate
basic blocks (preserving `curr` could prevent that) as well
as multiple times in the same block (missing loop prevented that).

The loop was lost in commit bda46c21fe.
2016-12-11 21:19:34 +00:00
Ulrik Sverdrup
2b093b702a mir: Allow copy-propagation of function arguments 2016-12-11 22:12:41 +01:00
Ulrik Sverdrup
6d46a21cb3 Simplify use of mir_opt_level
Remove the unused top level option by the same name, and retain the
debug option.

Use -Zmir-opt-level=1 as default.

One pass is enabled by default but wants to be optional:

- Instcombine requires mir_opt_level > 0

Copy propagation is not used by default, but used to be activated by
explicit -Zmir-opt-level=1. It must move one higher to be off by
default:

- CopyPropagation requires mir_opt_level > 1

Deaggregate is not used by default, and used to be on a different level
than CopyPropagation:

- Deaggreate requires mir_opt_level > 2
2016-12-11 21:23:59 +01:00
bors
6d5ec58912 Auto merge of #38272 - michaelwoerister:incr-symbol-visibility, r=nikomatsakis
incr.comp.: Take symbol visibility into account for CGU hashes

r? @nikomatsakis
2016-12-11 18:20:52 +00:00
Abhishek Chanda
b7cd840dd7 Handle Ctrl+C in the build script 2016-12-11 15:25:31 +00:00
bors
fd5dc05793 Auto merge of #38252 - pnkfelix:mildly-robustify-configure-msg, r=alexcrichton
Make configure message re x.py not assume build dir == src dir

Fix #38251 but perhaps not BEST fix for it.

As driveby, fix copyright year in `Makefile.in`
2016-12-11 12:33:12 +00:00
Dylan McKay
6222de3ce4 [LLVM 4.0] Explicitly call constructor of 'llvm::Error'
The implicit constructor has been deleted. We should use
Error::success() instead.

The constructor in the LLVM headers mentions that "success" should be
used instead of the deleted constructor for clarity.
2016-12-11 22:44:19 +13:00
bors
e0158e02f9 Auto merge of #38249 - arielb1:special-substs, r=nikomatsakis
erase lifetimes when translating specialized substs

Projections can generate lifetime variables with equality constraints,
that will not be resolved by `resolve_type_vars_if_possible`, so substs
need to be lifetime-erased after that.

Fixes #36848.
2016-12-11 09:33:05 +00:00
bors
368e092c26 Auto merge of #38250 - michaelwoerister:trait-methods-in-reachable, r=alexcrichton
Consider provided trait methods in middle::reachable

Fixes https://github.com/rust-lang/rust/issues/38226 by also considering trait methods with default implementation instead of just methods provided in an impl.

r? @alexcrichton
cc @panicbit
2016-12-11 06:37:19 +00:00
bors
ea798527e4 Auto merge of #38240 - pftbest:update_llvm, r=japaric
LLVM: Update submodule to include patches for MSP430.

Fixes #37829
2016-12-11 01:06:20 +00:00
Brian Anderson
5e3be09b58 Check the license of vendored deps 2016-12-10 23:27:42 +00:00
bors
f82b7cbc10 Auto merge of #38231 - vadimcn:errormode, r=alexcrichton
Prevent Windows from displaying UI on errors.

Otherwise tests like run-pass/out-of-stack get wedged on Windows error reporting dialog (unless error reporting has been disabled, of course).
2016-12-10 22:08:20 +00:00
bors
c79d0b40a0 Auto merge of #38239 - jseyfried:fix_doc_tests_on_macros, r=eddyb
Fix doc-tests on exported `macro_rules!`

Fixes #38219.
r? @eddyb
2016-12-10 19:12:54 +00:00
bors
576a361cd0 Auto merge of #37780 - GuillaumeGomez:E0571, r=nikomatsakis
Add checkup for return statement outside of a function

Fixes #37778.

r? @eddyb (don't know who is in charge. Don't hesitate to set another one)

cc @jonathandturner
2016-12-10 16:18:07 +00:00
bors
39c9f184a2 Auto merge of #38233 - alexcrichton:more-errors, r=japaric
rustbuild: Print out failing commands

Just ensure that we always print out the command line which should aid in
debugging.

Closes #38228
2016-12-10 13:00:25 +00:00
bors
d53f39e1e5 Auto merge of #38217 - oli-obk:mir-for-all-and-all-for-mir, r=eddyb
add a -Z flag to guarantee that MIR is generated for all functions

r? @eddyb

cc @solson
2016-12-10 03:49:38 +00:00
Keith Yeung
d24028b5a8 Add UI test for missing type parameter 2016-12-09 18:23:05 -08:00
Jeffrey Seyfried
5200a11275 Improve proc-macro def ids. 2016-12-10 02:17:40 +00:00
bors
ebf2e7da5b Auto merge of #38223 - rkruppe:llvm-stringref-fixes, r=alexcrichton
printf type correctness

The `%.*s` format specifier requires an int for the maximum size, but StringRef::size is a size_t

cc @shepmaster
2016-12-10 00:34:13 +00:00