about summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2018-08-02Update Cargo submoduleAlex Crichton-0/+6
Bring in some fixes for `cargo fix` notably
2018-08-02Auto merge of #52949 - Mark-Simulacrum:snap, r=alexcrichtonbors-1/+1
Switch to bootstrapping from 1.29 beta r? @alexcrichton
2018-08-01Switch to bootstrapping from 1.29 betaMark Rousskov-1/+1
2018-08-01[RISCV] Enable CI.David Craven-1/+1
2018-08-01Rollup merge of #52853 - RalfJung:bootstrap-help, r=alexcrichtonPietro Albini-3/+10
Improve bootstrap help on stages Cc @eddyb
2018-08-01Rollup merge of #52846 - kennytm:bootstrap-curl-timeout, r=Mark-SimulacrumPietro Albini-1/+4
Add timeout to use of `curl` in bootstrap.py. Recently we've seen a lot of "30 minutes no output" spurious errors while downloading the bootstrap compiler. This added several timeout options so if the "30 minutes no output" errors were caused by connection or transfer issue, we could fail quicker for curl to retry.
2018-07-30Remove the unstable std_unicode crate, deprecated since 1.27Simon Sapin-3/+1
Its former contents are now in libcore.
2018-07-30improve test stage documentationRalf Jung-2/+6
2018-07-30improve --stage documentationRalf Jung-1/+4
2018-07-30Auto merge of #52805 - ljedrz:format_str_literal, r=petrochenkovbors-11/+11
Don't format!() string literals Prefer `to_string()` to `format!()` take 2, this time targetting string literals. In some cases (`&format!("...")` -> `"..."`) also removes allocations. Occurences of `format!("")` are changed to `String::new()`.
2018-07-30Add timeout to use of `curl` in bootstrap.py.kennytm-1/+4
2018-07-30Auto merge of #52828 - Mark-Simulacrum:clear-rustdoc-check, r=alexcrichtonbors-0/+5
Clear out rustdoc check builds if dependencies change r? @alexcrichton
2018-07-29Auto merge of #52738 - ljedrz:push_to_extend, r=eddybbors-4/+1
Replace push loops with extend() where possible Or set the vector capacity where I couldn't do it. According to my [simple benchmark](https://gist.github.com/ljedrz/568e97621b749849684c1da71c27dceb) `extend`ing a vector can be over **10 times** faster than `push`ing to it in a loop: 10 elements (6.1 times faster): ``` test bench_extension ... bench: 75 ns/iter (+/- 23) test bench_push_loop ... bench: 458 ns/iter (+/- 142) ``` 100 elements (11.12 times faster): ``` test bench_extension ... bench: 87 ns/iter (+/- 26) test bench_push_loop ... bench: 968 ns/iter (+/- 3,528) ``` 1000 elements (11.04 times faster): ``` test bench_extension ... bench: 311 ns/iter (+/- 9) test bench_push_loop ... bench: 3,436 ns/iter (+/- 233) ``` Seems like a good idea to use `extend` as much as possible.
2018-07-29Replace push loops with collect() and extend() where possibleljedrz-4/+1
2018-07-29Clear out rustdoc check builds if dependencies changeMark Rousskov-0/+5
2018-07-29Auto merge of #52755 - kennytm:update-rustfmt, r=nrcbors-0/+7
Update rustfmt and RLS
2018-07-29Auto merge of #52767 - ljedrz:avoid_format, r=petrochenkovbors-1/+1
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-29Copy the test_data/ RLS tests into a writable directory.kennytm-0/+7
See rust-lang-nursery/rls#966 for details.
2018-07-28Don't format!() string literalsljedrz-11/+11
2018-07-27Prefer to_string() to format!()ljedrz-1/+1
2018-07-26Refactor is_external_tool into source_typeTatsuyuki Ishi-22/+32
2018-07-25bootstrap: use prepare_tool_cargo everywhereTatsuyuki Ishi-24/+22
In this way, RUSTC_NO_PREFER_DYNAMIC is already specified and not needed.
2018-07-25Discriminate between external and optional toolsTatsuyuki Ishi-14/+22
2018-07-25Deny bare_trait_objects globallyTatsuyuki Ishi-12/+34
2018-07-24Rollup merge of #52642 - ljedrz:expect_fun_call, r=Mark-Simulacrumkennytm-3/+3
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-24Rollup merge of #52627 - Mark-Simulacrum:rustdoc-test-correct, r=alexcrichtonkennytm-0/+1
Compile rustc before building tests for rustdoc r? @alexcrichton
2018-07-23Replace a few expect+format combos with unwrap_or_else+panicljedrz-3/+3
2018-07-22Compile rustc before building tests for rustdocMark Rousskov-0/+1
2018-07-23Rollup merge of #52594 - Mark-Simulacrum:error-index-stage0, r=alexcrichtonkennytm-2/+2
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-22Rollup merge of #52465 - sekineh:add-ci-thumb, r=alexcrichtonkennytm-1/+3
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-21Run the error index tool against the sysroot libdirMark Rousskov-2/+2
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-21Treat no_std(target) == None case correctly.Hideki Sekine-1/+1
2018-07-18Rollup merge of #52464 - o01eg:patch-1, r=alexcrichtonkennytm-0/+2
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-18Rollup merge of #52439 - o01eg:fix-52317, r=alexcrichtonkennytm-2/+3
Revert some changes from #51917 to fix custom libdir Should fix #52317 also adds `libdir` value to output.
2018-07-17Allow clippy to be installed with make installO01eg-0/+2
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-18Fix rust issue #52163Hideki Sekine-1/+3
2018-07-17Rollup merge of #52434 - Mark-Simulacrum:incremental-keep-stage, r=alexcrichtonkennytm-4/+1
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-16Calculate the exact capacity for 2 HashMapsljedrz-1/+1
2018-07-16Enable incremental independent of stageMark Rousskov-4/+1
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-16Revert some changes from #51917 to fix #52317.O01eg-2/+3
2018-07-15Auto merge of #52399 - semarie:llvmtools, r=alexcrichtonbors-0/+9
Disable LlvmTools packaging with external LLVM Fixes: #52102
2018-07-15tidy: avoid long lineSébastien Marie-1/+2
2018-07-15Disable LlvmTools packaging with external LLVMSébastien Marie-0/+8
Fixes: #52102
2018-07-14Change keep-stage to only affect the passed stageMark Rousskov-46/+40
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-13Do not attempt to recompile codegen backend(s) with --keep-stageMark Rousskov-0/+10
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-14Rollup merge of #51962 - crlf0710:patch-2, r=alexcrichtonkennytm-1/+2
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-12Rollup merge of #52220 - ljedrz:dyn_bootstrap, r=kennytmkennytm-5/+6
Deny bare trait objects in `src/bootstrap` Enforce `#![deny(bare_trait_objects)]` in `src/bootstrap`.
2018-07-12Rollup merge of #51816 - nodakai:conf-py-tmpfile, r=kennytmkennytm-5/+18
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-11Auto merge of #52172 - oli-obk:clippy_in_rls, r=nrcbors-1/+22
Inject clippy into the rls again Also makes sure we actually point to the local rustfmt r? @nrc cc @Manishearth
2018-07-11Auto merge of #51230 - nikic:no-verify-lto, r=pnkfelixbors-0/+11
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 | | |