Commit graph

16347 commits

Author SHA1 Message Date
Andy Russell
90a87be9cb
make compose_and_run_compiler take Command 2017-08-16 11:45:06 -04:00
Andy Russell
0a666f87ca
remove working_dir argument 2017-08-16 11:45:06 -04:00
Andy Russell
e385bc5bcc
let compose_and_run take a Command 2017-08-16 11:45:05 -04:00
Andy Russell
6601ffca07
replace procsrv functions with Command 2017-08-16 11:45:05 -04:00
Zack M. Davis
1b6c9605e4 use field init shorthand EVERYWHERE
Like #43008 (f668999), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
Oliver Schneider
b9e4bdbf60
Add a Cargo.lock to clippy 2017-08-15 18:28:10 +02:00
Oliver Schneider
1766992662 Add clippy as a submodule 2017-08-15 17:31:28 +02:00
Mark Simulacrum
82cdf1006e Cargotest needs only one rustdoc.exe to exist on Windows 2017-08-13 05:15:44 +05:00
Guillaume Gomez
643231313a Rollup merge of #43632 - ruuda:allow-long-relative-urls, r=Mark-Simulacrum
Detect relative urls in tidy check

This came up in #43631: there can be long relative urls in Markdown comments, that do not start with `http://` or `https://`, so the tidy check will not detect them as urls and complain about the line length. This PR adds detection of relative urls starting with `../`.
2017-08-11 10:20:17 +02:00
bors
6c5212ffa0 Auto merge of #43589 - aidanhs:aphs-fix-system-malloc, r=alexcrichton
Make a disable-jemalloc build work

Fixes #43510. I've tested this up to building a stage1 compiler.

r? @alexcrichton

cc @cuviper @vorner

@cuviper your fix was almost correct, you just had a stray `!` in there which caused the second error you saw.
2017-08-10 22:32:51 +00:00
Aidan Hobson Sayers
56a07539c0 Fix cross-crate global allocators on windows 2017-08-10 16:22:09 +01:00
bors
2400ebfe76 Auto merge of #43522 - alexcrichton:rewrite-lints, r=michaelwoerister
rustc: Rearchitect lints to be emitted more eagerly

In preparation for incremental compilation this commit refactors the lint
handling infrastructure in the compiler to be more "eager" and overall more
incremental-friendly. Many passes of the compiler can emit lints at various
points but before this commit all lints were buffered in a table to be emitted
at the very end of compilation. This commit changes these lints to be emitted
immediately during compilation using pre-calculated lint level-related data
structures.

Linting today is split into two phases, one set of "early" lints run on the
`syntax::ast` and a "late" set of lints run on the HIR. This commit moves the
"early" lints to running as late as possible in compilation, just before HIR
lowering. This notably means that we're catching resolve-related lints just
before HIR lowering. The early linting remains a pass very similar to how it was
before, maintaining context of the current lint level as it walks the tree.

Post-HIR, however, linting is structured as a method on the `TyCtxt` which
transitively executes a query to calculate lint levels. Each request to lint on
a `TyCtxt` will query the entire crate's 'lint level data structure' and then go
from there about whether the lint should be emitted or not.

The query depends on the entire HIR crate but should be very quick to calculate
(just a quick walk of the HIR) and the red-green system should notice that the
lint level data structure rarely changes, and should hopefully preserve
incrementality.

Overall this resulted in a pretty big change to the test suite now that lints
are emitted much earlier in compilation (on-demand vs only at the end). This in
turn necessitated the addition of many `#![allow(warnings)]` directives
throughout the compile-fail test suite and a number of updates to the UI test
suite.

Closes https://github.com/rust-lang/rust/issues/42511
2017-08-10 11:20:15 +00:00
bors
d21ec9b4ef Auto merge of #43582 - ivanbakel:unused_mut_ref, r=arielb1
Fixed mutable vars being marked used when they weren't

#### NB : bootstrapping is slow on my machine, even with `keep-stage` - fixes for occurances in the current codebase are <s>in the pipeline</s> done. This PR is being put up for review of the fix of the issue.

Fixes #43526, Fixes #30280, Fixes #25049

### Issue
Whenever the compiler detected a mutable deref being used mutably, it marked an associated value as being used mutably as well. In the case of derefencing local variables which were mutable references, this incorrectly marked the reference itself being used mutably, instead of its contents - with the consequence of making the following code emit no warnings
```
fn do_thing<T>(mut arg : &mut T) {
    ... // don't touch arg - just deref it to access the T
}
```

### Fix
Make dereferences not be counted as a mutable use, but only when they're on borrows on local variables.
#### Why not on things other than local variables?
  * Whenever you capture a variable in a closure, it gets turned into a hidden reference - when you use it in the closure, it gets dereferenced. If the closure uses the variable mutably, that is actually a mutable use of the thing being dereffed to, so it has to be counted.
  * If you deref a mutable `Box` to access the contents mutably, you are using the `Box` mutably - so it has to be counted.
2017-08-10 08:53:22 +00:00
Isaac van Bakel
8f78d453de Updated cargo submodule to fix compile error 2017-08-10 02:00:48 +01:00
Alex Crichton
0374e6aab7 rustc: Rearchitect lints to be emitted more eagerly
In preparation for incremental compilation this commit refactors the lint
handling infrastructure in the compiler to be more "eager" and overall more
incremental-friendly. Many passes of the compiler can emit lints at various
points but before this commit all lints were buffered in a table to be emitted
at the very end of compilation. This commit changes these lints to be emitted
immediately during compilation using pre-calculated lint level-related data
structures.

Linting today is split into two phases, one set of "early" lints run on the
`syntax::ast` and a "late" set of lints run on the HIR. This commit moves the
"early" lints to running as late as possible in compilation, just before HIR
lowering. This notably means that we're catching resolve-related lints just
before HIR lowering. The early linting remains a pass very similar to how it was
before, maintaining context of the current lint level as it walks the tree.

Post-HIR, however, linting is structured as a method on the `TyCtxt` which
transitively executes a query to calculate lint levels. Each request to lint on
a `TyCtxt` will query the entire crate's 'lint level data structure' and then go
from there about whether the lint should be emitted or not.

The query depends on the entire HIR crate but should be very quick to calculate
(just a quick walk of the HIR) and the red-green system should notice that the
lint level data structure rarely changes, and should hopefully preserve
incrementality.

Overall this resulted in a pretty big change to the test suite now that lints
are emitted much earlier in compilation (on-demand vs only at the end). This in
turn necessitated the addition of many `#![allow(warnings)]` directives
throughout the compile-fail test suite and a number of updates to the UI test
suite.
2017-08-09 09:13:51 -07:00
Nick Cameron
17d5f6a086 update rls 2017-08-07 12:16:04 +12:00
Ruud van Asseldonk
608863d817 Only allow long relative urls after a link label
Yellow is indeed a nice color for a bikeshed.
2017-08-04 13:24:00 +02:00
Ruud van Asseldonk
5b30cc178a Detect relative urls in tidy check 2017-08-03 21:13:27 +02:00
Nick Cameron
5abbf798e7 Update RLS 2017-08-02 17:53:37 +12:00
bors
53bf7903fa Auto merge of #43009 - GuillaumeGomez:unused-doc-comments, r=nrc
Throw errors when doc comments are added where they're unused

#42617
2017-07-29 23:01:45 +00:00
Guillaume Gomez
3142ca0a65 Update rls submodule 2017-07-29 22:52:18 +02:00
Guillaume Gomez
5636d325ed Update cargo version 2017-07-29 15:11:31 +02:00
Mark Simulacrum
4e5333cb2b Don't needlessly build rustdoc for compiletest.
For most tests, rustdoc isn't needed, so avoid building it.
2017-07-27 05:51:22 -06:00
Mark Simulacrum
e2e9b40e9a Build rustdoc on-demand.
Rustdoc is no longer compiled in every stage, alongside rustc, instead
it is only compiled when requested, and generally only for the last
stage.
2017-07-27 05:51:22 -06:00
bors
d02fb3bcf4 Auto merge of #42059 - derekdreery:bugfix/fix_emscripten_tests, r=alexcrichton
Make compiletest set cwd before running js tests

Proposed fix for #38800.

Not all tests pass yet - I will mention failures here once the test suite has finished.
2017-07-26 18:27:19 +00:00
bors
2fc3aec431 Auto merge of #43485 - nrc:rls-env-fix, r=Mark-Simulacrum
Update RLS

This pulls in 79d659e569 It should fix #43453. It increases the timeout for test runs and forces builds in RLS tests to happen sequentially, this prevents interference between env vars passed to Cargo or rustc.

r? @Mark-Simulacrum
2017-07-26 14:08:50 +00:00
Nick Cameron
b23c83e0c2 Update RLS 2017-07-26 18:51:32 +12:00
bors
bad58f2791 Auto merge of #43226 - alexcrichton:aarch64-ci, r=aidanhs
Add a disabled builder for aarch64 emulated tests

This commit adds a disabled builder which will run all tests for the standard
library for aarch64 in a QEMU instance. Once we get enough capacity to run this
on Travis this can be used to boost our platform coverage of AArch64
2017-07-26 03:53:46 +00:00
Alex Crichton
9010567dcc Bump master to 1.21.0
This commit bumps the master branch's version to 1.21.0 and also updates the
bootstrap compiler from the freshly minted beta release.
2017-07-25 07:03:19 -07:00
Alex Crichton
8ef3f69ffb Add a disabled builder for aarch64 emulated tests
This commit adds a disabled builder which will run all tests for the standard
library for aarch64 in a QEMU instance. Once we get enough capacity to run this
on Travis this can be used to boost our platform coverage of AArch64
2017-07-24 16:24:52 -07:00
Mark Simulacrum
295a789abf Rollup merge of #43342 - ranweiler:no-std-exe-docs, r=alexcrichton
Document use of `compiler_builtins` with `no_std` binaries

See discussion in #43264.

The docs for the `compiler_builtins_lib` feature were removed in
PR #42899. But, though the `compiler_builtins` library has been
migrated out-of-tree, the language feature remains, and is needed to
use the stand-alone crate. So, we reintroduce the docs for the
feature, and add a reference to them when describing how to create a
`no_std` executable.
2017-07-24 09:16:32 -06:00
bors
513906c43d Auto merge of #43327 - nrc:rls-config, r=eddyb
Use a config struct for save-analysis

Replaces some existing customisation options, including removing the -Zsave-analysis-api flag

r? @eddyb
2017-07-24 07:29:25 +00:00
Nick Cameron
ad8ecc20a2 Point RLS submodule at a branch with required changes
And cargo update
2017-07-24 17:25:15 +12:00
bors
8d22af87d8 Auto merge of #43059 - Mark-Simulacrum:rustbuild-2.0, r=alexcrichton
Rework Rustbuild to an eagerly compiling approach

This introduces a new dependency on `serde`; I don't believe that's a problem since bootstrap is compiled with nightly/beta always so proc macros are available. Compile times are slightly longer -- about 2-3x (30 seconds vs. 10 seconds). I don't think this is too big a problem, especially since recompiling bootstrap is somewhat rare. I think we can remove the dependency on Serde if necessary, though, so let me know.

r? @alexcrichton
2017-07-22 18:27:29 +00:00
Simon Sapin
b77ff24060 Update Cargo to ffab51954ec32d55631c37a8730bb24915fc090b
https://github.com/rust-lang/cargo/pull/4123 added the [patch] section of the manifest
2017-07-21 11:13:18 +02:00
Joe Ranweiler
9d0946acd0
Tell tidy about compiler_builtins_lib feature
After the work in #42899, it no longer auto-discovers it.
2017-07-20 21:49:05 -07:00
Mark Simulacrum
a1fa2681cf Update to toml 0.4 2017-07-20 11:23:59 -06:00
bors
28486e7f90 Auto merge of #43247 - est31:master, r=alexcrichton
Tidy: allow common lang+lib features

This allows changes to the Rust language that have both library
and language components share one feature gate.

The feature gates need to be "about the same change", so that both
library and language components must either be both unstable, or
both stable, and share the tracking issue.

Removes the ugly "proc_macro" exception added by #40939.

Closes #43089
2017-07-20 00:11:40 +00:00
Richard Dodd
5aa8cc8412 Only set cwd for test process, not compiler 2017-07-17 17:01:01 +01:00
Richard Dodd
c35030af87 Try running all tests using cwd 2017-07-17 17:01:01 +01:00
Richard Dodd
f4e329f178 Make compiletest set cwd before running js tests 2017-07-17 17:01:01 +01:00
Nick Cameron
04415dc64c Run RLS tests 2017-07-17 17:21:46 +12:00
Nick Cameron
25797938b0 Remove exception from license check for strings.rs 2017-07-17 17:21:46 +12:00
bors
c4373bd6a2 Auto merge of #43207 - alexcrichton:update-cargo, r=nikomatsakis
Update the `cargo` submodule

Notably pull in an update to the `jobserver` crate to have Cargo set the
`CARGO_MAKEFLAGS` environment variable instead of the `MAKEFLAGS` environment
variable.

cc https://github.com/rust-lang/rust/issues/42635
2017-07-15 11:02:35 +00:00
est31
94fc09c68f Tidy: allow common lang+lib features
This allows changes to the Rust language that have both library
and language components share one feature gate.

The feature gates need to be "about the same change", so that both
library and language components must either be both unstable, or
both stable, and share the tracking issue.

Removes the ugly "proc_macro" exception.

Closes #43089
2017-07-15 05:53:58 +02:00
Alex Crichton
bdcebc938b Update the cargo submodule
Notably pull in an update to the `jobserver` crate to have Cargo set the
`CARGO_MAKEFLAGS` environment variable instead of the `MAKEFLAGS` environment
variable.
2017-07-13 07:54:28 -07:00
Oliver Schneider
cb92ab93a2 Reduce the usage of features in compiletest and libtest 2017-07-13 16:37:57 +02:00
steveklabnik
4871dba5d4 update crate dependencies
I wanted to update mdbook's version. This ended up updating a bunch of other stuff too.
2017-07-11 21:18:44 -04:00
kennytm
4582ecda64
compiletest: Support custom normalization rules. 2017-07-11 16:57:52 +08:00
kennytm
18712e6edf
compiletest: Refactor: Move the ignore-{} logic into its own method.
Prepare for `normalize-std???` which will share the same logic.
Added `ignore-32bit` and `ignore-64bit`.
2017-07-11 16:15:59 +08:00