Commit graph

682 commits

Author SHA1 Message Date
Oliver Schneider
78e269ee0b
Include rendered diagnostic in json 2017-11-20 09:37:54 +01:00
Eduard-Mihai Burtescu
b0812de556 cargotest: temporarily use eddyb/servo to include servo/servo#19285. 2017-11-19 11:48:12 +02:00
Eduard-Mihai Burtescu
8c4d5af52b rustc: remove Ty::layout and move everything to layout_of. 2017-11-19 02:14:29 +02:00
bors
02eed2e9a5 Auto merge of #46004 - michaelwoerister:cached-mir-wip-3, r=nikomatsakis
incr.comp.: Implement query result cache and use it to cache type checking tables.

This is a spike implementation of caching more than LLVM IR and object files when doing incremental compilation. At the moment, only the `typeck_tables_of` query is cached but MIR and borrow-check will follow shortly. The feature is activated by running with `-Zincremental-queries` in addition to `-Zincremental`, it is not yet active by default.

r? @nikomatsakis
2017-11-17 10:12:21 +00:00
bors
d59f66d9b8 Auto merge of #45897 - tromey:trait-object-debug, r=michaelwoerister
Trait object debug

This enables better debugging of trait objects.  See the individual commits for explanations.  This required an LLVM bump.
2017-11-16 23:28:00 +00:00
Oliver Schneider
20eb27ed92
Reenable Clippy 2017-11-16 09:35:53 +01:00
Christopher Vittal
4ce61b7362 Change clippy to broken after hir::Ty enum change 2017-11-15 15:46:30 -05:00
Oliver Schneider
5319203aa3
Reenable clippy testing 2017-11-15 10:42:47 +01:00
Tom Tromey
a512228141 Allow minimum system LLVM version in tests
This adds a "min-system-llvm-version" directive, so that a test can
indicate that it will either work with rust-llvm or with some minimal
system LLVM.  This makes it simpler to write a test that requires an
LLVM patch that landed upstream and was then backported to rust-llvm.
2017-11-15 01:43:24 -07:00
Michael Woerister
2c1aeddf27 incr.comp.: Cache TypeckTables and add -Zincremental-queries flag. 2017-11-14 19:52:49 +01:00
bors
e21df8020d Auto merge of #45903 - nrc:rustfmt-dist, r=alexcrichton
Distribute Rustfmt

r? @alexcrichton
2017-11-13 21:06:11 +00:00
kennytm
5d9b63ce7f Rollup merge of #45917 - ollie27:compiletest_stamp, r=alexcrichton
compiletest: Fix a couple of test re-run issues

* Re-run rustdoc tests if rustdoc or htmldocck.py was updated.
* Put stamp files in the correct subdirectories to avoid clashes when
the file names match but the subdirectory doesn't.
2017-11-13 17:09:44 +08:00
kennytm
e349b18150 Rollup merge of #45914 - michaelwoerister:fix-test-header-parsing, r=alexcrichton
Fix test case header parsing code in presence of multiple revisions.

The previous code would parse the TestProps, and then parse them again with a revision set, adding some elements (like aux_builds) a second time to the existing TestProps.
2017-11-13 17:09:43 +08:00
Mark Simulacrum
1f921ec9cf Bump cargo to master.
Includes a few bugfixes, and updates the Cargo book.

Critically includes https://github.com/rust-lang/cargo/pull/4716. This
unblocks (in theory) crater runs.
2017-11-12 16:21:00 -07:00
Nick Cameron
97d21e29df review changes 2017-11-13 10:51:30 +13:00
Nick Cameron
63d854acf2 Distribute Rustfmt 2017-11-13 10:51:29 +13:00
bors
4b6f7252a1 Auto merge of #45902 - nrc:component-update, r=alexcrichton
Update RLS and Rustfmt

r? @alexcrichton
2017-11-12 12:20:07 +00:00
Oliver Middleton
ec15924a06 compiletest: Fix a couple of test re-run issues
* Re-run rustdoc tests if rustdoc or htmldocck.py was updated.
* Put stamp files in the correct subdirectories to avoid clashes when
the file names match but the subdirectory doesn't.
2017-11-10 18:17:03 +00:00
Michael Woerister
6a9fa50f4a Fix test case header parsing code in presence of multiple revisions.
The previous code would parse the TestProps, and then parse them
again with a revision set, adding some elements (like aux_builds)
a second time to the existing TestProps.
2017-11-10 17:26:10 +01:00
kennytm
2c4a0a78b8 Rollup merge of #45783 - kennytm:compiler-test-fixes, r=alexcrichton
Miscellaneous changes for CI, Docker and compiletest.

This PR contains 7 independent commits that improves interaction with CI, Docker and compiletest.

1. a4e5c91cb8 — Forces a newline every 100 dots when testing in quiet mode. Prevents spurious timeouts when abusing the CI to test Android jobs.

2. 1b5aaf22e8 — Use vault.centos.org for dist-powerpc64le-linux, see #45744.

3. 33400fbbcd — Modify `src/ci/docker/run.sh` so that the docker images can be run from Docker Toolbox for Windows on Windows 7. I haven't checked the behavior of the newer Docker for Windows on Windows 10. Also, "can run" does not mean all the test can pass successfully (the UDP tests failed last time I checked)

4. d517668a08 — Don't emit a real warning the linker segfault, which affects UI tests like https://github.com/rust-lang/rust/pull/45489#issuecomment-340134944. Log it instead.

5. 51e2247948 — During run-pass, trim the output if stdout/stderr exceeds 416 KB (top 160 KB + bottom 256 KB). This is an attempt to avoid spurious failures like https://github.com/rust-lang/rust/pull/45384#issuecomment-341755788

6. 9cfdabaf3c — Force `gem update --system` before deploy. This is an attempt to prevent spurious error #44159.

7. eee10cc482 — Tries to print the crash log on macOS on failure. This is an attempt to debug #45230.
2017-11-10 17:07:04 +08:00
Nick Cameron
2afc039a5d Update RLS submodule 2017-11-10 17:53:46 +13:00
Nick Cameron
12da5a4b11 Update rustfmt submodule 2017-11-10 13:53:28 +13:00
bors
da3fbe750f Auto merge of #45867 - michaelwoerister:check-ich-stability, r=nikomatsakis
incr.comp.: Verify stability of incr. comp. hashes and clean up various other things.

The main contribution of this PR is that it adds the `-Z incremental-verify-ich` functionality. Normally, when the red-green tracking system determines that a certain query result has not changed, it does not re-compute the incr. comp. hash (ICH) for that query result because that hash is already known. `-Z incremental-verify-ich` tells the compiler to re-hash the query result and compare the new hash against the cached hash. This is a rather thorough way of
- testing hashing implementation stability,
- finding missing `[input]` annotations on `DepNodes`, and
- finding missing read-edges,

since both a missed read and a missing `[input]` annotation can lead to something being marked as green instead of red and thus will have a different hash than it should have.

Case in point, implementing this verification logic and activating it for all `src/test/incremental` tests has revealed several such oversights, all of which are fixed in this PR.

r? @nikomatsakis
2017-11-08 22:27:06 +00:00
Michael Woerister
13bc7ad476 incr.comp.: Always verify incr. comp. hashes when running incremental tests. 2017-11-08 11:33:06 +01:00
bors
bd0e45a323 Auto merge of #45811 - DSpeckhals:update-rustfmt-rls, r=nikomatsakis
tools: Fix rustfmt and the RLS

These tools have been corrected in their upstream repo's, and the submodules have been updated here to reflect that. I also had to update Cargo to match what the RLS is expecting.

The tool states for `rustfmt` and `rls` where both changed from "Broken" to "Testing" in this commit, thus enabling testing and distribution again.
2017-11-06 20:43:46 +00:00
Dustin Speckhals
d0c1f36771 tools: Fix rustfmt and the RLS
These tools have been corrected in their upstream repo's, and the
submodules have been updated here to reflect that. I also had to update
Cargo to match what the RLS is expecting.

The tool states for `rustfmt` and `rls` where both changed from "Broken"
to "Testing" in this commit, thus enabling testing and distribution
again.
2017-11-06 13:03:06 -05:00
bors
74be072068 Auto merge of #45737 - oli-obk:json, r=petrochenkov
Pretty print json in ui tests

I found the json output in one line to not be useful for reviewing

r? @petrochenkov
2017-11-06 12:18:12 +00:00
kennytm
51e2247948
Abbreviate some stdout/stderr output in compiletest.
This is intended to prevent the spurious OOM error from
run-pass/rustc-rust-log.rs, by skipping the output in the middle when the
size is over 416 KB, so that the log output will not be overwhelmed.
2017-11-06 03:53:41 +08:00
kennytm
33400fbbcd
Modify the script to allow for running docker images on Windows 7. 2017-11-06 03:53:40 +08:00
bors
94ede93467 Auto merge of #44042 - LukasKalbertodt:ascii-methods-on-instrinsics, r=alexcrichton
Copy all `AsciiExt` methods to the primitive types directly in order to deprecate it later

**EDIT:** [this PR is ready now](https://github.com/rust-lang/rust/pull/44042#issuecomment-333883548). I edited this post to reflect the current status of discussion, which is (apart from code review) pretty much settled.

---

This is my current progress in order to prepare stabilization of #39658. As discussed there (and in #39659), the idea is to deprecated `AsciiExt` and copy all methods to the type directly. Apparently there isn't really a reason to have those methods in an extension trait¹.

~~This is **work in progress**: copy&pasting code while slightly modifying the documentation isn't the most exciting thing to do. Therefore I wanted to already open this WIP PR after doing basically 1/4 of the job (copying methods to `&[u8]`, `char` and `&str` is still missing) to get some feedback before I continue. Some questions possibly worth discussing:~~

1. ~~Does everyone agree that deprecating `AsciiExt` is a good idea? Does everyone agree with the goal of this PR?~~ => apparently yes
2. ~~Are my changes OK so far? Did I do something wrong?~~
3. ~~The issue of the unstable-attribute is currently set to 0. I would wait until you say "Ok" to the whole thing, then create a tracking issue and then insert the correct issue id. Is that ok?~~
4. ~~I tweaked `eq_ignore_ascii_case()`: it now takes the argument `other: u8` instead of `other: &u8`. The latter was enforced by the trait. Since we're not bound to a trait anymore, we can drop the reference, ok?~~ => I reverted this, because the interface has to match the `AsciiExt` interface exactly.

¹ ~~Could it be that we can't write `impl [u8] {}`? This might be the reason for `AsciiExt`. If that is the case: is there a good reason we can't write such an impl block? What can we do instead?~~ => we couldn't at the time this PR was opened, but Simon made it possible.

/cc @SimonSapin @zackw
2017-11-05 11:42:59 +00:00
Lukas Kalbertodt
ea55596d5b Relax #[deny(warnings)] in some crate for cargotest
Otherwise changes to the compiler are unable to introduce new
warnings: some crates tested by cargotest deny all warnings and
thus, the CI build fails.

Thanks SimonSapin for the patch!
2017-11-05 10:40:06 +01:00
bors
16e9b9f15c Auto merge of #45748 - petrochenkov:short, r=alexcrichton
Shorten paths to auxiliary files created by tests

I'm hitting issues with long file paths to object files created by the test suite, similar to https://github.com/rust-lang/rust/issues/45103#issuecomment-335622075.

If we look at the object file path in https://github.com/rust-lang/rust/issues/45103 we can see that the patch contains of few components:
```
specialization-cross-crate-defaults.stage2-x86_64-pc-windows-gnu.run-pass.libaux\specialization_cross_crate_defaults.specialization_cross_crate_defaults0.rust-cgu.o
```
=>

1. specialization-cross-crate-defaults // test name, required
2. stage2 // stage disambiguator, required
3. x86_64-pc-windows-gnu // target disambiguator, required
4. run-pass // mode disambiguator, rarely required
5. libaux // suffix, can be shortened
6. specialization_cross_crate_defaults // required, there may be several libraries in the directory
7. specialization_cross_crate_defaults0 // codegen unit name, can be shortened?
8. rust-cgu // suffix, can be shortened?
9. o // object file extension

This patch addresses items `4`, `5` and `8`.
`libaux` is shortened to `aux`, `rust-cgu` is shortened to `rcgu`, mode disambiguator is omitted unless it's necessary (for pretty-printing and debuginfo tests, see https://github.com/rust-lang/rust/pull/24537/commits/38d26d811a44ba93637c84ce77a58af88c47f0ac)

I haven't touched names of codegen units though (`specialization_cross_crate_defaults0`).
Is it useful for them to have descriptive names including the crate name, as opposed to just `0` or `cgu0` or something?
2017-11-05 06:42:17 +00:00
kennytm
7a766a4a41 Rollup merge of #45722 - mikhail-m1:improve-mir-opt-error-output, r=alexcrichton
improve compiletest output for errors from mir-opt tests

improvement:
1. Report filename against general cannot open error
2. Report current MIR block
2017-11-04 13:49:32 +08:00
Vadim Petrochenkov
d588f9338d Shorten paths to auxiliary files created by tests 2017-11-03 22:41:15 +03:00
leonardo.yvens
3241f4583b rustfmt is broken which makes rls broken 2017-11-03 16:13:22 -02:00
Oliver Schneider
c7cb2cf8b5
Pretty print json in ui tests 2017-11-03 13:38:26 +01:00
Mikhail Modin
d6dfec124f improve compiletest output for errors from mir-opt tests 2017-11-02 16:41:40 +03:00
bors
2379faa933 Auto merge of #45468 - Xanewok:crate-source, r=nrc
Emit crate disambiguators in save-analysis data

Needed for https://github.com/nrc/rls-analysis/issues/93.
Blocked by https://github.com/nrc/rls-data/pull/11. (For now, this pulls my branch [rls-data/crate-source](https://github.com/Xanewok/rls-data/tree/crate-source))

This will allow to disambiguate different crates types/versions when indexing resulting save-analysis data (most importantly allow to support bin+lib and different crate versions).

r? @nrc
2017-11-02 03:36:50 +00:00
bors
2be4cc0402 Auto merge of #45538 - nikomatsakis:nll-liveness, r=pnkfelix
enable non-lexical lifetimes in the MIR borrow checker

This PR, joint work with @spastorino, fills out the NLL infrastructure and integrates it with the borrow checker. **Don't get too excited:** it includes still a number of hacks (the subtyping code is particularly hacky). However, it *does* kinda' work. =)

The final commit demonstrates this by including a test that -- with both the AST borrowck and MIR borrowck -- reports an error by default. But if you pass `-Znll`, you only get an error from the AST borrowck, demonstrating that the integration succeeds:

```
struct MyStruct {
    field: String
}

fn main() {
    let mut my_struct = MyStruct { field: format!("Hello") };

    let value = &my_struct.field;
    if value.is_empty() {
        my_struct.field.push_str("Hello, world!");
        //~^ ERROR cannot borrow (Ast)
    }
}
```
2017-11-01 18:14:13 +00:00
kennytm
028455082e Rollup merge of #45671 - est31:master, r=alexcrichton
Tidy: track rustc_const_unstable feature gates as well

This is important for the unstable book stub generation.
2017-11-01 13:32:21 +08:00
bors
fc3e12a03c Auto merge of #45187 - GuillaumeGomez:doc-ui-improvement, r=QuietMisdreavus
Improve sidebar rendering and add methods list

I suppose it can be reviewed as is, but this is just the first step of a more global plan.

cc @rust-lang/docs @nical

And a screenshot of course:

<img width="1440" alt="screen shot 2017-10-10 at 23 38 45" src="https://user-images.githubusercontent.com/3050060/31412170-657beaf6-ae14-11e7-9f01-1e562a034595.png">
2017-11-01 01:45:58 +00:00
Igor Matuszewski
b4ffedee67 Update rls so it compiles with #45468 2017-11-01 00:48:26 +01:00
est31
6a16a7c05b Also support macro generated atomic types
This is kind of a hack but it works...
2017-10-31 21:46:05 +01:00
est31
911e476cbe Tidy: track rustc_const_unstable feature gates as well
This is important for the unstable book stub generation.
2017-10-31 21:39:32 +01:00
Niko Matsakis
99aa313636 runtest: fix mir directory and delete outdated MIR files 2017-10-31 12:41:41 -04:00
bors
f57c55d54d Auto merge of #45550 - kennytm:update-xsv, r=BurntSushi
cargotest: Update xsv.

This fixes a flaky test which caused spurious failures in #45348 and #45380.
2017-10-31 00:53:12 +00:00
bors
875ec8d597 Auto merge of #45618 - kennytm:update-cargo, r=alexcrichton
Update cargo.

Brings in rust-lang/cargo#4672, unbreaks nightly on macOS APFS.

Fixes #45607.

r? @alexcrichton
2017-10-30 02:33:52 +00:00
bors
dae6868637 Auto merge of #45424 - petrochenkov:grlint, r=oli-obk
Add several lints into `unused` lint group

Also a couple of obsolete (not reported) lints are removed.

r? @oli-obk
2017-10-29 23:59:07 +00:00
bors
90ef3372e8 Auto merge of #45597 - DSpeckhals:rustfmt-update, r=nrc
tools: Update rustfmt and re-enable testing

This allows rustfmt and the RLS to test and compile again.
2017-10-29 21:25:12 +00:00
Dustin Speckhals
e3bf19d8d4 Update rustfmt again 2017-10-29 15:16:02 -04:00