Commit graph

2015 commits

Author SHA1 Message Date
Alexander Regueiro
ac9dd1bd0c Fixed up a few comments. 2019-07-06 03:31:18 +01:00
Mazdak Farrokhzad
cc453d9895
Rollup merge of #62406 - Mark-Simulacrum:warnings-lint, r=RalfJung
Lint on invalid values passed to x.py --warnings

This also introduces support for `--warnings allow` and fixes --warnings
being overridden by the configuration file, config.toml.

Fixes #62402

r? @RalfJung
2019-07-05 20:27:06 +02:00
Mazdak Farrokhzad
485a084b45
Rollup merge of #61545 - flip1995:internal_lints, r=oli-obk
Implement another internal lints

cc #49509

This adds ~~two~~ one internal lint~~s~~:
1. LINT_PASS_IMPL_WITHOUT_MACRO: Make sure, that the `{declare,impl}_lint_pass` macro is used to implement lint passes. cc #59669
2. ~~USAGE_OF_TYCTXT_AND_SPAN_ARGS: item 2 on the list in #49509~~

~~With 2. I wasn't sure, if this lint should be applied everywhere. That means a careful review of 0955835 would be great. Also 73fb9b4 allows this lint on some functions. Should I also apply this lint there?~~

TODO (not directly relevant for review):
- [ ] https://github.com/rust-lang/rust/pull/59316#discussion_r280186517 (not sure yet, if this works or how to query for `rustc_private`, since it's not in [`Features`](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/feature_gate/struct.Features.html) 🤔 cc @eddyb)
- [x] https://github.com/rust-lang/rust/pull/61735#discussion_r292389870
- [x] Check explicitly for the `{declare,impl}_lint_pass!` macros

r? @oli-obk
2019-07-05 20:26:51 +02:00
Mark Rousskov
f01e5e6ce7 Lint on invalid values passed to x.py --warnings
This also introduces support for `--warnings allow` and fixes --warnings
being overridden by the configuration file, config.toml.
2019-07-05 10:14:24 -04:00
Mark Rousskov
8a7dded1a2 Switch master to 1.38 2019-07-04 11:26:57 -04:00
Mazdak Farrokhzad
0721364f0d
Rollup merge of #61755 - Centril:compiletest-force-check, r=petrochenkov
Add `--pass $mode` to compiletest through `./x.py`

Adds a flag `--pass $mode` to compiletest, which is exposed through `./x.py`.

When `--pass $mode` is passed, `{check,build,compile,run}-pass` tests will be forced to run under the given `$mode` unless the directive `// ignore-pass` exists in the test file.

The modes are explained in https://github.com/rust-lang/rust/pull/61778:
- `check` has the same effect as `cargo check`
- `build` or `compile` have the same effect as `cargo build`
- `run` has the same effect as `cargo run`

On my machine, `./x.py -i test src/test/run-pass --stage 1 --pass check` takes 38 seconds whereas it takes 2 min 7 seconds without `--pass check`.

cc https://github.com/rust-lang/rust/issues/61712

r? @petrochenkov
2019-06-29 11:18:07 +02:00
bors
40ab9d2bd5 Auto merge of #61765 - Keruspe:rustbuild-cxx, r=alexcrichton
rustbuild: detect cxx for all targets

Replaces #61544
Fixes #59917

We need CXX to build llvm-libunwind which can be enabled for alltargets.
As we needed it for all hosts anyways, just move the detection so that it is ran for all targets (which contains all hosts) instead.
2019-06-25 12:07:19 +00:00
flip1995
8e087cdd98
Use symbols in lint tool list 2019-06-24 18:14:04 +02:00
flip1995
7de6f54728
Turn internal lints into tool lints 2019-06-24 10:45:21 +02:00
flip1995
08b81f2d07
Rename internal -> rustc::internal 2019-06-24 10:45:20 +02:00
flip1995
084c829fb8
Enable internal lints in bootstrap 2019-06-24 10:45:20 +02:00
Marc-Antoine Perennou
087cd77d96 rustbuild: always set cxx for build host
Even if it's not in hosts

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-24 09:12:24 +02:00
Mazdak Farrokhzad
a56a6d7525 bootstrap: pass '--pass' on to compiletest. 2019-06-24 07:58:37 +02:00
Mark Rousskov
2b6371dbfb Make tidy quieter by default 2019-06-23 09:09:44 -04:00
Marc-Antoine Perennou
870f13a0b3 rustbuild: only autodetect cxx for hosts
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-21 14:02:05 +02:00
Eric Huss
2dafa91310 Update mdbook 2019-06-20 19:47:44 -07:00
bors
a6a8f6c5b3 Auto merge of #61864 - lzutao:ptr-null, r=sfackler
Make use of `ptr::null(_mut)` instead of casting zero

There are few places that I don't replace the zero casting pointer with `ptr::null`
or `ptr::null_mut`:
```bash
% git grep -E '[ ([{]0 as \*'
src/libcore/ptr/mod.rs:216:pub const fn null<T>() -> *const T { 0 as *const T }
src/libcore/ptr/mod.rs:231:pub const fn null_mut<T>() -> *mut T { 0 as *mut T }
src/test/run-pass/consts/const-cast-ptr-int.rs:12:static a: TestStruct = TestStruct{x: 0 as *const u8};
src/test/ui/issues/issue-45730.rs:5:    let x: *const _ = 0 as *const _; //~ ERROR cannot cast
src/test/ui/issues/issue-45730.rs:8:    let x = 0 as *const i32 as *const _ as *mut _; //~ ERROR cannot cast
src/test/ui/issues/issue-45730.stderr:14:LL |     let x: *const _ = 0 as *const _;
src/test/ui/issues/issue-45730.stderr:24:LL |     let x = 0 as *const i32 as *const _ as *mut _;
src/test/ui/lint/lint-forbid-internal-unsafe.rs:15:    println!("{}", evil!(*(0 as *const u8)));
src/test/ui/order-dependent-cast-inference.rs:5:    let mut y = 0 as *const _;
src/test/ui/order-dependent-cast-inference.stderr:4:LL |     let mut y = 0 as *const _;
```

r? @sfackler
2019-06-18 05:16:26 +00:00
Lzu Tao
7d69d4ced2 Make use of ptr::null(_mut) instead of casting zero 2019-06-17 10:52:46 +00:00
bors
289b78ac0a Auto merge of #58508 - Zoxc:time-crate, r=oli-obk
Add a RUSTC_TIME env var to time rust crates during bootstrap

Blocked on https://github.com/rust-lang/cargo/pull/6674

r? @michaelwoerister

Example for rustc with https://github.com/rust-lang/rust/pull/58507:
```
  time: 0.460; rss: 94MB	parsing
  time: 0.000; rss: 94MB	attributes injection
  time: 0.000; rss: 94MB	recursion limit
  time: 0.000; rss: 94MB	crate injection
  time: 0.000; rss: 94MB	plugin loading
  time: 0.000; rss: 94MB	plugin registration
  time: 0.044; rss: 94MB	pre ast expansion lint checks
    time: 1.999; rss: 316MB	expand crate
    time: 0.000; rss: 316MB	check unused macros
  time: 2.000; rss: 316MB	expansion
  time: 0.000; rss: 316MB	maybe building test harness
  time: 0.053; rss: 316MB	AST validation
  time: 0.000; rss: 316MB	maybe creating a macro crate
  time: 1.515; rss: 397MB	name resolution
  time: 0.122; rss: 397MB	complete gated feature checking
  time: 0.655; rss: 546MB	lowering ast -> hir
  time: 0.136; rss: 550MB	early lint checks
    time: 0.117; rss: 540MB	validate hir map
  time: 0.606; rss: 540MB	indexing hir
  time: 0.000; rss: 480MB	load query result cache
  time: 0.000; rss: 478MB	dep graph tcx init
  time: 0.000; rss: 478MB	looking for entry point
  time: 0.001; rss: 478MB	looking for plugin registrar
  time: 0.001; rss: 478MB	looking for derive registrar
  time: 0.049; rss: 478MB	loop checking
  time: 0.064; rss: 479MB	attribute checking
  time: 0.166; rss: 484MB	stability checking
  time: 0.699; rss: 566MB	type collecting
  time: 0.006; rss: 566MB	outlives testing
  time: 0.018; rss: 568MB	impl wf inference
    time: 0.002; rss: 583MB	unsafety checking
    time: 0.005; rss: 583MB	orphan checking
  time: 0.227; rss: 583MB	coherence checking
  time: 0.006; rss: 583MB	variance testing
  time: 1.546; rss: 657MB	wf checking
  time: 0.389; rss: 665MB	item-types checking
  time: 13.999; rss: 837MB	item-bodies checking
    time: 1.692; rss: 883MB	rvalue promotion
    time: 0.067; rss: 883MB	intrinsic checking
    time: 0.624; rss: 887MB	match checking
    time: 0.246; rss: 889MB	liveness checking
  time: 2.629; rss: 889MB	misc checking
  time: 0.000; rss: 889MB	borrow checking
  time: 16.754; rss: 1242MB	MIR borrow checking
  time: 0.050; rss: 1242MB	dumping chalk-like clauses
  time: 0.010; rss: 1242MB	MIR effect checking
  time: 0.001; rss: 1242MB	layout testing
    time: 0.829; rss: 1244MB	privacy checking
    time: 0.183; rss: 1247MB	death checking
    time: 0.100; rss: 1248MB	unused lib feature checking
    time: 0.405; rss: 1250MB	lint checking
  time: 1.518; rss: 1250MB	misc checking
  time: 0.000; rss: 1250MB	resolving dependency formats
    time: 2.928; rss: 1332MB	write metadata
      time: 0.014; rss: 1332MB	collecting roots
      time: 7.621; rss: 1488MB	collecting mono items
    time: 7.635; rss: 1488MB	monomorphization collection
    time: 0.557; rss: 1567MB	codegen unit partitioning
    time: 27.971; rss: 2656MB	codegen to LLVM IR
    time: 0.056; rss: 2656MB	assert dep graph
    time: 0.000; rss: 2656MB	serialize dep graph
  time: 195.414; rss: 2656MB	codegen
  time: 0.000; rss: 329MB	serialize work products
    time: 1.664; rss: 331MB	running linker
  time: 1.965; rss: 331MB	linking
[RUSTC-TIMING] rustc test:false 950.103
```
It doesn't really look like the times add up here.
2019-06-17 09:59:57 +00:00
chansuke
c77d3ae9f2 Separate bootstrap module 2019-06-16 14:17:01 +03:00
Mazdak Farrokhzad
4d528197a0
Rollup merge of #61829 - Keruspe:libunwind-src, r=alexcrichton
rustbuild: include llvm-libunwind in dist tarball

Without this we cannot build with llvm-libunwind enabled from a release tarball.

Could it be backported in a beta rollup somehow so that this gets fixed before 1.36 is released?
2019-06-16 06:05:15 +02:00
Mazdak Farrokhzad
7d99652783
Rollup merge of #61704 - petrhosek:llvm-linker-flags, r=alexcrichton
Pass LLVM linker flags to librustc_llvm build

Some -L and -l flags may be needed even when building librustc_llvm,
for example when using static libc++ on Linux we may need to manually
specify the library search path and -ldl -lpthread as additional link
dependencies. We pass LLVM linker flags from config to librustc_llvm
build to make sure these cases are handled.
2019-06-16 06:05:14 +02:00
Marc-Antoine Perennou
4d5f97e833 rustbuild: include llvm-libunwind in dist tarball
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-14 11:24:59 +02:00
Marc-Antoine Perennou
c682ac9528 rustbuild: set cxx for hosts even if not configured
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-13 17:41:03 +02:00
Mark Rousskov
d728d27ef3 Remove unnecessary Std dependency 2019-06-13 08:57:55 -06:00
Mark Rousskov
11543585c2 Delete unused fields on Crate struct 2019-06-13 08:57:55 -06:00
Mark Rousskov
7234d8cb5e Inline prepare_tool_cmd
Removing the tool argument in the previous commit means it's no longer
restricted to just bootstrap tools despite being written as such.
Inlining it prevents accidental use.
2019-06-13 08:57:55 -06:00
Mark Rousskov
0e14818321 Delete unnecessary command 2019-06-13 08:57:55 -06:00
Mark Rousskov
92f5e58ccc Delete Rustbook step
There's no need to have it given it merely forwarded to RustbookSrc.
2019-06-13 08:57:55 -06:00
Marc-Antoine Perennou
fdecfe4ca5 rustbuild: don't set cxx if not configured
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-13 16:21:42 +02:00
Marc-Antoine Perennou
00b6015c07 rustbuild: fix default value for cxx
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-13 10:05:47 +02:00
Mazdak Farrokhzad
555b2d9250
Rollup merge of #61762 - Keruspe:rustbuild-libtest-fix, r=Mark-Simulacrum
rustbuild: fix libtest_stamp

Looks like an obvious copy/paste typo
2019-06-13 01:49:33 +02:00
Mazdak Farrokhzad
4cbae09efa
Rollup merge of #61750 - tmandry:fix-install, r=Mark-Simulacrum
Fix x.py install

Make sure we look for save analysis in the right place. Fixes #61703.

r? @Mark-Simulacrum
cc @petrhosek @cramertj
2019-06-13 01:49:31 +02:00
John Kåre Alsaker
a0c7984fb9 Add a RUSTC_TIME env var to time rust crates during bootstrap 2019-06-12 23:22:57 +02:00
Marc-Antoine Perennou
59eac97869 rustbuild: detect cxx for all targets
Replaces #61544
Fixes #59917

We need CXX to build llvm-libunwind which can be enabled for all
targets.
As we needed it for all hosts anyways, just move the detection so that
it is ran for all targets (which contains all hosts) instead.

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-12 12:24:59 +02:00
Marc-Antoine Perennou
e7b5586cd6 rustbuild: fix libtest_stamp
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-12 10:18:16 +02:00
Mazdak Farrokhzad
4748b5b13d
Rollup merge of #61734 - mati865:books, r=alexcrichton
Migrate rust-by-example to MdBook2
2019-06-12 04:22:56 +02:00
Mazdak Farrokhzad
adea1317c2
Rollup merge of #61705 - petrhosek:llvm-cflags, r=alexcrichton
Pass cflags rather than cxxflags to LLVM as CMAKE_C_FLAGS

We mistakenly pass cxxflags from the configuration to LLVM build as
CMAKE_C_FLAGS.
2019-06-12 04:22:55 +02:00
Tyler Mandry
4f3cd3ca07 Fix x.py install
Make sure we look for save analysis in the right place. Fixes #61703.
2019-06-11 14:27:37 -07:00
Mateusz Mikuła
7d3211339b Migrate rust-by-example to MdBook2 2019-06-11 11:49:38 +02:00
Petr Hosek
48f205d496 Pass LLVM linker flags to librustc_llvm build
Some -L and -l flags may be needed even when building librustc_llvm,
for example when using static libc++ on Linux we may need to manually
specify the library search path and -ldl -lpthread as additional link
dependencies. We pass LLVM linker flags from config to librustc_llvm
build to make sure these cases are handled.
2019-06-10 19:50:34 -07:00
bors
ad3829fd66 Auto merge of #61706 - petrhosek:bootstrap-cp-r, r=Mark-Simulacrum
Use Build::read_dir instead of fs::read_dir in Build::cp_r

Build::read_dir does better error handling when the directory doesn't
exist; it actually prints the name of the directory rather than just
printing the underlying error "No such file or directory" which on
its own isn't very useful.
2019-06-10 02:35:29 +00:00
Petr Hosek
449db68910 Use Build::read_dir instead of fs::read_dir in Build::cp_r
Build::read_dir does better error handling when the directory doesn't
exist; it actually prints the name of the directory rather than just
printing the underlying error "No such file or directory" which on
its own isn't very useful.
2019-06-09 16:57:17 -07:00
Petr Hosek
715578ea57 Pass cflags rather than cxxflags to LLVM as CMAKE_C_FLAGS
We mistakenly pass cxxflags from the configuration to LLVM build as
CMAKE_C_FLAGS.
2019-06-09 16:53:46 -07:00
Mark Rousskov
367b031d88 Clarify when we run steps with ONLY_HOSTS 2019-06-07 08:40:30 -06:00
bors
8b36867093 Auto merge of #61583 - Centril:rollup-ug2cbfd, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #61556 (librustc_errors: Rename AnnotateRs -> AnnotateSnippet)
 - #61557 (rustbuild: Include `rustfmt` in deduplicated dependencies)
 - #61571 (Escape HashMap with backticks in needs_drop docs)
 - #61582 (submodules: update clippy from 20da8f45 to 71be6f62)

Failed merges:

r? @ghost
2019-06-06 12:13:54 +00:00
Mark Rousskov
bea2e55efa Utilize cfg(bootstrap) over cfg(stage0)
Also removes stage1, stage2 cfgs being passed to rustc to ensure that
stage1 and stage2 are only differentiated as a group (i.e., only through
not bootstrap).
2019-06-05 17:57:58 -06:00
Alex Crichton
f708228508 rustbuild: Include rustfmt in deduplicated dependencies
Currently `rustfmt` is excluded from the "don't build dependencies
twice" check but it's currently building dependencies twice! Namely big
dependencies like `rustc-ap-syntax` are built once for rustfmt and once
for the RLS. This commit includes `rustfmt` in these checks and then
fixes the resulting feature mismatches for winapi.
2019-06-05 12:40:02 -07:00
Mark Rousskov
5ce3c8137b Treat 0 as special value for codegen-units-std
Fixes #57669
2019-06-03 12:57:29 -06:00
Mateusz Mikuła
dacf19cb59 Migrate nomicon book to MdBook2 2019-05-30 14:30:59 +02:00