Commit Graph

1670 Commits

Author SHA1 Message Date
bors
ca2639e82e Auto merge of #55014 - ljedrz:lazyboye_unwraps, r=matthewjasper
Prefer unwrap_or_else to unwrap_or in case of function calls/allocations

The contents of `unwrap_or` are evaluated eagerly, so it's not a good pick in case of function calls and allocations. This PR also changes a few `unwrap_or`s with `unwrap_or_default`.

An added bonus is that in some cases this change also reveals if the object it's called on is an `Option` or a `Result` (based on whether the closure takes an argument).
2018-10-20 11:22:48 +00:00
Oliver Scherer
5075174c46 Derives often have very strict bounds 2018-10-19 14:34:44 +02:00
Oliver Scherer
3c9258e604 Prefer Default::default over FxHash*::default in struct constructors 2018-10-19 14:34:44 +02:00
ljedrz
d28aed6dc4 Prefer unwrap_or_else to unwrap_or in case of function calls/allocations 2018-10-19 09:45:45 +02:00
kennytm
617faa90e5
Rollup merge of #55031 - nikic:verify_llvm_ir, r=Mark-Simulacrum
Improve verify_llvm_ir config option

LLVM IR verification has been disabled by default in #51230. However, the implementation doesn't quite match what was discussed in the discussion. This patch implements two changes:

* Make `verify_llvm_ir` influence the behavior of the compiled rustc binary, rather than just the rustc build system. That is, if `verify_llvm_ir=true`, even manual invocations of the built rustc will verify LLVM IR.
* Enable verification of LLVM IR in CI, for non-deploy and deploy-alt builds. This is similar to how LLVM assertions are handled.
2018-10-18 12:54:53 +08:00
kennytm
43ac030d7e
Rollup merge of #54964 - tromey:run-both-gdb-and-lldb-tests, r=nikomatsakis
Run both lldb and gdb tests

Currently lldb tests are run only on macOS, and gdb tests are only run
elsewhere.  This patch changes this to run tests depending on what is
available.

One test is changed, as it was previously marked as failing on macOS,
whereas really it is a generic failure with lldb.

Closes #54721
2018-10-18 12:54:49 +08:00
bors
b1bdf04c97 Auto merge of #55051 - matthiaskrgr:dist_msg, r=Mark-Simulacrum
boostrap: dist: if a file cannot be installed because it does not exist, print its name in the error message.
2018-10-14 11:56:09 +00:00
Matthias Krüger
da1c75c3a6 boostrap: dist: if a file cannot be installed because it does not exist, print its name in the error message. 2018-10-13 23:33:10 +02:00
Matthias Krüger
9c651b3b31 bootstrap: update clippy license locations which changed due to relicensing. 2018-10-13 20:38:49 +02:00
Nikita Popov
b57366a854 Improve verify_llvm_ir config option
* Make it influence the behavior of the compiled rustc, rather than
  just the rustc build system. That is, if verify_llvm_ir=true,
  even manual invocations of the built rustc will verify LLVM IR.
* Enable verification of LLVM IR in CI, for non-deploy and
  deploy-alt builds. This is similar to how LLVM assertions are
  handled.
2018-10-13 20:06:25 +02:00
kennytm
e03db2301e
Rollup merge of #54811 - pnkfelix:issue-24840-separate-bootstrap-default-for-optimize-from-debug-setting, r=nikomatsakis
During rustc bootstrap, make default for `optimize` independent of `debug`

It may have taken me three and a half years, but I'm following through on my ["threat"](https://github.com/rust-lang/rust/issues/24840#issuecomment-97911700)

Fix #24840
2018-10-12 22:04:01 +08:00
Tom Tromey
ac66b04ccb Run both lldb and gdb tests
Currently lldb tests are run only on macOS, and gdb tests are only run
elsewhere.  This patch changes this to run tests depending on what is
available.

One test is changed, as it was previously marked as failing on macOS,
whereas really it is a generic failure with lldb.

Closes #54721
2018-10-10 08:27:01 -06:00
bors
4623d48893 Auto merge of #54764 - tromey:test-rust-lldb, r=alexcrichton
Run debuginfo tests against rust-enabled lldb, when possible

If the rust-enabled lldb was built, then use it when running the
debuginfo tests.  Updating the lldb submodule was necessary as this
needed a way to differentiate the rust-enabled lldb, so I added a line
to the --version output.

This adds compiletest commands to differentiate between the
rust-enabled and non-rust-enabled lldb, as is already done for gdb.  A
new "rust-lldb" header directive is also added, but not used in this
patch; I plan to use it in #54004.

This updates all the tests.
2018-10-10 02:08:23 +00:00
Tom Tromey
ac33b2e578 Run debuginfo tests against rust-enabled lldb, when possible
If the rust-enabled lldb was built, then use it when running the
debuginfo tests.  Updating the lldb submodule was necessary as this
needed a way to differentiate the rust-enabled lldb, so I added a line
to the --version output.

This adds compiletest commands to differentiate between the
rust-enabled and non-rust-enabled lldb, as is already done for gdb.  A
new "rust-lldb" header directive is also added, but not used in this
patch; I plan to use it in #54004.

This updates all the tests.
2018-10-08 11:04:24 -06:00
Felix S. Klock II
ac4945c1cb Fix #24840: make default for optimize independent of debug setting in Cargo.toml. 2018-10-04 12:39:37 +02:00
bors
8a0e5cbf12 Auto merge of #54638 - christianpoveda:master, r=kennytm
Add checking for tool distribution in Tier 1

This fixes https://github.com/rust-lang/rust/issues/54483
r? @kennytm
2018-10-04 09:17:47 +00:00
Christian Poveda
276557504d Fix conditions to allow missing tools in CI 2018-10-01 12:42:20 -05:00
kennytm
3401db0021
Rollup merge of #54708 - collin5:b49475, r=Mark-Simulacrum
Make ./x.py help <cmd> invoke ./x.py <cmd> -h on its own

Fixes #49475

r? @Mark-Simulacrum
2018-10-01 16:13:05 +08:00
kennytm
7014afcfa1
Rollup merge of #54681 - alexcrichton:san-names, r=kennytm
Rename sanitizer runtime libraries on OSX

Currently we ship sanitizer libraries as they're built, but these names
unfortunately conflict with the names of the sanitizer libraries
installed on the system. If a crate, for example, links in C code that
wants to use the system sanitizer and the Rust code doesn't use
sanitizers at all, then using `cargo` may accidentally pull in the
Rust-installed sanitizer library due to a conflict in names.

This change is intended to be entirely transparent for Rust users of
sanitizers, it should only hopefully improve our story with other users!

Closes #54134
2018-10-01 16:13:04 +08:00
Collins Abitekaniza
f9375674df allow use of ./x.py help <cmd> ... 2018-10-01 04:06:58 +03:00
Alex Crichton
b3157601b1 Rename sanitizer runtime libraries on OSX
Currently we ship sanitizer libraries as they're built, but these names
unfortunately conflict with the names of the sanitizer libraries
installed on the system. If a crate, for example, links in C code that
wants to use the system sanitizer and the Rust code doesn't use
sanitizers at all, then using `cargo` may accidentally pull in the
Rust-installed sanitizer library due to a conflict in names.

This change is intended to be entirely transparent for Rust users of
sanitizers, it should only hopefully improve our story with other users!

Closes #54134
2018-09-29 14:29:05 -07:00
Christian Poveda
53254a888b Add enable-missing-tools option 2018-09-28 01:53:38 -05:00
Josh Stone
ce034951fb Bump to 1.31.0 and bootstrap from 1.30 beta 2018-09-27 20:52:53 -07:00
Tom Tromey
f4b4939f3e Improvements to finding LLVM's FileCheck
This patch adds a few improvements to how the build system finds
LLVM's FileCheck program.

* On Fedora, the system LLVM installs FileCheck in the "llvm"
  subdirectory of the LLVM libdir.  This patch teaches the build
  system to look there.

* This adds a configure option to specify which llvm-config executable
  to use.  This is handy on systems that can parallel install multiple
  versions of LLVM; for example I can now:

    ./configure --llvm-config=/bin/llvm-config-5.0-64

  ... to build against LLVM 5, rather than whatever the default
  llvm-config might be.

* Finally, this adds a configure- and config.toml- option to set the
  path to FileCheck.  This is handy when building against an LLVM
  where FileCheck was not installed.  This happens on compatibility
  installs of LLVM on Fedora.
2018-09-25 09:13:02 -06:00
Pietro Albini
e59df621a8
Rollup merge of #54323 - Keruspe:rustc-color, r=Mark-Simulacrum
rustbuild: drop color handling

Let cargo handle that for us

Fixes #54322

Needs a beta backport
2018-09-22 09:56:29 +02:00
Felix S. Klock II
2664db235c Run the newly ui-ified run-pass tests under compare-mode=nll as well.
Fix #53764.
2018-09-21 16:21:38 +02:00
Marc-Antoine Perennou
2a45057e17 rustbuild: drop color handling
Let cargo handle that for us

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2018-09-18 15:02:03 +02:00
bors
2224a42c35 Auto merge of #52036 - collin5:b50509-2, r=collin5
Clean up dependency tracking in Rustbuild [2/2]

Make `clear_if_dirty` calls in `Builder::cargo` with stamp dependencies for the given Mode.

Continuation of #50904
Ref issue #50509
r? @Mark-Simulacrum
2018-09-17 21:15:12 +00:00
Collins Abitekaniza
5ae40be851 refactor Builder::cargo, clean deps for cmd!=test 2018-09-17 14:34:42 +03:00
kennytm
5db68bae9a
Rollup merge of #53829 - alexcrichton:release-debuginfo, r=michaelwoerister
Add rustc SHA to released DWARF debuginfo

This commit updates the debuginfo that is encoded in all of our released
artifacts by default. Currently it has paths like `/checkout/src/...` but these
are a little inconsistent and have changed over time. This commit instead
attempts to actually define the file paths in our debuginfo to be consistent
between releases.

All debuginfo paths are now intended to be `/rustc/$sha` where `$sha` is the git
sha of the released compiler. Sub-paths are all paths into the git repo at that
`$sha`.
2018-09-14 00:46:22 +08:00
Mark Rousskov
9681e13bb2 Add check build dependencies 2018-09-12 13:33:17 -06:00
Mark Rousskov
b58589352e Do not print checking messages in dry run mode 2018-09-12 13:31:54 -06:00
Collins Abitekaniza
e792d1d96a remove struct CleanTools 2018-09-12 13:31:53 -06:00
Collins Abitekaniza
de3ec8dd1a nit: rearrange and make match exhaustive
also indicate difference between out_dir and my_out
2018-09-12 13:31:51 -06:00
Collins Abitekaniza
86e34cdd1b clear_if_dirty with self.rustc(compiler) for Mode::Rustc 2018-09-12 13:31:50 -06:00
Collins Abitekaniza
c22c7098ca use stage 1 compiler only for stamps 2018-09-12 13:31:49 -06:00
Collins Abitekaniza
c0af0b0213 clear_if_dirty in Builder::cargo with passed mode 2018-09-12 13:31:47 -06:00
kennytm
61fe064a30
Rollup merge of #54073 - behnam:docs-1, r=frewsxcv
docs: Use dollar sign for all bash prompts

Making it consistent across the board, as most of them already use `$`.

Also split one continues bash run into two, to make it easier see
different runs: one with warning and another with error.
2018-09-12 12:17:32 +08:00
Alex Crichton
5595aeb6b7 Add rustc SHA to released DWARF debuginfo
This commit updates the debuginfo that is encoded in all of our released
artifacts by default. Currently it has paths like `/checkout/src/...` but these
are a little inconsistent and have changed over time. This commit instead
attempts to actually define the file paths in our debuginfo to be consistent
between releases.

All debuginfo paths are now intended to be `/rustc/$sha` where `$sha` is the git
sha of the released compiler. Sub-paths are all paths into the git repo at that
`$sha`.
2018-09-10 10:10:38 -07:00
Eric Huss
60be0686e0 merge cargo changes done by https://github.com/rust-lang/rust/pull/53935/
(done by matthiaskrgr, but I authored ehuss)
2018-09-09 12:42:43 +02:00
Behnam Esfahbod
88fe8acd89 docs: Use dollar sign for all bash prompts
Making it consistent across the board, as most of them already use `$`.

Also split one continues bash run into two, to make it easier see
different runs: one with warning and another with error.
2018-09-08 21:22:00 -07:00
kennytm
b1ef2b81b9
Rollup merge of #54050 - GabrielMajeri:fix-build-with-nightly, r=alexcrichton
Update `petgraph` dependency to 0.4.13 to fix build with nightly

I wanted to build Rust from source using a local nightly compiler, but I was unable to get `bootstrap` to compile due to a naming conflict with the `find_map` function.

This PR updates the `petgraph` dependency of `bootstrap` to 0.4.13, fixing the issue.
2018-09-08 18:27:28 +08:00
kennytm
e2e3608a4b
Rollup merge of #53987 - Keruspe:llvm-suffix, r=alexcrichton
rustbuild: allow configuring llvm version suffix

Fixes #53852 by allowing user to install different versions of rust to the same sysroot.
2018-09-08 18:26:41 +08:00
kennytm
5cc51add43
Rollup merge of #53973 - tromey:prefer-rust-enabled-lldb, r=alexcrichton
Have rust-lldb look for the rust-enabled lldb

We're shipping a rust-enabled lldb, but the "lldb" executable is not
installed into the "bin" directory by rustup.  See the discussion in
https://github.com/rust-lang-nursery/rustup.rs/pull/1492 for
background on this decision.  There, we agreed to have rust-lldb
prefer the rust-enabled lldb if it is installed.  This patch changes
rust-lldb to look in the sysroot and use the lldb found there, if any.

See issue #48168
2018-09-08 18:26:37 +08:00
Gabriel Majeri
b31eaa4a08 Update petgraph dependency to 0.4.13
This fixes building `bootstrap` using a local Rust nightly.
2018-09-08 09:04:29 +03:00
Marc-Antoine Perennou
ef44068613 rustbuild: allow configuring llvm version suffix
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2018-09-07 17:33:45 +02:00
Tom Tromey
8aae6ca44a Have rust-lldb look for the rust-enabled lldb
We're shipping a rust-enabled lldb, but the "lldb" executable is not
installed into the "bin" directory by rustup.  See the discussion in
https://github.com/rust-lang-nursery/rustup.rs/pull/1492 for
background on this decision.  There, we agreed to have rust-lldb
prefer the rust-enabled lldb if it is installed.

This patch changes dist.rs to put lldb into rustlib, following what
was done for the other LLVM tools in #53955, and then fixes rust-lldb
to prefer that lldb, if it exists.

See issue #48168
2018-09-07 09:13:47 -06:00
kennytm
87fbf54413
Rollup merge of #54023 - matthiaskrgr:clippy, r=oli-obk
update clippy submodule

updates to cafef7b576
2018-09-07 18:14:28 +08:00
kennytm
1681b154ee
Rollup merge of #53967 - froydnj:cmake-python-executable, r=alexcrichton
propagate build.python into cmake

If a suitable value of Python is not on `PATH`, one can still invoke x.py
manually, which propagates `BOOTSTRAP_PYTHON` into the bootstrap
environment.  But building LLVM will abort with error messages about not
being able to find Python, and instructions to set `PYTHON_EXECUTABLE`,
because nothing is done with `BOOTSTRAP_PYTHON` when invoking cmake.
Setting `build.python` in config.toml had no effect in this scenario,
either

To fix this, let's provide `PYTHON_EXECUTABLE` when invoking cmake; for
the "normal" case of Python in `PATH`, this doesn't alter any behavior.
For more unusual cases, however, this ensures cmake finds Python
properly.  (This change also ensures there are no differences between
what bootstrap is using, and what cmake uses, which may be useful for
consistency's sake.)
2018-09-07 18:13:55 +08:00
Alex Crichton
bd1fb60133 Ship libLLVM.dylib on OSX
Previously we just weren't shipping this at all as we were only looking for the
Linux version!
2018-09-06 19:06:09 -07:00