Commit Graph

49773 Commits

Author SHA1 Message Date
Zack M. Davis
d37edef9dd prefer if let to match with None => {} arm in some places
This is a spiritual succesor to #34268/8531d581, in which we replaced a
number of matches of None to the unit value with `if let` conditionals
where it was judged that this made for clearer/simpler code (as would be
recommended by Manishearth/rust-clippy's `single_match` lint). The same
rationale applies to matches of None to the empty block.
2016-07-03 16:27:02 -07:00
bors
5e858f34df Auto merge of #34532 - jonmarkprice:master, r=steveklabnik
Book: Small grammatical and stylistic edits to book

I've been reading [the book](https://doc.rust-lang.org/book/) and noticed a few small grammatical and stylistic issues which I've rolled into this pull request.

I'm not sure if I should do so many small, unrelated edits in a single pull request but it seems like a lot of overhead for each small edit. Maybe one commit per edit but one pull request per file/section? Feedback is very much appreciated as this is my first pull request ever!

r? @steveklabnik rollup
2016-07-03 07:47:36 -07:00
bors
da099c2322 Auto merge of #34614 - cynicaldevil:build-time, r=alexcrichton
Build: Shows total time taken to build the compiler

Fixes #34600
Prints the total time taken to build rustc by executing `src/bootstrap/bootstrap.py`; also includes time taken to download `stage0` compiler and deps.

r? @alexcrichton
2016-07-03 02:17:58 -07:00
bors
d9e8a67894 Auto merge of #34597 - CensoredUsername:bootstrap-fix, r=alexcrichton
Support more python 2.7 versions in bootstrap.py

It seems python broke compatability between 2.7.9  and 2.7.12 as on the former a WindowsError was raised while on the latter a subprocess.CalledProcessError was raised while testing for the existence of uname.

As a WindowsError being thrown obviously indicates we're running on windows, this should probably be accepted too.
2016-07-02 23:33:54 -07:00
bors
45c3a50f39 Auto merge of #34580 - eddyb:two-steps-forward-one-step-backwards, r=nagisa
Revert "Remove the return_address intrinsic."

This reverts commit b30134dbc3.

Servo might want this merged if they don't merge servo/servo#11872 soon.

cc @pnkfelix @jdm
2016-07-02 17:25:05 -07:00
bors
1ab87b65a2 Auto merge of #34605 - arielb1:bug-in-the-jungle, r=eddyb
fail obligations that depend on erroring obligations

Fix a bug where an obligation that depend on an erroring obligation would
be regarded as successful, leading to global cache pollution and random
lossage.

Fixes #33723.
Fixes #34503.

r? @eddyb since @nikomatsakis is on vacation

beta-nominating because of the massive lossage potential (e.g. with `Copy` this could lead to random memory leaks), plus this is a regression.
2016-07-02 12:25:29 -07:00
bors
e85adffd64 Auto merge of #34443 - eddyb:sized-matters, r=arielb1
Disallow constants and statics from having unsized types.

This is a `[breaking-change]` which fixes #34390 by banning unsized `const` and `static`, e.g.:
```rust
const A: [i32] = *(&[0, 1, 2] as &[i32]);
static B: str = *"foo";
```

This was not intentionally allowed, and other than for `static` since some versions ago, it ICE'd.
If you've been taking advantage of this with `static`, you should be able to just use references instead.
2016-07-02 09:36:52 -07:00
Nikhil Shagrithaya
4dbe14005f Build: Shows total time taken to build the compiler 2016-07-02 19:53:02 +05:30
bors
7a262d3034 Auto merge of #34539 - arielb1:metadata-hash, r=alexcrichton
Make the metadata lock more robust

Fixes #33778 and friends.

I also needed to add a metadata encoding version to rlibs, as they did not have it before. To keep it backwards-compatible, I added 4 zeroes to the start of the metadata, which are treated as an empty length field by older rustcs.

r? @alexcrichton
2016-07-02 06:50:59 -07:00
Ariel Ben-Yehuda
42b7c32ac8 fix test fallout 2016-07-02 14:50:36 +03:00
Ariel Ben-Yehuda
e154687f57 add a encoding version to the actual metadata
previously, only .so files included a metadata encoding version, *outside*
of the zlib compressed area. This adds an encoding version inside the metadata
itself, in both .so and .rlib files.

Fixes #33778.
2016-07-02 14:43:52 +03:00
Ariel Ben-Yehuda
0b36fff4d7 make the metadata lock more robust and bump the metadata encoding version
check the metadata lock when loading rather than afterwards

Fixes #33733
Fixes #33015
2016-07-02 14:43:45 +03:00
Manish Goregaokar
adda4e41be Rollup merge of #34583 - steveklabnik:remove-unneeded-deprecated, r=alexcrichton
remove unneeded allow flag

There isn't anything deprecated being used in this function.

This built fine for me locally, but just to be sure, should check Travis.
2016-07-02 15:46:50 +05:30
Manish Goregaokar
888e2c2e57 Rollup merge of #34567 - alexcrichton:rustbuild-android, r=brson
rustbuild: Implement testing for Android

This commit enhances the rustbuild support for testing Android to the same level
of parity as the makefiles. This involved:

* A new step to copy the standard library and other shared objects to the
  emulator. This is injected as a dependency of all test suites for Android.
* Appropriate arguments are now passed through to compiletest to ensure that it
  can run tests.
* When testing the standard library the test executables are probed for and
  shipped to the emulator to run for each test.
* Fixing compilation of compiler-rt a bit

All support added here is modeled after what's found in the makefiles, just
translating one strategy to another. As an added bonus this commit adds support
for the "check" step to automatically run tests for all targets, and the
"check-target" step now runs all tests for a particular target, automatically
filtering the tests if the target is detected as a cross-compile.

Note that we don't (and probably won't) have a bot which is actually going to
exercise any of this just yet, but all tests have passed locally for me at
least.
2016-07-02 15:46:50 +05:30
Manish Goregaokar
533ce9a7a6 Rollup merge of #34566 - ollie27:linkchecker_invalid_urls, r=alexcrichton
Reject invalid urls in linkchecker

For example root-relative links will now be rejected.

Also remove some exceptions which have since been fixed and fix a typo in
the broken redirect handling.
2016-07-02 15:46:49 +05:30
Manish Goregaokar
76705df226 Rollup merge of #34551 - GuillaumeGomez:runtest_improvement, r=alexcrichton
Improve runtest output
2016-07-02 15:46:49 +05:30
Manish Goregaokar
08f4559537 Rollup merge of #34545 - sanxiyn:rustbuild, r=alexcrichton
Add rustc-stageN targets to rustbuild
2016-07-02 15:46:49 +05:30
Manish Goregaokar
2c643bd4d0 Rollup merge of #34531 - GuillaumeGomez:libsyntax_err_codes, r=jonathandturner
Add error codes in libsyntax

r? @jonathandturner

Fixes #34526
2016-07-02 15:46:49 +05:30
bors
7e07e31600 Auto merge of #34492 - retep998:please-be-robust-already, r=alexcrichton
Make MSVC detection ludicrously robust

Resurrection of https://github.com/rust-lang/rust/pull/31158

r? @alexcrichton
2016-07-01 21:39:16 -07:00
bors
32a6373322 Auto merge of #34067 - tbu-:pr_lookup_host_ignore_other_addresses, r=alexcrichton
Ignore unknown address types when looking up hosts

Previously, any function using a `ToSocketAddrs` input would fail if
passed a hostname that resolves to an address type different from the
ones recognized by Rust.

This also changes the `LookupHost` iterator to only include the known
address types, as a result, it doesn't have to return `Result`s any
more, which are likely misinterpreted as failed name lookups.
2016-07-01 18:43:28 -07:00
Ariel Ben-Yehuda
201cdd33df fail obligations that depend on erroring obligations
Fix a bug where an obligation that depend on an erroring obligation would
be regarded as successful, leading to global cache pollution and random
lossage.

Fixes #33723.
Fixes #34503.
2016-07-02 02:20:45 +03:00
bors
01411937ff Auto merge of #33940 - seanmonstar:siphash-1-3, r=alexcrichton
hashmap: use siphash-1-3 as default hasher

Also exposes `SipHash13` and `SipHash24` in `core:#️⃣:sip`, for those that want to differentiate.

For motivation, see this quote from the original issue:

> we proposed SipHash-2-4 as a (strong) PRF/MAC, and so far no attack whatsoever has been found,
although many competent people tried to break it. However, fewer rounds may be sufficient and I would
be very surprised if SipHash-1-3 introduced weaknesses for hash tables.

This keeps a type alias of `SipHasher` to `SipHash24`, and since the internal default hasher of HashMap is specified as "not specified", changing it should not be a breaking change.

Closes #29754
2016-07-01 15:53:07 -07:00
Ariel Ben-Yehuda
c333ebbe63 fix RUST_LOG, hopefully for real this time 2016-07-01 23:52:22 +03:00
CensoredUsername
ad88d50fba Older versions of python 2.7 can raise a WindowsError instead of a subprocess.CalledProcessError when uname does not exist 2016-07-01 18:36:28 +02:00
bors
16281888c0 Auto merge of #34563 - alexcrichton:robust-mk, r=brson
mk: Don't consider LLVM done until it's done

Currently if an LLVM build is interrupted *after* it creates the llvm-config
binary but before it's done it puts us in an inconsistent state where we think
LLVM is compiled but it's not actually. This tweaks our logic to only consider
LLVM done building once it's actually done building.

This should hopefully alleviate problems on the bots where if we interrupt at
the wrong time it doesn't corrupt the build directory.
2016-06-30 23:30:51 -07:00
bors
375fa6ef37 Auto merge of #34577 - alexcrichton:clean-more-yet-again, r=brson
rustbuild: Clean out tmp directory on `make clean`

Right now we generate error index information into this directory, but it's
never cleaned out. This means that if a build *bounces* because of something in
this directory it'll continue to cause all future builds to fail because the
relevant files are never removed.
2016-06-30 20:07:57 -07:00
Alex Crichton
1e48a72edc rustbuild: Clean out tmp directory on make clean
Right now we generate error index information into this directory, but it's
never cleaned out. This means that if a build *bounces* because of something in
this directory it'll continue to cause all future builds to fail because the
relevant files are never removed.
2016-06-30 15:20:53 -07:00
Steve Klabnik
9ad64e41c5 remove unneeded allow flag
There isn't anything deprecated being used in this function.
2016-06-30 17:06:52 -04:00
Eduard Burtescu
f698cd3a36 Revert "Remove the return_address intrinsic."
This reverts commit b30134dbc3.
2016-06-30 21:12:36 +03:00
Alex Crichton
9e2bd921ea mk: Don't consider LLVM done until it's done
Currently if an LLVM build is interrupted *after* it creates the llvm-config
binary but before it's done it puts us in an inconsistent state where we think
LLVM is compiled but it's not actually. This tweaks our logic to only consider
LLVM done building once it's actually done building.

This should hopefully alleviate problems on the bots where if we interrupt at
the wrong time it doesn't corrupt the build directory.
2016-06-30 09:08:43 -07:00
ggomez
737d854521 Improve runtest output
It now prints only unexpected errors and expected errors which weren't found
2016-06-30 15:16:07 +02:00
Guillaume Gomez
84e874f0e0 Add comments on error code list 2016-06-30 11:14:22 +02:00
bors
85c31af981 Auto merge of #34541 - jseyfried:rollup, r=jseyfried
Rollup of 5 pull requests

 - Successful merges: #34105, #34305, #34512, ~~#34531,~~ #34547
2016-06-30 01:49:45 -07:00
Jeffrey Seyfried
a8751e077f Rollup merge of #34547 - sanxiyn:pretty-lifetime, r=pnkfelix
Fix pretty-printing of lifetime bound

Fix #34527.
2016-06-30 07:39:32 +00:00
Alex Crichton
39a5d3f409 rustbuild: Implement testing for Android
This commit enhances the rustbuild support for testing Android to the same level
of parity as the makefiles. This involved:

* A new step to copy the standard library and other shared objects to the
  emulator. This is injected as a dependency of all test suites for Android.
* Appropriate arguments are now passed through to compiletest to ensure that it
  can run tests.
* When testing the standard library the test executables are probed for and
  shipped to the emulator to run for each test.
* Fixing compilation of compiler-rt a bit

All support added here is modeled after what's found in the makefiles, just
translating one strategy to another. As an added bonus this commit adds support
for the "check" step to automatically run tests for all targets, and the
"check-target" step now runs all tests for a particular target, automatically
filtering the tests if the target is detected as a cross-compile.

Note that we don't (and probably won't) have a bot which is actually going to
exercise any of this just yet, but all tests have passed locally for me at
least.
2016-06-29 17:01:10 -07:00
Sean McArthur
db1b1919ba std: use siphash-1-3 for HashMap 2016-06-29 16:08:32 -07:00
Oliver Middleton
01386e6492 Reject invalid urls in linkchecker
For example root-relative links will now be rejected.

Also remove some exceptions which have since been fixed and fix a typo in
the broken redirect handling.
2016-06-29 22:58:57 +01:00
ggomez
7a8b4026ba Fix tests 2016-06-29 22:10:36 +02:00
Manish Goregaokar
8e2598c3d2 Rollup merge of #34542 - jseyfried:fix_recursive_modules, r=nrc
Fix non-termination on recursive module re-exports in extern crates

Fixes #33776.
r? @nrc
2016-06-29 21:21:24 +05:30
Manish Goregaokar
cc15c211c5 Rollup merge of #34536 - ollie27:rustdoc_module_impls, r=alexcrichton
rustdoc: Fix empty Implementations section on some module pages

These are caused by `DefaultImpl`s.

For example [`core::marker`](https://doc.rust-lang.org/nightly/core/marker/#impls).
2016-06-29 21:21:23 +05:30
Manish Goregaokar
b393c7e0d2 Rollup merge of #34513 - ollie27:rustdoc_stripped, r=alexcrichton
rustdoc: Fix a few stripping issues

We need to recurse into stripped modules to strip things like impl methods
but when doing so we must not add any items to the `retained` set.

For example this removes [`core::num::ParseFloatError::__description`](https://doc.rust-lang.org/nightly/core/num/struct.ParseFloatError.html#method.__description) and [`impl Clone for ThreadRng`](https://doc.rust-lang.org/nightly/std/clone/trait.Clone.html).
2016-06-29 21:21:23 +05:30
Manish Goregaokar
5bd3ef81c6 Rollup merge of #34499 - michaelwoerister:lldb-blacklist, r=alexcrichton
Disable debuginfo tests for a given blacklist of LLDB versions

Anyone having trouble with most LLDB tests failing on OSX, please report your LLDB version here so I can add it to the blacklist.

Blacklisted versions so far:
* lldb-350.*

cc @rust-lang/tools
cc @tedhorst @indutny @jonathandturner (people from the original bug report)

Fixes #32520.
2016-06-29 21:21:23 +05:30
Manish Goregaokar
2e893ea6de Rollup merge of #34497 - oli-obk:double_negation, r=eddyb
Revert "skip double negation in const eval"

This reverts commit 735c018974.

fixes #34395

The original commit was based on a mis-understanding of the overflowing literal lint.

This needs to be ported to beta.

r? @eddyb
2016-06-29 21:21:22 +05:30
Manish Goregaokar
8886818a9a Rollup merge of #34495 - jseyfried:only_ident_macro_invocations, r=eddyb
Forbid type parameters and global paths in macro invocations

Fixes #28558.
This is a [breaking-change]. For example, the following would break:
```rust
macro_rules! m { () => { () } }
fn main() {
    m::<T>!(); // Type parameters are no longer allowed in macro invocations
    ::m!(); // Global paths are no longer allowed in macro invocations
}
```
Any breakage can be fixed by removing the type parameters or the leading `::` (respectively).

r? @eddyb
2016-06-29 21:21:22 +05:30
Manish Goregaokar
2a0c2c3b3a Rollup merge of #34467 - GuillaumeGomez:err-codes, r=brson
Add new error codes and improve some explanations

r? @brson

cc @steveklabnik
cc @jonathandturner
2016-06-29 21:21:22 +05:30
Manish Goregaokar
d11ac236b1 Rollup merge of #34460 - dsprenkels:issue-33455, r=alexcrichton
Add regression test for #33455

Closes #33455.
2016-06-29 21:21:21 +05:30
Manish Goregaokar
fd45e6e912 Rollup merge of #34459 - jseyfried:expansion_cleanup, r=nrc
Miscellaneous macro expansion cleanup and groundwork

r? @nrc
2016-06-29 21:21:21 +05:30
Manish Goregaokar
470c5191f5 Rollup merge of #34446 - jseyfried:refactor_decorators, r=nrc
Treat `MultiDecorator`s as a special case of `MultiModifier`s

This deals with #32950 by using @durka's [option 1](https://github.com/rust-lang/rust/pull/33769#issuecomment-221774136).
r? @nrc
2016-06-29 21:21:21 +05:30
Manish Goregaokar
f74d0fb568 Rollup merge of #34355 - jseyfried:paren_expression_ids_nonunique, r=nrc
Give `ast::ExprKind::Paren` no-op expressions the same ids as their children.

Having `ast::ExprKind::Paren` expressions share ids with their children
 - reduces the number of unused `NodeId`s in the hir map and
 - guarantees that `tcx.map.expect_expr(ast_expr.id)` is the hir corresponding to `ast_expr`.

This fixes the bug from #34327, which was introduced in #33296 when I assumed the above guarantee.

r? @nrc
2016-06-29 21:21:21 +05:30
Seo Sanghyeon
3c29fc5f6c Fix pretty-printing of lifetime bound 2016-06-29 23:40:29 +09:00