Commit graph

4073 commits

Author SHA1 Message Date
bors
2a9dc245c6 Auto merge of #52755 - kennytm:update-rustfmt, r=nrc
Update rustfmt and RLS
2018-07-29 11:27:48 +00:00
bors
023fd7e74a Auto merge of #52767 - ljedrz:avoid_format, r=petrochenkov
Prefer to_string() to format!()

Simple benchmarks suggest in some cases it can be faster by even 37%:
```
test converting_f64_long  ... bench:         339 ns/iter (+/- 199)
test converting_f64_short ... bench:         136 ns/iter (+/- 34)
test converting_i32_long  ... bench:          87 ns/iter (+/- 16)
test converting_i32_short ... bench:          87 ns/iter (+/- 49)
test converting_str       ... bench:          54 ns/iter (+/- 15)
test formatting_f64_long  ... bench:         349 ns/iter (+/- 176)
test formatting_f64_short ... bench:         145 ns/iter (+/- 14)
test formatting_i32_long  ... bench:          98 ns/iter (+/- 14)
test formatting_i32_short ... bench:          93 ns/iter (+/- 15)
test formatting_str       ... bench:          86 ns/iter (+/- 23)
```
2018-07-29 09:33:37 +00:00
kennytm
a28e3d28aa
Copy the test_data/ RLS tests into a writable directory.
See rust-lang-nursery/rls#966 for details.
2018-07-29 15:12:47 +08:00
ljedrz
421b2ba347 Don't format!() string literals 2018-07-28 17:58:52 +02:00
ljedrz
57a5a9b054 Prefer to_string() to format!() 2018-07-27 11:11:18 +02:00
Tatsuyuki Ishi
62f73dc87c Refactor is_external_tool into source_type 2018-07-26 12:36:58 +09:00
Tatsuyuki Ishi
a89f8e1340 bootstrap: use prepare_tool_cargo everywhere
In this way, RUSTC_NO_PREFER_DYNAMIC is already specified and not
needed.
2018-07-25 14:49:23 +09:00
Tatsuyuki Ishi
1075ced5bc Discriminate between external and optional tools 2018-07-25 10:25:29 +09:00
Tatsuyuki Ishi
e098985939 Deny bare_trait_objects globally 2018-07-25 10:25:29 +09:00
kennytm
3efc612a93
Rollup merge of #52642 - ljedrz:expect_fun_call, r=Mark-Simulacrum
Replace a few expect+format combos with unwrap_or_else+panic

That way the error strings won't be created if the related errors are not triggered.
2018-07-24 09:50:00 +08:00
kennytm
4084f0ee8a
Rollup merge of #52627 - Mark-Simulacrum:rustdoc-test-correct, r=alexcrichton
Compile rustc before building tests for rustdoc

r? @alexcrichton
2018-07-24 09:49:55 +08:00
ljedrz
fe588d894f Replace a few expect+format combos with unwrap_or_else+panic 2018-07-23 14:47:13 +02:00
Mark Rousskov
814e6e60f9 Compile rustc before building tests for rustdoc 2018-07-22 14:40:00 -06:00
kennytm
de3cf0c433
Rollup merge of #52594 - Mark-Simulacrum:error-index-stage0, r=alexcrichton
Run the error index tool against the sysroot libdir

Previously when building the error index tool in stage 0 we would
attempt to use stage 0 libraries, but because it depends on rustdoc,
those don't exist: rustdoc is built against stage 1 libraries.

This patch aligns those two and passes the stage 1 libdir to the error
index.

@GuillaumeGomez discovered that this hasn't worked (presumably for a long time now, but not sure).

r? @alexcrichton
2018-07-23 01:00:09 +08:00
kennytm
180ad53576
Rollup merge of #52465 - sekineh:add-ci-thumb, r=alexcrichton
Add CI test harness for `thumb*` targets. [IRR-2018-embedded]

This pull request will do the following (rather trivial) changes:
- Fix #52163. In other words, we enabled `./x.py test src/test/run-make` for `no_std` targets.
- Modify `dist-various-1` Dockerfile.
  - CI now performs `run-make` test run on the targets below:
    - `thumbv6m-none-eabi`
    - `thumbv7m-none-eabi`
    - `thumbv7em-none-eabi`
    - `thumbv7em-none-eabihf`.
- ~~Add `thumb-none` Dockerfile.~~
  - ~~Initially, `thumbv7m-none-eabi`, `thumbv7em-none-eabi` and `thumbv7em-none-eabihf` are included as the tested target. `thumbv6m-none-eabi` is disabled for now because LLVM support is not certain.~~
- ~~Add `thumb-none` to .travis.yml~~

Note:
- `run-make` tests are not implemented yet. This PR is test harness only.

The amount of change is very small, but I'd like to open the pull request while the change is trivial.
Because I'm not very used to pull request process, I want to make a small progress first.  This PR will be a foundation for later additions.

CC @kennytm @jamesmunns @nerdyvaishali
2018-07-22 22:10:10 +08:00
Mark Rousskov
ab0092e0d4 Run the error index tool against the sysroot libdir
Previously when building the error index tool in stage 0 we would
attempt to use stage 0 libraries, but because it depends on rustdoc,
those don't exist: rustdoc is built against stage 1 libraries.

This patch aligns those two and passes the stage 1 libdir to the error
index.
2018-07-21 15:19:39 -06:00
Hideki Sekine
3f00b1c07b Treat no_std(target) == None case correctly. 2018-07-21 22:39:35 +09:00
kennytm
fa9f91d9b1
Rollup merge of #52464 - o01eg:patch-1, r=alexcrichton
Allow clippy to be installed with make install

After #51122 clippy is available as a component but doesn't install when building from source.

This PR allows to install clippy with extended tools.
2018-07-18 22:35:01 +08:00
kennytm
47a1d6b183
Rollup merge of #52439 - o01eg:fix-52317, r=alexcrichton
Revert some changes from #51917 to fix custom libdir

Should fix #52317 also adds `libdir` value to output.
2018-07-18 22:34:57 +08:00
O01eg
3df43098a4
Allow clippy to be installed with make install
After #51122 clippy is available as a component but don't install when building from source.

This PR allows to install clippy with extended tools.
2018-07-17 19:39:54 +03:00
Hideki Sekine
bbc89b2512 Fix rust issue #52163 2018-07-18 00:40:55 +09:00
kennytm
9ea0a8533e
Rollup merge of #52434 - Mark-Simulacrum:incremental-keep-stage, r=alexcrichton
Enable incremental independent of stage

Previously we'd only do so for stage 0 but with keep-stage
improvements it seems likely that we'll see more developers working in
the stage 1, so we should allow enabling incremental for them.
2018-07-17 19:24:53 +08:00
ljedrz
d85bcef467 Calculate the exact capacity for 2 HashMaps 2018-07-16 18:38:33 +02:00
Mark Rousskov
827f656ebb Enable incremental independent of stage
Previously we'd only do so for stage 0 but with keep-stage
improvements it seems likely that we'll see more developers working in
the stage 1, so we should allow enabling incremental for them.

Ideally, the check we probably want is to only enable incremental for
the last compiler build scheduled, but there's no good way to do so
today. Just enabling incremental in all stages should be sufficient;
we may be doing extra work that's needles -- compiling incrementally
something that will never be recompiled in-place -- but that should be
sufficiently unlikely (i.e., users either don't care or won't be
compiling the compiler twice).
2018-07-16 10:33:45 -06:00
O01eg
10b65fa603
Revert some changes from #51917 to fix #52317. 2018-07-16 19:17:14 +03:00
bors
fb8bde03cf Auto merge of #52399 - semarie:llvmtools, r=alexcrichton
Disable LlvmTools packaging with external LLVM

Fixes: #52102
2018-07-15 17:23:31 +00:00
Sébastien Marie
7e7c21492f tidy: avoid long line 2018-07-15 09:58:58 +02:00
Sébastien Marie
3f7ef2d733 Disable LlvmTools packaging with external LLVM
Fixes: #52102
2018-07-15 09:23:36 +02:00
Mark Rousskov
8eddabaafd Change keep-stage to only affect the passed stage
The best way to build a stage 2 rustc is now probably
  ./x.py build --stage 2 src/rustc # once
  ./x.py build --stage 2 --keep-stage 1 src/rustc
2018-07-14 11:00:09 -06:00
Mark Rousskov
a569c249c2 Do not attempt to recompile codegen backend(s) with --keep-stage
Previously we'd attempt to recompile them and that would fail since
we've essentially not built the entire compiler yet, or we're faking
that fact. This commit should make us ignore the codegen backend build
as well.

Unlike the other compile steps, there is no CodegenBackendLink step that
we run here, because that is done later as a part of assembling the
final compiler and as an explicit function call.
2018-07-13 20:15:11 -06:00
kennytm
d8b8402784
Rollup merge of #51962 - crlf0710:patch-2, r=alexcrichton
Provide llvm-strip in llvm-tools component

Shipping this tool gives people reliable way to reduce the generated executable size.

I'm not sure if this strip tool is available from the llvm version current rust is built on. But let's take a look. @japaric
2018-07-14 02:56:37 +08:00
kennytm
c2c6986733
Rollup merge of #52220 - ljedrz:dyn_bootstrap, r=kennytm
Deny bare trait objects in `src/bootstrap`

Enforce `#![deny(bare_trait_objects)]` in `src/bootstrap`.
2018-07-12 20:25:27 +08:00
kennytm
c87e3feaee
Rollup merge of #51816 - nodakai:conf-py-tmpfile, r=kennytm
bootstrap: write texts to a .tmp file first for atomicity

If you are using a hard-linked file as your config.toml, this change will affect the way other instances of the file is modified.
The original version would modify all other instances whereas the new version will leave others unchanged, reducing the ref count by one.
2018-07-12 20:25:23 +08:00
bors
4ba5ff4d30 Auto merge of #52172 - oli-obk:clippy_in_rls, r=nrc
Inject clippy into the rls again

Also makes sure we actually point to the local rustfmt

r? @nrc

cc @Manishearth
2018-07-11 21:54:44 +00:00
bors
11432ba980 Auto merge of #51230 - nikic:no-verify-lto, r=pnkfelix
Disable LLVM verification by default

Currently -Z no-verify only controls IR verification prior to LLVM codegen, while verification is performed unconditionally both before and after linking with (Thin)LTO.

Also wondering what the sentiment is on disabling verification by default (and e.g. only enabling it on ALT builds with assertions). This does not seem terribly useful outside of rustc development and it does seem to show up in profiles (at something like 3%).

**EDIT:** A table showing the various configurations and what is enabled when.

| Configuration | Dynamic verification performed | LLVM static assertions compiled in |
| --- | --- | --- |
| alt builds | | yes |
| nightly builds | | no |
| stable builds | | no |
| CI builds | | |
| dev builds in a checkout | | |
2018-07-11 12:12:13 +00:00
Oliver Schneider
0fc61be68e
Remove unused variable 2018-07-11 10:35:49 +02:00
Oliver Schneider
5254343f1f
Hitchhike with rls into stable 2018-07-11 10:35:09 +02:00
ljedrz
72b908ffbe Restore #![deny(warnings)] 2018-07-10 21:20:04 +02:00
ljedrz
d1e3567250 Deny bare trait objects in src/bootstrap. 2018-07-10 18:10:05 +02:00
NODA, Kai
97d0bc3f04
bootstrap: our best to achieve atomic rename on Win32
This is a tricky operation to implement on Win32; see
https://ci.appveyor.com/project/nodakai/python-win-behavior

Signed-off-by: NODA, Kai <nodakai@gmail.com>
2018-07-10 22:50:20 +08:00
NODA, Kai
bcb8a06ef7 bootstrap: write texts to a .tmp file first for atomicity
If you are using a hard-linked file as your config.toml, this change will affect the way other instances of the file is modified.
The original version would modify all other instances whereas the new version will leave others unchanged, reducing the ref count by one.

Signed-off-by: NODA, Kai <nodakai@gmail.com>
2018-07-10 22:50:00 +08:00
bors
77117e3836 Auto merge of #52177 - ljedrz:bare_gcc_warning, r=alexcrichton
Warn windows-gnu users that the bundled gcc can't compile

Add a `DO NOT USE THIS gcc.exe FOR COMPILATION.txt` file to `lib\rustlib\*-pc-windows-gnu\bin` folders in `windows-gnu` installations in order to warn against attempting to use the bundled `gcc.exe` as a C compiler. I'm pretty sure that location is usually found manually, so this should be easily noticeable.

This mistake has been made plenty of times and has lead to misunderstandings:
Rust: [Bundled gcc (windows x64) is unable to build any c file](https://github.com/rust-lang/rust/issues/24418)
gtk-rs:    [Compiling on windows](https://github.com/gtk-rs/gtk/issues/625)
bzip2-rs: [Build failure at gcc level: blocksort.c not found](https://github.com/alexcrichton/bzip2-rs/issues/30)

Alternatives: rename the bundled `gcc.exe` to e.g. `rustc-gcc.exe` or `gcc-linker.exe`. This might require a more comprehensive change or break crates already using it as a linker.

r? @alexcrichton
2018-07-10 06:52:20 +00:00
ljedrz
232e77e007 Change gcc warning file name, remove unnecessary reference 2018-07-09 21:25:16 +02:00
ljedrz
6b6a7a4691 Warn windows-gnu users that the bundled gcc can't compile 2018-07-09 15:28:12 +02:00
gnzlbg
4ff90c7e0a bump minimum LLVM version to 5.0 2018-07-09 11:35:52 +02:00
Oliver Schneider
7a8e085835 Also distribute cargo clippy 2018-07-09 10:15:30 +02:00
Oliver Schneider
68620b14a2 Inject clippy into the rls again
Also makes sure we actually point to the local rls
2018-07-09 10:10:42 +02:00
Mark Rousskov
4784883e52
Rollup merge of #52117 - Eijebong:filetime, r=alexcrichton
Dedupe filetime
2018-07-06 21:29:19 -06:00
Bastien Orivel
933c299443 Dedupe filetime 2018-07-06 22:52:40 +02:00
bors
e06c875442 Auto merge of #51757 - nielx:fix/haiku-fixes, r=nagisa
Haiku: several smaller fixes to build and run rust on Haiku

This PR combines three small patches that help Rust build and run on the Haiku platform. These patches do not intend to impact other platforms.
2018-07-06 20:05:23 +00:00