Henrik Laxhuber [Sat, 21 Apr 2018 16:43:03 +0000 (18:43 +0200)]
Added missing file extension
Henrik Laxhuber [Sat, 21 Apr 2018 16:41:41 +0000 (18:41 +0200)]
Changed LINKER env var to RUSTC_LINKER, improved docs
Henrik Laxhuber [Sat, 21 Apr 2018 07:24:31 +0000 (09:24 +0200)]
Added documentation for LINKER environment variable
This commit amends the documentation on environment variables to
reflect the proposed LINKER variable.
Henrik Laxhuber [Fri, 20 Apr 2018 15:04:14 +0000 (17:04 +0200)]
Pass linker path to build script
This change adds the environment variable LINKER to pass the path
of the linker used by cargo to the build script. This ammends the
variable RUSTC (the rustc binary used) to give the build script
full knowledge of its environment.
A specific usage example would be automatically generating bindings
to system headers in cross compilation, e.g. by locating jni.h for
android targets.
bors [Thu, 19 Apr 2018 22:21:08 +0000 (22:21 +0000)]
Auto merge of #5391 - varkor:check-message, r=alexcrichton
Print "Checking" for cargo check
I often alternate between `check` and `build` and I'd like to be able to tell which is currently happening (short-term memory being what it is, and "compiling" implying to me that codegen is occurring). Changing the message to "Checking" seemed to be reasonable (and there was precedent for `doc` with "Documenting").
varkor [Thu, 19 Apr 2018 18:19:11 +0000 (19:19 +0100)]
Update tests to check for Checking
bors [Thu, 19 Apr 2018 14:30:48 +0000 (14:30 +0000)]
Auto merge of #5390 - matklad:new-feature-behavior, r=alexcrichton
Enable new behavior of `--feature`
So far, the feedback on https://internals.rust-lang.org/t/help-us-test-the-breaking-bug-fix-to-cargo-features/7317 has been positive, so here's a PR to try this in nightly.
Note that the logic is slightly tweak for the case `cargo build -p not-a-workspace-member`: we want not only to resolve all ws members in this case, but to enable all of their features as well!
As a sanity check, this seems to be forward compatible with further improvements to features:
1) when we solve the grand bug of features being unified across the whole workspace, `cargo build -p not-a-member` would hopefully just work without additional contortions.
2) we might add a way to specify features per package, like `cargo build -p foo -p bar --features "foo/serde bar/serde"`
bors [Thu, 19 Apr 2018 14:08:29 +0000 (14:08 +0000)]
Auto merge of #5392 - ehuss:test-does-not-contain, r=alexcrichton
cargotest: Fix `with_*_does_not_contain` to support `[..]` and macro matching.
I changed it so that it is essentially the opposite of `with_*_contains` to keep it symmetric.
Any in-flight PRs using the old style will need to be updated (else they will incorrectly silently pass). Alternatively, we could rename the method to avoid that.
The following tests contained brackets, so they were not checking what they thought they were checking. I did a cursory look at them, but perhaps someone else could double-check that they make sense. Asserting what *doesn't* happen can be tricky since there is an infinite number of things that won't happen. Preferably a test would assert that it appears in one scenario and not another (like `incremental_profile` does), but some of them don't or can't.
```
build::incremental_profile
build::incremental_config
build::cargo_compile_with_workspace_excluded
build::build_all_exclude
build::targets_selected_default
check::targets_selected_default
check::check_filters
rustc::targets_selected_default
rustc_info_cache::rustc_info_cache
warn_on_failure::no_warning_on_bin_failure
warn_on_failure::warning_on_lib_failure
```
BTW, would you be interested in a PR that adds some documentation to `cargotest`?
I've discovered things I didn't know where there. I think some docstrings on some of the methods, and a short guide for new contributors would be helpful.
Eric Huss [Thu, 19 Apr 2018 05:13:30 +0000 (22:13 -0700)]
Fix `with_*_does_not_contain` to support `[..]` and macro matching.
varkor [Thu, 19 Apr 2018 00:08:35 +0000 (01:08 +0100)]
Print "Checking" for cargo check
Aleksey Kladov [Wed, 18 Apr 2018 20:36:59 +0000 (23:36 +0300)]
Enable new behavior of `--feature`
bors [Wed, 18 Apr 2018 15:09:00 +0000 (15:09 +0000)]
Auto merge of #5389 - matklad:one-hard-cs-problem, r=alexcrichton
One hard cs problem
Closes https://github.com/rust-lang/cargo/issues/5313
r? @alexcrichton
Note that, due to the first commit, this still gives us all the benefits of #5249: if RUSTFLAGS is empty, we will run only a single rustc process, even if we can't cache it across different cargo invocations.
Aleksey Kladov [Wed, 18 Apr 2018 15:00:21 +0000 (18:00 +0300)]
Don't try to use the same info if target == host
The info might be different due to RUSTFLAGS, which, in general,
are applied only to target.
Aleksey Kladov [Wed, 18 Apr 2018 14:56:26 +0000 (17:56 +0300)]
rustfmt
Aleksey Kladov [Wed, 18 Apr 2018 14:44:23 +0000 (17:44 +0300)]
Improve rustc cache
Even if we've failed to calculate fingerprint and thus can't persist
cache to disk, it is still valid to cache rustc output within single
process.
bors [Wed, 18 Apr 2018 09:55:27 +0000 (09:55 +0000)]
Auto merge of #5386 - ysimonson:new-metadata, r=matklad
Added new metadata fields
Addresses #5373.
`cargo metadata` should now include all of the non-optional suggested fields in the [API guidelines](https://rust-lang-nursery.github.io/api-guidelines/documentation.html#cargotoml-includes-all-common-metadata-c-metadata).
Yusuf Simonson [Wed, 18 Apr 2018 08:16:50 +0000 (15:16 +0700)]
Explicitly test for new package metadata fields
Yusuf Simonson [Wed, 18 Apr 2018 08:08:18 +0000 (15:08 +0700)]
Added new metadata fields.
`cargo metadata` should now include all of the non-optional suggested fields in the API guidelines (see section C-METADATA.)
bors [Wed, 18 Apr 2018 06:15:55 +0000 (06:15 +0000)]
Auto merge of #5379 - alexcrichton:bump-fieltime, r=matklad
Bump version of `filetime` dependency
bors [Wed, 18 Apr 2018 02:28:35 +0000 (02:28 +0000)]
Auto merge of #5383 - dwijnand:contributing-custom-build, r=alexcrichton
add build-from-source info to Tests architecture docs
it's mentioned in the README, but it's worth mentioning again in the
Tests section of the architecture doc.
bors [Wed, 18 Apr 2018 01:47:40 +0000 (01:47 +0000)]
Auto merge of #5381 - dwijnand:github-casing, r=alexcrichton
Fix how GitHub is written
just a silly PR - I noticed it in the README, and applied it repo-wide.
bors [Wed, 18 Apr 2018 00:39:00 +0000 (00:39 +0000)]
Auto merge of #5380 - dwijnand:typo, r=alexcrichton
typo
None
Dale Wijnand [Wed, 18 Apr 2018 00:27:44 +0000 (01:27 +0100)]
add build-from-source info to Tests architecture docs
it's mentioned in the README, but it's worth mentioning again in the
Tests section of the architecture doc.
Alex Crichton [Tue, 17 Apr 2018 22:08:04 +0000 (15:08 -0700)]
Bump version of `filetime` dependency
bors [Tue, 17 Apr 2018 20:49:43 +0000 (20:49 +0000)]
Auto merge of #5372 - alexcrichton:bump, r=matklad
Bump to 0.28.0
Looks like we've forgotten to do this so far on nightly!
Dale Wijnand [Tue, 17 Apr 2018 20:10:28 +0000 (22:10 +0200)]
typo
Dale Wijnand [Tue, 17 Apr 2018 20:14:41 +0000 (22:14 +0200)]
Fix how GitHub is written
bors [Tue, 17 Apr 2018 16:00:32 +0000 (16:00 +0000)]
Auto merge of #5374 - matklad:simplify, r=alexcrichton
Simplify RegistryPackage deserialization
Just mapping dependencies seems so much simpler than thread locals / deserializers with default. Am I missing something, or this indeed will work? :-)
cc @Mark-Simulacrum
bors [Tue, 17 Apr 2018 13:39:04 +0000 (13:39 +0000)]
Auto merge of #5361 - derekdreery:issue_5345, r=matklad
Fix issue 5345
Fixes #5345.
Also adds some docs and Debug impls.
Richard Dodd [Tue, 17 Apr 2018 13:16:58 +0000 (14:16 +0100)]
Add fix and some docs
Aleksey Kladov [Tue, 17 Apr 2018 07:48:15 +0000 (10:48 +0300)]
Simplify RegistryPackage deserialization
Alex Crichton [Tue, 17 Apr 2018 03:29:41 +0000 (20:29 -0700)]
Bump to 0.28.0
Looks like we've forgotten to do this so far on nightly!
bors [Mon, 16 Apr 2018 21:10:56 +0000 (21:10 +0000)]
Auto merge of #5272 - Phlosioneer:5211-missing-size-hints, r=matklad
Implement size_hint for some iterators
This PR implements size_hints for `Deps`, `DepsNotReplaced`, and `Members`.
These size_hints are used extensively by cargo to allocate Vecs.
`Deps`, `DepsNotReplaced`, and `RcVecIter` also now implement `ExactSizeIterator`.
Closes #5211
Phlosioneer [Mon, 16 Apr 2018 20:59:22 +0000 (16:59 -0400)]
Add compile-time check for ExactSizeIterator
bors [Mon, 16 Apr 2018 17:23:53 +0000 (17:23 +0000)]
Auto merge of #5359 - matklad:rustc-cache, r=alexcrichton
Rustc cache
This implements rustc caching, to speed-up no-op builds.
The cache is per-project, and stored in `target` directory. To implement this, I had to move `rustc` from `Config` down to `BuildConfig`.
closes https://github.com/rust-lang/cargo/issues/5315
Aleksey Kladov [Mon, 16 Apr 2018 16:22:53 +0000 (19:22 +0300)]
rustc is rustc.exe on windows
Aleksey Kladov [Mon, 16 Apr 2018 15:53:12 +0000 (18:53 +0300)]
Simplify
Aleksey Kladov [Mon, 16 Apr 2018 15:52:35 +0000 (18:52 +0300)]
Make rustc_info a hidden file
Aleksey Kladov [Mon, 16 Apr 2018 15:50:25 +0000 (18:50 +0300)]
Handle non-rustup cargo + rustup rustc in rustc cache
bors [Mon, 16 Apr 2018 15:36:50 +0000 (15:36 +0000)]
Auto merge of #5360 - euclio:metadata, r=alexcrichton
include package metadata in `cargo metadata`
Fixes #4819.
All-in-all a pretty small change. I'm a little concerned about threading the `toml::Value` all the way through however, should I make another type? Also, cloning the metadata value initially is maybe not ideal, since it's technically accessible through the original manifest. I figured this way was cleaner.
Aleksey Kladov [Mon, 16 Apr 2018 14:57:25 +0000 (17:57 +0300)]
Remove `internal` from error handling
bors [Mon, 16 Apr 2018 04:48:29 +0000 (04:48 +0000)]
Auto merge of #5357 - matklad:even-rust-has-format-string-bugs, r=alexcrichton
Correctly print fractional part of a second
So my experiments with `rustc -vV` caching bring no-op build times to around 50ms, and this actually exposes a bug in our time-printing code :-)
Richard Dodd [Sun, 15 Apr 2018 13:00:36 +0000 (14:00 +0100)]
Better test description
Richard Dodd [Sun, 15 Apr 2018 12:56:22 +0000 (13:56 +0100)]
[Wip] fix issue 5345
Andy Russell [Sat, 14 Apr 2018 19:07:23 +0000 (15:07 -0400)]
include package metadata in `cargo metadata`
Fixes #4819.
Aleksey Kladov [Sat, 14 Apr 2018 14:06:05 +0000 (17:06 +0300)]
Correctly resolve executables in paths on windows
Aleksey Kladov [Sat, 14 Apr 2018 11:09:23 +0000 (14:09 +0300)]
Add env-var to suppress rustc caching
Aleksey Kladov [Sat, 14 Apr 2018 10:39:59 +0000 (13:39 +0300)]
Speedup no-op builds by caching rustc invocations
Aleksey Kladov [Sat, 14 Apr 2018 08:54:33 +0000 (11:54 +0300)]
Hide BuildConfig.host_triple behind a getter
Aleksey Kladov [Sat, 14 Apr 2018 08:49:13 +0000 (11:49 +0300)]
Associated Rustc with a build config
We want to create `rustc` only when we already have workspace, so that
we could use the `target` dir to store cached info about the compiler.
Aleksey Kladov [Fri, 13 Apr 2018 18:11:41 +0000 (21:11 +0300)]
Extract mtime calculation
Aleksey Kladov [Fri, 13 Apr 2018 22:06:21 +0000 (01:06 +0300)]
Correctly print fractional part of a second
bors [Fri, 13 Apr 2018 18:55:35 +0000 (18:55 +0000)]
Auto merge of #5355 - djc:target-info-no-context, r=matklad
Make it possible to construct TargetInfo without Context
This should make stuff like #5349 easier.
bors [Fri, 13 Apr 2018 18:23:10 +0000 (18:23 +0000)]
Auto merge of #5354 - djc:config-initialization, r=matklad
Move initialization of BuildConfig, TargetConfig into new() methods
Dirkjan Ochtman [Fri, 13 Apr 2018 18:09:50 +0000 (20:09 +0200)]
Inline creation of TargetInfos in Context::new()
Dirkjan Ochtman [Fri, 13 Apr 2018 17:58:00 +0000 (19:58 +0200)]
Don't require full Context to build a TargetInfo
Dirkjan Ochtman [Fri, 13 Apr 2018 17:54:05 +0000 (19:54 +0200)]
Remove target_triple() method from Context
Favor accessing cx.build_config directly.
Dirkjan Ochtman [Fri, 13 Apr 2018 17:48:16 +0000 (19:48 +0200)]
Remove host_triple() method from Context
Favor accessing cx.build_config directly.
Dirkjan Ochtman [Fri, 13 Apr 2018 17:43:35 +0000 (19:43 +0200)]
Remove requested_target() method from Context
Favor accessing cx.build_config directly.
Dirkjan Ochtman [Fri, 13 Apr 2018 17:59:55 +0000 (19:59 +0200)]
Correct formatting with cargo fmt
bors [Fri, 13 Apr 2018 16:28:23 +0000 (16:28 +0000)]
Auto merge of #5353 - matklad:features, r=alexcrichton
New semantics for `--features` flag
Historically, feature-related flags like `--all-features`,
`--no-default-features` and `--features` operated on the *current*
package. That is, `cargo --package foo --feature feat` would activate
`feat` for the package at the current working directory, and not for the
`foo` package. `-Z package-features` flag implements the more obvious
semantics for this combination of flags. This changes behavior, and that
is why we want to start with an unstable opt-in. The changes are:
* `--feature` flag affects the selected package. It is an error to
specify `--feature` with more than a single `-p`, or with `-p` outside
workspace (the latter could work in theory, but would be hard to
implement).
* `--all-features` and `--no-default-features` affect all selected
packages, and not the one at cwd.
* The package in `cwd` is not implicitly enabled when doing feature
selection. That is, `cargo build -Z package-features -p foo` could
select *less* features for various packages than `cargo build -p foo`.
r? @alexcrichton
Aleksey Kladov [Fri, 13 Apr 2018 14:36:09 +0000 (17:36 +0300)]
New semantics for `--features` flag
Historically, feature-related flags like `--all-features`,
`--no-default-features` and `--features` operated on the *current*
package. That is, `cargo --package foo --feature feat` would activate
`feat` for the package at the current working directory, and not for the
`foo` package. `-Z package-features` flag implements the more obvious
semantics for this combination of flags. This changes behavior, and that
is why we want to start with an unstable opt-in. The changes are:
* `--feature` flag affects the selected package. It is an error to
specify `--feature` with more than a single `-p`, or with `-p` outside
workspace (the latter could work in theory, but would be hard to
implement).
* `--all-features` and `--no-default-features` affect all selected
packages, and not the one at cwd.
* The package in `cwd` is not implicitly enabled when doing feature
selection. That is, `cargo build -Z package-features -p foo` could
select *less* features for various packages than `cargo build -p foo`.
Dirkjan Ochtman [Thu, 12 Apr 2018 14:12:14 +0000 (16:12 +0200)]
Move BuildConfig initialization into new() method
Dirkjan Ochtman [Thu, 12 Apr 2018 13:58:12 +0000 (15:58 +0200)]
Move creation of TargetConfig into new() method
bors [Thu, 12 Apr 2018 11:16:51 +0000 (11:16 +0000)]
Auto merge of #5350 - matklad:simplify-install, r=djc
Simplify install
Just a mechanical simplification.
bors [Thu, 12 Apr 2018 10:44:05 +0000 (10:44 +0000)]
Auto merge of #5352 - surma-dump:what-is-a-manifest, r=matklad
Mention Cargo.toml in manifest help description
I was looking for a CLI flag to pass a different TOML to cargo, but didn’t realize it’s called “manifest” from reading the help.
Surma [Thu, 12 Apr 2018 10:42:19 +0000 (12:42 +0200)]
Remove parens
Surma [Thu, 12 Apr 2018 10:30:42 +0000 (12:30 +0200)]
Mention Cargo.toml in manifest help description
bors [Thu, 12 Apr 2018 08:00:38 +0000 (08:00 +0000)]
Auto merge of #5346 - derekdreery:package_id_docs, r=matklad
Add docs
Just adds some docs matching what @matklad told me on irc :)
Richard Dodd (dodj) [Thu, 12 Apr 2018 07:32:53 +0000 (08:32 +0100)]
remove getter/setter docs
Aleksey Kladov [Thu, 12 Apr 2018 06:06:09 +0000 (09:06 +0300)]
Cleanup formatting
Aleksey Kladov [Thu, 12 Apr 2018 06:04:46 +0000 (09:04 +0300)]
Minor simplification
bors [Thu, 12 Apr 2018 00:03:59 +0000 (00:03 +0000)]
Auto merge of #5348 - djc:resolve-target-specific, r=alexcrichton
Have compilation context info available earlier in the build process
Eventually, I hope this will allow us to ignore platform-specific dependencies when irrelevant for the current build earlier in the process. This should save on extraneous errors. As is, this seems like it already decreases coupling in the code base.
Dirkjan Ochtman [Wed, 11 Apr 2018 23:08:01 +0000 (01:08 +0200)]
Move compiler driver code from ops into core
Dirkjan Ochtman [Wed, 11 Apr 2018 22:49:56 +0000 (00:49 +0200)]
Use relative dependencies inside cargo_rustc module
Dirkjan Ochtman [Wed, 11 Apr 2018 22:37:30 +0000 (00:37 +0200)]
Use Unit type as interface to compilation
Dirkjan Ochtman [Wed, 11 Apr 2018 22:29:24 +0000 (00:29 +0200)]
Move cargo_rustc::compile_targets() to Context::compile()
Dirkjan Ochtman [Wed, 11 Apr 2018 20:50:07 +0000 (22:50 +0200)]
Hoist Context creation out of compile_targets()
Dirkjan Ochtman [Wed, 11 Apr 2018 20:25:05 +0000 (22:25 +0200)]
Deliver units to compilation Context after initialization
Dirkjan Ochtman [Wed, 11 Apr 2018 22:04:58 +0000 (00:04 +0200)]
Error out early on empty targets
Dirkjan Ochtman [Wed, 11 Apr 2018 21:55:01 +0000 (23:55 +0200)]
Initialize BuildConfig in a single place
Dirkjan Ochtman [Wed, 11 Apr 2018 21:44:58 +0000 (23:44 +0200)]
Inline single use variable binding
Dirkjan Ochtman [Wed, 11 Apr 2018 14:05:28 +0000 (16:05 +0200)]
Process build configuration before resolving dependencies
Dirkjan Ochtman [Wed, 11 Apr 2018 21:16:17 +0000 (23:16 +0200)]
Correct formatting with cargo fmt
Richard Dodd [Wed, 11 Apr 2018 16:42:52 +0000 (17:42 +0100)]
Add docs
bors [Wed, 11 Apr 2018 14:08:13 +0000 (14:08 +0000)]
Auto merge of #5341 - dwijnand:test-help, r=alexcrichton
tweak test/bench's help around filtering & libtest
Attempt to bring more clarity about test/bench's filtering arg by
detailing the distinction and integration between cargo's test/bench and
libtest.
Also make sure to mention how to see libtest's help/usage message.
Fixes #5337
Feedback welcome. Also, how do I auto-generate the man pages in
src/etc/man/? I'm wasn't sure about the escaping to attempt manually
editing.
bors [Wed, 11 Apr 2018 11:44:20 +0000 (11:44 +0000)]
Auto merge of #5343 - dwijnand:contributing-fmt, r=matklad
add a rustfmt detail to CONTRIBUTING.md
stealing from the info in https://github.com/rust-lang/cargo/pull/5301#issuecomment-
380389555
Dale Wijnand [Wed, 11 Apr 2018 11:39:08 +0000 (12:39 +0100)]
add a rustfmt detail to CONTRIBUTING.md
Dale Wijnand [Wed, 11 Apr 2018 06:39:13 +0000 (07:39 +0100)]
tweak test/bench's help around filtering & libtest
Attempt to bring more clarity about test/bench's filtering arg by
detailing the distinction and integration between cargo's test/bench and
libtest.
Also make sure to mention how to see libtest's help/usage message.
Fixes #5337
bors [Wed, 11 Apr 2018 05:04:28 +0000 (05:04 +0000)]
Auto merge of #5333 - dwijnand:warn-install-2018, r=matklad
Warn/error when cargo installing the cwd in 2015/2018
Fixes #5327
submitted for early review. feedback very welcome, I'm happy to iterate (and learn).
Dale Wijnand [Tue, 10 Apr 2018 15:34:41 +0000 (16:34 +0100)]
more cargo install usage adaptations in the same tests
Dale Wijnand [Tue, 10 Apr 2018 15:05:18 +0000 (16:05 +0100)]
adapt legitimate cargo install usage to avoid the new warning/error
Dale Wijnand [Tue, 10 Apr 2018 14:13:26 +0000 (15:13 +0100)]
add the inverse `is_not has_installed_exe` assertion
Dale Wijnand [Tue, 10 Apr 2018 14:10:38 +0000 (15:10 +0100)]
warn in 2015, error in 2018
Dale Wijnand [Tue, 10 Apr 2018 12:32:40 +0000 (13:32 +0100)]
re-implement by adding a few from_cwd args
Dale Wijnand [Tue, 10 Apr 2018 07:16:57 +0000 (08:16 +0100)]
found a way to reuse SourceId::for_path in SourceId::from_cwd
Dale Wijnand [Tue, 10 Apr 2018 05:48:00 +0000 (06:48 +0100)]
document SourceId::from_cwd
Dale Wijnand [Tue, 10 Apr 2018 05:44:59 +0000 (06:44 +0100)]
enable cargo edition feature & bump to 2018
Dale Wijnand [Tue, 10 Apr 2018 00:37:12 +0000 (01:37 +0100)]
Warn about cargo installing the cwd in 2018 edition
Fixes #5327
bors [Mon, 9 Apr 2018 22:04:05 +0000 (22:04 +0000)]
Auto merge of #5331 - dwijnand:contributing-fmt, r=matklad
Tweak rustfmt details in CONTRIBUTING.md
Closes #5329