about summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2017-06-22Rollup merge of #42806 - ollie27:rustbuild_compiler_docs, r=alexcrichtonMark Simulacrum-5/+5
rustbuild: Fix compiler docs yet again Add support for `-Z force-unstable-if-unmarked` to rustdoc. r? @alexcrichton
2017-06-22Rollup merge of #42805 - stepancheg:forward-python, r=alexcrichtonMark Simulacrum-0/+8
Pass path to python from bootstrap.py to bootstrap.rs When bootstrap is executed with python not in `$PATH`, (e. g. `c:\Python27\python.exe x.py test`) bootstrap cannot find python and crashes. This commit passes path to python in `BOOTSTRAP_PYTHON` env var.
2017-06-22Rollup merge of #42804 - Mark-Simulacrum:rustbuild-colors, r=alexcrichtonMark Simulacrum-0/+41
Make rustc errors colorful. Rustbuild passes --message-format=json to Cargo to learn about the dependencies for a given build, which then makes Cargo steal the stderr/stdout for the compiler process, leading to non colorful output. To avoid this, detection of stderr being a tty is added to rustbuild, and an environment variable is used to communicate with the rustc shim. Fixes https://github.com/rust-lang/rust/issues/42801. r? @alexcrichton
2017-06-22Auto merge of #42785 - Mark-Simulacrum:fix-verbose-bootstrap, r=alexcrichtonbors-9/+9
Fixes bootstrapping with custom cargo/rustc. config.mk is now always read when parsing the configuration to prevent this from reoccurring in the future, hopefully. Fixes https://github.com/rust-lang/rust/issues/42543. r? @alexcrichton cc @infinity0 @kyrias
2017-06-21rustbuild: Fix compiler docs yet againOliver Middleton-5/+5
Add support for `-Z force-unstable-if-unmarked` to rustdoc.
2017-06-21Make rustc errors colorful.Mark Simulacrum-0/+41
Rustbuild passes --message-format=json to Cargo to learn about the dependencies for a given build, which then makes Cargo steal the stderr/stdout for the compiler process, leading to non colorful output. To avoid this, detection of stderr being a tty is added to rustbuild, and an environment variable is used to communicate with the rustc shim.
2017-06-21Pass path to python from bootstrap.py to bootstrap.rsStepan Koltsov-0/+8
When bootstrap is executed with python not in `$PATH`, (e. g. `c:\Python27\python.exe x.py test`) bootstrap cannot find python and crashes. This commit passes path to python in `BOOTSTRAP_PYTHON` env var.
2017-06-20Fixes bootstrapping with custom cargo/rustc.Mark Simulacrum-9/+9
config.mk is now always read when parsing the configuration to prevent this from reoccurring in the future, hopefully.
2017-06-20Switch to the crates.io `getopts` crateAlex Crichton-1/+0
This commit deletes the in-tree `getopts` crate in favor of the crates.io-based `getopts` crate. The main difference here is with a new builder-style API, but otherwise everything else remains relatively standard.
2017-06-20Auto merge of #42571 - tlively:wasm-dev, r=alexcrichtonbors-0/+17
Enable wasm LLVM backend Enables compilation to WebAssembly with the LLVM backend using the target triple "wasm32-unknown-unknown". This is the beginning of my work on #38804. **edit:** The new new target is now wasm32-experimental-emscripten instead of wasm32-unknown-unknown.
2017-06-19Bump version and stage0 compilerAlex Crichton-41/+5
2017-06-18Rollup merge of #42720 - murarth:deprecated-collections, r=alexcrichtonMark Simulacrum-1/+2
Reintroduce deprecated `collections` crate
2017-06-18Rollup merge of #42695 - Mark-Simulacrum:fix-verbose, r=alexcrichtonMark Simulacrum-9/+8
Use custom cargo/rustc paths when parsing flags. Fixes https://github.com/rust-lang/rust/issues/41779, probably also https://github.com/rust-lang/rust/issues/42543 (I think they're duplicates). I'm not entirely happy with the implementation, since it means we parse the configuration twice, but it's the minimal solution. I think the other choice is to move both calls to Config::parse inside Flags::parse and merge them, but I don't know if that's a good idea. r? @alexcrichton
2017-06-17Reintroduce deprecated `collections` crateMurarth-1/+2
2017-06-16Add target to use LLVM wasm backendThomas Lively-0/+17
The new target is wasm32-experimental-emscripten. Adds a new configuration option to opt in to building experimental LLVM backends such as the WebAssembly backend. The target name was chosen to be similar to the existing wasm32-unknown-emscripten target so that the build and tests would work with minimal other code changes. When/if the new target replaces the old target, simply renaming it should just work.
2017-06-16Auto merge of #42612 - est31:master, r=nagisabors-4/+49
Autogenerate stubs and SUMMARY.md in the unstable book Removes a speed bump in compiler development by autogenerating stubs for features in the unstable book. See #42454 for discussion. The PR contains three commits, separated in order to make review easy: * The first commit converts the tidy tool from a binary crate to a crate that contains both a library and a binary. In the second commit, we'll use the tidy library * The second and main commit introduces autogeneration of SUMMARY.md and feature stub files * The third commit turns off the tidy lint that checks for features without a stub, and removes the stub files. A separate commit due to the large number of files touched Members of the doc team who wish to document some features can either do this (where `$rustsrc` is the root of the rust repo git checkout): 1. cd to `$rustsrc/src/tools/unstable-book-gen` and then do `cargo run $rustsrc/src $rustsrc/src/doc/unstable-book` to put the stubs into the unstable book 2. cd to `$rustsrc` and run `git ls-files --others --exclude-standard` to list the newly added stubs 3. choose a file to edit, then `git add` it and `git commit` 4. afterwards, remove all changes by the tool by doing `git --reset hard` and `git clean -f` Or they can do this: 1. remove the comment marker in `src/tools/tidy/src/unstable_book.rs` line 122 2. run `./x.py test src/tools/tidy` to list the unstable features which only have stubs 3. revert the change in 1 3. document one of the chosen unstable features The changes done by this PR also allow for further development: * tidy obtains information about tracking issues. We can now forbid differing tracking issues between differing `#![unstable]` annotations. I haven't done this but plan to in a future PR * we now have a general framework for generating stuff for the unstable book at build time. Further changes can autogenerate a list of the API a given library feature exposes. The old way to simply click through the documentation after it has been uploaded to rust-lang.org works as well. r? @nagisa Fixes #42454
2017-06-16Use custom cargo/rustc paths when parsing flags.Mark Simulacrum-9/+8
2017-06-16Fix cross compilationest31-8/+8
2017-06-16Auto merge of #42410 - nagisa:llvmup, r=sanxiynbors-0/+3
Upgrade LLVM Includes https://github.com/rust-lang/llvm/pull/80
2017-06-16Auto merge of #42631 - malbarbo:wasm32, r=alexcrichtonbors-1/+3
Add a travis builder for wasm32-unknown-emscripten This commits add an entry to travis matrix that will execute wasm32-unknown-emscripten tests suites. - Emscripten for asmjs was updated to sdk-1.37.13-64bit - The tests are run with node 8.0.0 (it can execute wasm) - A wrapper script is used to run each test from the directory where it is (workaround for https://github.com/kripken/emscripten/issues/4542) - Some tests are ignore, see #42629 and #42630
2017-06-16Rollup merge of #42651 - infinity0:master, r=alexcrichtonCorey Farwell-2/+27
Only run check-linkchecker when actually building docs Otherwise the build fails, when running tests but not building docs, e.g.: https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-3&stamp=1497403375&raw=0
2017-06-15Add a no-system-llvm compilecheck headerSimonas Kazlauskas-0/+3
2017-06-15Auto merge of #42648 - murarth:merge-alloc-collections, r=alexcrichtonbors-3/+2
Merge crate `collections` into `alloc` This is a necessary step in order to merge #42565
2017-06-15Only run check-linkchecker when actually building docsXimin Luo-1/+1
Otherwise the build fails, when running tests but not building docs, e.g.: https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-3&stamp=1497403375&raw=0
2017-06-15Ensure that disable-doc builds don't depend on doc targetsXimin Luo-1/+26
2017-06-14Auto merge of #42433 - marco-c:profiling, r=alexcrichtonbors-0/+15
Build instruction profiler runtime as part of compiler-rt r? @alexcrichton This is #38608 with some fixes. Still missing: - [x] testing with profiler enabled on some builders (on which ones? Should I add the option to some of the already existing configurations, or create a new configuration?); - [x] enabling distribution (on which builders?); - [x] documentation.
2017-06-13Merge crate `collections` into `alloc`Murarth-3/+2
2017-06-14Autogenerate stubs and the summary of the unstable bookest31-4/+49
2017-06-13Add libprofiler_builtins to the list of paths for the rust-src componentMarco Castelluccio-0/+1
2017-06-13Do not execute .asm.js files on wasm32 testsMarco A L Barbosa-1/+3
Files with extensions .asm.js are used to generate .wasm files, they are not intented to be execute.
2017-06-08Auto merge of #42491 - RalfJung:bootstrap-help, r=alexcrichtonbors-2/+7
bootstrap: improve 'build --help' by explaining what exactly the last example does I recently found myself confused about what exactly gets built how often when I run which command; I think this would have helped me. One thing I did not touch, but I feel could also be improved, is the wording just above: "For a quick build with a usable compile, you can pass". I am not a native speaker, but this sounds odd to me. Do you mean "For a quick build of a usable compiler" (but then it should say where the usable compiler is produced)? Or do you mean "For a quick build testing if the compiler is usable"? I can reword this, but I'd like to make sure I understand the intent of the message. What about ``` For a quick build of a usable compiler, you can pass: ./x.py build --stage 1 src/libtest This will first build everything once (like --stage 0 without further arguments would), and then use the compiler built in stage 0 to build src/libtest and its dependencies. Once this is done, build/$ARCH/stage1 contains a usable compiler. ``` However, I am not sure this is actually true. In particular, why even bother building the libstd in stage 1? AFAIK that ends up in `build/*/stage1-std`, not in `build/*/stage1` (which is filled from `build/*/stage0-*`).
2017-06-07bootstrap: further clarify build --helpRalf Jung-2/+3
2017-06-06Rollup merge of #42485 - Mark-Simulacrum:skip-no-doc, r=alexcrichtonCorey Farwell-1/+1
Skip printing for skipped doc tests. Followup to https://github.com/rust-lang/rust/pull/42437 to further reduce noise. r? @alexcrichton
2017-06-06Rollup merge of #42429 - venkatagiri:llvm_config, r=alexcrichtonCorey Farwell-0/+4
rustc_llvm: re-run build script if config.toml changes closes #35199
2017-06-06bootstrap: improve 'build --help' by explaining what exactly the last ↵Ralf Jung-1/+5
example does
2017-06-06Skip printing for skipped doc tests.Mark Simulacrum-1/+1
2017-06-04Skip documentation files without ``` when running markdown tests.Mark Simulacrum-16/+15
This should reduce the 'running 0 tests' noise in builds, and is a good heuristic for us to use.
2017-06-04rustc_llvm: re-run build script if config.toml changesVenkata Giri Reddy-0/+4
2017-06-04Merge branch 'profiling' of github.com:whitequark/rust into profilingMarco Castelluccio-0/+14
2017-06-03Rollup merge of #42382 - alexcrichton:remove-rustflags, r=Mark-SimulacrumCorey Farwell-6/+0
rustbuild: Remove RUSTFLAGS logic in rustc shim This was added in #38072 but I can't recall why and AFAIK Cargo already handles this. This was discovered through #42146 where passing duplicate flags was causing problems.
2017-06-03Rollup merge of #42363 - cuviper:no-fail-fast, r=alexcrichtonCorey Farwell-19/+89
rustbuild: Add `./x.py test --no-fail-fast` This option forwards to each `cargo test` invocation, and applies the same logic across all test steps to keep going after failures. At the end, a brief summary line reports how many commands failed, if any. Note that if a test program fails to even start at all, or if an auxiliary build command related to testing fails, these are still left to stop everything right away. Fixes #40219.
2017-06-03Rollup merge of #42354 - Mark-Simulacrum:reduce-verbosity, r=alexcrichtonCorey Farwell-1/+1
Reduce verbosity of build logs This does two separate things. - Sets sccache logging to warn instead of info. - Makes tests when running for a given PR (not on auto branch) quiet. (cc @eddyb) r? @alexcrichton
2017-06-02Reduce sccache log level.Mark Simulacrum-1/+1
2017-06-02rustbuild: Remove RUSTFLAGS logic in rustc shimAlex Crichton-6/+0
This was added in #38072 but I can't recall why and AFAIK Cargo already handles this. This was discovered through #42146 where passing duplicate flags was causing problems.
2017-06-02rustbuild: Add `./x.py test --no-fail-fast`Josh Stone-19/+89
This option forwards to each `cargo test` invocation, and applies the same logic across all test steps to keep going after failures. At the end, a brief summary line reports how many commands failed, if any. Note that if a test program fails to even start at all, or if an auxiliary build command related to testing fails, these are still left to stop everything right away. Fixes #40219.
2017-06-02Rollup merge of #42225 - brson:vs2017, r=alexcrichtonMark Simulacrum-1/+1
Support VS 2017 Fixes #38584 This replaces all the MSVC linker logic with that from the 'gcc' crate. The code looks the same, but there could be regressions. I've only tested this with x86_64. r? @alexcrichton cc @vadimcn @retep998
2017-06-01Support VS 2017Brian Anderson-1/+1
Fixes #38584
2017-06-02ci: Further tone down the test verbosity.kennytm-5/+9
When `--quiet` is passed to rustbuild, suppress rustdoc test output unless failure. Added a `--quiet` flag to `tidy`, which suppresses the features table. The actual `--quiet` flag is enabled in #42354. Since details of failed tests will still be printed, and the name of slow tests taking >60 to runtime will also be printed, the debugging difficulty caused by information loss should be minimal; but it is very worthwhile to keep the log under 10000 lines on Travis CI so that common errors can be spotted without reading the raw log.
2017-06-02ci: Improve log output (mainly Travis).kennytm-3/+135
* Bring back colors on Travis, which was disabled since #39036. Append --color=always to cargo when running in CI environment. * Removed `set -x` in the shell scripts. The `retry` function already prints which command it is running, add `-x` just add noise to the output. * Support travis_fold/travis_time. Matching pairs of these allow Travis CI to collapse the output in between. This greatly cut down the unnecessary "successful" output one need to scroll through before finding the failed statement.
2017-06-01Auto merge of #42263 - alexcrichton:fix-copies, r=Mark-Simulacrumbors-84/+178
rustbuild: Fix copying duplicate crates into the sysroot After compiling a project (e.g. libstd, libtest, or librustc) rustbuild needs to copy over all artifacts into the sysroot of the compiler it's assembling. Unfortunately rustbuild doesn't know precisely what files to copy! Today it has a heuristic where it just looks at the most recent version of all files that look like rlibs/dylibs and copies those over. This unfortunately leads to bugs with different versions of the same crate as seen in #42261. This commit updates rustbuild's strategy of copying artifacts to work off the list of artifacts produced by `cargo build --message-format=json`. The build system will now parse json messages coming out of Cargo to watch for files being generated, and then it'll only copy over those precise files. Note that there's still a bit of weird logic where Cargo prints that it's creating `libstd.rlib` where we actually want `libstd-xxxxx.rlib`, so we still do a bit of "most recent file" probing for those. This commit should take care of the crates.io dependency issues, however, as they're all copied over precisely. Closes #42261