cargo.git
7 years agoAdded new 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.)

7 years agoAuto merge of #5379 - alexcrichton:bump-fieltime, r=matklad
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

7 years agoAuto merge of #5383 - dwijnand:contributing-custom-build, r=alexcrichton
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.

7 years agoAuto merge of #5381 - dwijnand:github-casing, r=alexcrichton
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.

7 years agoAuto merge of #5380 - dwijnand:typo, r=alexcrichton
bors [Wed, 18 Apr 2018 00:39:00 +0000 (00:39 +0000)]
Auto merge of #5380 - dwijnand:typo, r=alexcrichton

typo

None

7 years agoadd build-from-source info to Tests architecture docs
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.

7 years agoBump version of `filetime` dependency
Alex Crichton [Tue, 17 Apr 2018 22:08:04 +0000 (15:08 -0700)]
Bump version of `filetime` dependency

7 years agoAuto merge of #5372 - alexcrichton:bump, r=matklad
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!

7 years agotypo
Dale Wijnand [Tue, 17 Apr 2018 20:10:28 +0000 (22:10 +0200)]
typo

7 years agoFix how GitHub is written
Dale Wijnand [Tue, 17 Apr 2018 20:14:41 +0000 (22:14 +0200)]
Fix how GitHub is written

7 years agoAuto merge of #5374 - matklad:simplify, r=alexcrichton
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

7 years agoAuto merge of #5361 - derekdreery:issue_5345, r=matklad
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.

7 years agoAdd fix and some docs
Richard Dodd [Tue, 17 Apr 2018 13:16:58 +0000 (14:16 +0100)]
Add fix and some docs

7 years agoSimplify RegistryPackage deserialization
Aleksey Kladov [Tue, 17 Apr 2018 07:48:15 +0000 (10:48 +0300)]
Simplify RegistryPackage deserialization

7 years agoBump to 0.28.0
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!

7 years agoAuto merge of #5272 - Phlosioneer:5211-missing-size-hints, r=matklad
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

7 years agoAdd compile-time check for ExactSizeIterator
Phlosioneer [Mon, 16 Apr 2018 20:59:22 +0000 (16:59 -0400)]
Add compile-time check for ExactSizeIterator

7 years agoAuto merge of #5359 - matklad:rustc-cache, r=alexcrichton
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

7 years agorustc is rustc.exe on windows
Aleksey Kladov [Mon, 16 Apr 2018 16:22:53 +0000 (19:22 +0300)]
rustc is rustc.exe on windows

7 years agoSimplify
Aleksey Kladov [Mon, 16 Apr 2018 15:53:12 +0000 (18:53 +0300)]
Simplify

7 years agoMake rustc_info a hidden file
Aleksey Kladov [Mon, 16 Apr 2018 15:52:35 +0000 (18:52 +0300)]
Make rustc_info a hidden file

7 years agoHandle non-rustup cargo + rustup rustc in rustc cache
Aleksey Kladov [Mon, 16 Apr 2018 15:50:25 +0000 (18:50 +0300)]
Handle non-rustup cargo + rustup rustc in rustc cache

7 years agoAuto merge of #5360 - euclio:metadata, r=alexcrichton
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.

7 years agoRemove `internal` from error handling
Aleksey Kladov [Mon, 16 Apr 2018 14:57:25 +0000 (17:57 +0300)]
Remove `internal` from error handling

7 years agoAuto merge of #5357 - matklad:even-rust-has-format-string-bugs, r=alexcrichton
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 :-)

7 years agoBetter test description
Richard Dodd [Sun, 15 Apr 2018 13:00:36 +0000 (14:00 +0100)]
Better test description

7 years ago[Wip] fix issue 5345
Richard Dodd [Sun, 15 Apr 2018 12:56:22 +0000 (13:56 +0100)]
[Wip] fix issue 5345

7 years agoinclude package metadata in `cargo metadata`
Andy Russell [Sat, 14 Apr 2018 19:07:23 +0000 (15:07 -0400)]
include package metadata in `cargo metadata`

Fixes #4819.

7 years agoCorrectly resolve executables in paths on windows
Aleksey Kladov [Sat, 14 Apr 2018 14:06:05 +0000 (17:06 +0300)]
Correctly resolve executables in paths on windows

7 years agoAdd env-var to suppress rustc caching
Aleksey Kladov [Sat, 14 Apr 2018 11:09:23 +0000 (14:09 +0300)]
Add env-var to suppress rustc caching

7 years agoSpeedup no-op builds by caching rustc invocations
Aleksey Kladov [Sat, 14 Apr 2018 10:39:59 +0000 (13:39 +0300)]
Speedup no-op builds by caching rustc invocations

7 years agoHide BuildConfig.host_triple behind a getter
Aleksey Kladov [Sat, 14 Apr 2018 08:54:33 +0000 (11:54 +0300)]
Hide BuildConfig.host_triple behind a getter

7 years agoAssociated Rustc with a build config
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.

7 years agoExtract mtime calculation
Aleksey Kladov [Fri, 13 Apr 2018 18:11:41 +0000 (21:11 +0300)]
Extract mtime calculation

7 years agoCorrectly print fractional part of a second
Aleksey Kladov [Fri, 13 Apr 2018 22:06:21 +0000 (01:06 +0300)]
Correctly print fractional part of a second

7 years agoAuto merge of #5355 - djc:target-info-no-context, r=matklad
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.

7 years agoAuto merge of #5354 - djc:config-initialization, r=matklad
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

7 years agoInline creation of TargetInfos in Context::new()
Dirkjan Ochtman [Fri, 13 Apr 2018 18:09:50 +0000 (20:09 +0200)]
Inline creation of TargetInfos in Context::new()

7 years agoDon't require full Context to build a TargetInfo
Dirkjan Ochtman [Fri, 13 Apr 2018 17:58:00 +0000 (19:58 +0200)]
Don't require full Context to build a TargetInfo

7 years agoRemove target_triple() method from Context
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.

7 years agoRemove host_triple() method from Context
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.

7 years agoRemove requested_target() method from Context
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.

7 years agoCorrect formatting with cargo fmt
Dirkjan Ochtman [Fri, 13 Apr 2018 17:59:55 +0000 (19:59 +0200)]
Correct formatting with cargo fmt

7 years agoAuto merge of #5353 - matklad:features, r=alexcrichton
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

7 years agoNew semantics for `--features` flag
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`.

7 years agoMove BuildConfig initialization into new() method
Dirkjan Ochtman [Thu, 12 Apr 2018 14:12:14 +0000 (16:12 +0200)]
Move BuildConfig initialization into new() method

7 years agoMove creation of TargetConfig into new() method
Dirkjan Ochtman [Thu, 12 Apr 2018 13:58:12 +0000 (15:58 +0200)]
Move creation of TargetConfig into new() method

7 years agoAuto merge of #5350 - matklad:simplify-install, r=djc
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.

7 years agoAuto merge of #5352 - surma-dump:what-is-a-manifest, r=matklad
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.

7 years agoRemove parens
Surma [Thu, 12 Apr 2018 10:42:19 +0000 (12:42 +0200)]
Remove parens

7 years agoMention Cargo.toml in manifest help description
Surma [Thu, 12 Apr 2018 10:30:42 +0000 (12:30 +0200)]
Mention Cargo.toml in manifest help description

7 years agoAuto merge of #5346 - derekdreery:package_id_docs, r=matklad
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 :)

7 years agoremove getter/setter docs
Richard Dodd (dodj) [Thu, 12 Apr 2018 07:32:53 +0000 (08:32 +0100)]
remove getter/setter docs

7 years agoCleanup formatting
Aleksey Kladov [Thu, 12 Apr 2018 06:06:09 +0000 (09:06 +0300)]
Cleanup formatting

7 years agoMinor simplification
Aleksey Kladov [Thu, 12 Apr 2018 06:04:46 +0000 (09:04 +0300)]
Minor simplification

7 years agoAuto merge of #5348 - djc:resolve-target-specific, r=alexcrichton
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.

7 years agoMove compiler driver code from ops into core
Dirkjan Ochtman [Wed, 11 Apr 2018 23:08:01 +0000 (01:08 +0200)]
Move compiler driver code from ops into core

7 years agoUse relative dependencies inside cargo_rustc module
Dirkjan Ochtman [Wed, 11 Apr 2018 22:49:56 +0000 (00:49 +0200)]
Use relative dependencies inside cargo_rustc module

7 years agoUse Unit type as interface to compilation
Dirkjan Ochtman [Wed, 11 Apr 2018 22:37:30 +0000 (00:37 +0200)]
Use Unit type as interface to compilation

7 years agoMove cargo_rustc::compile_targets() to Context::compile()
Dirkjan Ochtman [Wed, 11 Apr 2018 22:29:24 +0000 (00:29 +0200)]
Move cargo_rustc::compile_targets() to Context::compile()

7 years agoHoist Context creation out of compile_targets()
Dirkjan Ochtman [Wed, 11 Apr 2018 20:50:07 +0000 (22:50 +0200)]
Hoist Context creation out of compile_targets()

7 years agoDeliver units to compilation Context after initialization
Dirkjan Ochtman [Wed, 11 Apr 2018 20:25:05 +0000 (22:25 +0200)]
Deliver units to compilation Context after initialization

7 years agoError out early on empty targets
Dirkjan Ochtman [Wed, 11 Apr 2018 22:04:58 +0000 (00:04 +0200)]
Error out early on empty targets

7 years agoInitialize BuildConfig in a single place
Dirkjan Ochtman [Wed, 11 Apr 2018 21:55:01 +0000 (23:55 +0200)]
Initialize BuildConfig in a single place

7 years agoInline single use variable binding
Dirkjan Ochtman [Wed, 11 Apr 2018 21:44:58 +0000 (23:44 +0200)]
Inline single use variable binding

7 years agoProcess build configuration before resolving dependencies
Dirkjan Ochtman [Wed, 11 Apr 2018 14:05:28 +0000 (16:05 +0200)]
Process build configuration before resolving dependencies

7 years agoCorrect formatting with cargo fmt
Dirkjan Ochtman [Wed, 11 Apr 2018 21:16:17 +0000 (23:16 +0200)]
Correct formatting with cargo fmt

7 years agoAdd docs
Richard Dodd [Wed, 11 Apr 2018 16:42:52 +0000 (17:42 +0100)]
Add docs

7 years agoAuto merge of #5341 - dwijnand:test-help, r=alexcrichton
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.

7 years agoAuto merge of #5343 - dwijnand:contributing-fmt, r=matklad
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

7 years agoadd a rustfmt detail to CONTRIBUTING.md
Dale Wijnand [Wed, 11 Apr 2018 11:39:08 +0000 (12:39 +0100)]
add a rustfmt detail to CONTRIBUTING.md

7 years agotweak test/bench's help around filtering & libtest
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

7 years agoAuto merge of #5333 - dwijnand:warn-install-2018, r=matklad
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).

7 years agomore cargo install usage adaptations in the same tests
Dale Wijnand [Tue, 10 Apr 2018 15:34:41 +0000 (16:34 +0100)]
more cargo install usage adaptations in the same tests

7 years agoadapt legitimate cargo install usage to avoid the new warning/error
Dale Wijnand [Tue, 10 Apr 2018 15:05:18 +0000 (16:05 +0100)]
adapt legitimate cargo install usage to avoid the new warning/error

7 years agoadd the inverse `is_not has_installed_exe` assertion
Dale Wijnand [Tue, 10 Apr 2018 14:13:26 +0000 (15:13 +0100)]
add the inverse `is_not has_installed_exe` assertion

7 years agowarn in 2015, error in 2018
Dale Wijnand [Tue, 10 Apr 2018 14:10:38 +0000 (15:10 +0100)]
warn in 2015, error in 2018

7 years agore-implement by adding a few from_cwd args
Dale Wijnand [Tue, 10 Apr 2018 12:32:40 +0000 (13:32 +0100)]
re-implement by adding a few from_cwd args

7 years agofound a way to reuse SourceId::for_path in SourceId::from_cwd
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

7 years agodocument SourceId::from_cwd
Dale Wijnand [Tue, 10 Apr 2018 05:48:00 +0000 (06:48 +0100)]
document SourceId::from_cwd

7 years agoenable cargo edition feature & bump to 2018
Dale Wijnand [Tue, 10 Apr 2018 05:44:59 +0000 (06:44 +0100)]
enable cargo edition feature & bump to 2018

7 years agoWarn about cargo installing the cwd in 2018 edition
Dale Wijnand [Tue, 10 Apr 2018 00:37:12 +0000 (01:37 +0100)]
Warn about cargo installing the cwd in 2018 edition

Fixes #5327

7 years agoAuto merge of #5331 - dwijnand:contributing-fmt, r=matklad
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

7 years agoTweak rustfmt details in CONTRIBUTING.md
Dale Wijnand [Mon, 9 Apr 2018 21:59:31 +0000 (22:59 +0100)]
Tweak rustfmt details in CONTRIBUTING.md

Closes #5329

7 years agoAuto merge of #5328 - dwijnand:doc-links-key, r=matklad
bors [Mon, 9 Apr 2018 20:30:49 +0000 (20:30 +0000)]
Auto merge of #5328 - dwijnand:doc-links-key, r=matklad

Add a reference to the links key in the manifest docs

Fixes #4975

7 years agoAdd a references to the links key in the manifest docs
Dale Wijnand [Mon, 9 Apr 2018 20:27:34 +0000 (21:27 +0100)]
Add a references to the links key in the manifest docs

Fixes #4975

7 years agoAuto merge of #5325 - dwijnand:patch-1, r=matklad
bors [Mon, 9 Apr 2018 18:41:15 +0000 (18:41 +0000)]
Auto merge of #5325 - dwijnand:patch-1, r=matklad

Fix link to I-nominated in CONTRIBUTING.md

7 years agoFix link to I-nominated in CONTRIBUTING.md
Dale Wijnand [Mon, 9 Apr 2018 18:38:58 +0000 (19:38 +0100)]
Fix link to I-nominated in CONTRIBUTING.md

7 years agoAuto merge of #5323 - matklad:document-good-stuff, r=alexcrichton
bors [Mon, 9 Apr 2018 13:19:05 +0000 (13:19 +0000)]
Auto merge of #5323 - matklad:document-good-stuff, r=alexcrichton

Document how to use Cargo's internal logging

I always forget the syntax for filtering by module, and I've learned about `CARGO_PROFILE` yesterday, so let's document these for other contributors as well :-)

7 years agoAuto merge of #5318 - ehuss:unstable-docs, r=matklad
bors [Sun, 8 Apr 2018 22:02:15 +0000 (22:02 +0000)]
Auto merge of #5318 - ehuss:unstable-docs, r=matklad

Add unstable documentation.

I kept most of these relatively brief with the intent that more complete
documentation would be added when a feature is stabilized.  I did my best to be
accurate, but I am unfamiliar with most of these features, so please let me know
if anything should change.

@matklad: I didn't fully understand the use case for `minimal-versions`, so I
didn't say much about it.  In particular, I didn't understand why one wouldn't
just use `~` or `=` semver requirements if you wanted to be careful about not
pulling in a newer version.  When someone says "1.0", aren't they explicitly
saying they want a newer version (up to 2.0) if it's available?  The example
in the RFC of switching a dependency to "=1.0" sounds like a breaking change
(essentially downgrading a dependency).

7 years agoUpdate out-dir option for #5322.
Eric Huss [Sun, 8 Apr 2018 17:52:57 +0000 (10:52 -0700)]
Update out-dir option for #5322.

7 years agoClarify -Z minimal-versions.
Eric Huss [Sun, 8 Apr 2018 17:40:50 +0000 (10:40 -0700)]
Clarify -Z minimal-versions.

7 years agoAdd unstable documentation.
Eric Huss [Sat, 7 Apr 2018 21:11:07 +0000 (14:11 -0700)]
Add unstable documentation.

I kept most of these relatively brief with the intent that more complete
documentation would be added when a feature is stabilized.  I did my best to be
accurate, but I am unfamiliar with most of these features, so please let me know
if anything should change.

@matklad: I didn't fully understand the use case for `minimal-versions`, so I
didn't say much about it.  In particular, I didn't understand why one wouldn't
just use `~` or `=` semver requirements if you wanted to be careful about not
pulling in a newer version.  When someone says "1.0", aren't they explicitly
saying they want a newer version (up to 2.0) if it's available?  The example
in the RFC of switching a dependency to "=1.0" sounds like a breaking change
(essentially downgrading a dependency).

7 years agoAuto merge of #5322 - matklad:correctly-use-unstable-options, r=alexcrichton
bors [Sun, 8 Apr 2018 17:11:32 +0000 (17:11 +0000)]
Auto merge of #5322 - matklad:correctly-use-unstable-options, r=alexcrichton

Properly use unstable options for out-dir

@alexcrichton how exactly are unstable CLI options supposed to be handled?

One can do `-Z unstable-options my-opt` (this is done for `registry`, and this pr uses the same approach for `out-dir`). Once can also do `-Z my-opt`. Doc comments say that `-Z my-opt=val` is also possible, but in reality it does not work.

This infra was inherited from `rustc`, which is a slightly different use-case, because it does not have subcommands. That is, if you do `-Z my-opt`, it is available for all subcommands, but does not show up in the help...

What do you think about having only `-Z unstable-options` to unlock all cli options? Or do we require a finer-graind granularity?

Somewhat related, we have a bunch of unstable options already... Do we have tracking issues for them, to know when the time comes to graduate them to stable?

7 years agoDocument how to use Cargo's internal logging
Aleksey Kladov [Sun, 8 Apr 2018 15:28:27 +0000 (18:28 +0300)]
Document how to use Cargo's internal logging

7 years agoAuto merge of #5319 - matklad:fix-profiler, r=Eh2406
bors [Sun, 8 Apr 2018 15:21:20 +0000 (15:21 +0000)]
Auto merge of #5319 - matklad:fix-profiler, r=Eh2406

Don't print profiling information twice

It's important to `.clear` the messages so that we don't print them
again for the next "profiling session". It might be argued that really
we should have a single "profiling session" for Cargo, but we don't at
the moment.

And, while we are at it, let's lock stdout as well, so that we won't
get confused when Cargo becomes multi-threaded and prints profiling info
from several threads simultaneously.

7 years agoProperly use unstable options for out-dir
Aleksey Kladov [Sun, 8 Apr 2018 11:47:35 +0000 (14:47 +0300)]
Properly use unstable options for out-dir

7 years agoDon't print profiling information twice
Aleksey Kladov [Sun, 8 Apr 2018 08:37:05 +0000 (11:37 +0300)]
Don't print profiling information twice

It's important to `.clear` the messages so that we don't print them
again for the next "profiling session". It might be argued that really
we should have a single "profiling session" for Cargo, but we don't at
the moment.

And, while we are at it, let's lock stdout as well, so that we won't
get confused when Cargo becomes multi-threaded and prints profiling info
from several threads simultaneously.

7 years agoAuto merge of #5317 - konstin:patch-1, r=matklad
bors [Sat, 7 Apr 2018 18:58:39 +0000 (18:58 +0000)]
Auto merge of #5317 - konstin:patch-1, r=matklad

Add link to the sources of the book

It's quite hard to find the folder with the sources of the book, so I added the link to the introduction.

7 years agoAdd link to the sources of the book
konstin [Sat, 7 Apr 2018 18:42:33 +0000 (20:42 +0200)]
Add link to the sources of the book

It's quite hard to find the folder with the sources of the book, so I added the link to the introduction.