Jeffrey Yasskin [Sat, 5 Sep 2015 05:02:01 +0000 (22:02 -0700)]
Round 2 of review:
* Converted pre-existing trace!s back from debug!
* Computed `cur` from the top-most frame instead of storing it.
* Wrapped to 80 columns.
* Removed prev_active and all_candidates from `BacktrackStack`
* Removed unnecessary type annotations.
* Called activation_error() only when starting to backtrack, since it bailed
early when passed an error anyway.
Jeffrey Yasskin [Tue, 1 Sep 2015 05:05:04 +0000 (22:05 -0700)]
Reset `parent`, `cur`, and `dep` when backtracking.
Jeffrey Yasskin [Tue, 1 Sep 2015 04:53:16 +0000 (21:53 -0700)]
Fix @alexcrichton's comments.
Jeffrey Yasskin [Tue, 1 Sep 2015 03:56:35 +0000 (20:56 -0700)]
Merge past #1939.
bors [Tue, 1 Sep 2015 03:16:17 +0000 (03:16 +0000)]
Auto merge of #1960 - alexcrichton:build-static, r=huonw
There's no real reason to eagerly link build scripts dynamically as they're not
going to benefit that much from dynamic linking. Most of the time they only have
one dynamic dependency, libstd, and most other Rust programs don't link it
dynamically so there's not really many space savings either.
Alex Crichton [Tue, 1 Sep 2015 02:49:41 +0000 (19:49 -0700)]
Don't link build scripts dynamically
There's no real reason to eagerly link build scripts dynamically as they're not
going to benefit that much from dynamic linking. Most of the time they only have
one dynamic dependency, libstd, and most other Rust programs don't link it
dynamically so there's not really many space savings either.
bors [Tue, 1 Sep 2015 02:36:44 +0000 (02:36 +0000)]
Auto merge of #1939 - impl:resolve-deps-with-host-triple, r=alexcrichton
This fixes a specific issue with platform-specific dependencies of build dependencies when cross-compiling. The gist of the problem is that when dependencies are initially resolved, only the target platform is considered, which can cause the later analysis of the graph by the custom build process to miss dependencies.
I fixed the issue by including both target and host platforms in the dependency resolution process. I'm brand new to the Rust ecosystem and language, so I'm not sure if this is the right route architecturally, or if my code is even remotely acceptable. Any feedback would be greatly appreciated!
I've also included a test case to demonstrate the problem; it fails against the current master.
Thanks!
bors [Tue, 1 Sep 2015 02:23:25 +0000 (02:23 +0000)]
Auto merge of #1955 - carols10cents:even-more-manifest-path-consistency, r=alexcrichton
Hiii :) This builds on #1953, so if yinz like this better, I'll close that one.
This PR makes all commands that take `--manifest-path` (except locate-project, see below) behave in a consistent way with regards to invalid paths, and hopefully gives better error messages.
This DOES break some instances where commands were "working", ie, completing their command successfully, with some path that they decided was right, not necessarily exactly the path that was passed in though. I'm not sure how this impacts whatever backwards compatibility guarantees cargo has. Given that those cases weren't using a valid path to an existing Cargo.toml, hopefully no one is relying on that behavior?
So locate-project... I'm not sure what to do about that one, exactly... If we define `--manifest-path` as a path to a Cargo.toml, then uhhhh we've located the project, it's right where you told us it is ;) So I think we should change it to be `--search-path` or similar? I'm too sleepy to take care of that tonight, so I just left it out of the manifest path tests.
Carol (Nichols || Goulding) [Tue, 1 Sep 2015 01:25:25 +0000 (21:25 -0400)]
Use find_root_manifest_for_cwd for now-duped code in verify-project
Carol (Nichols || Goulding) [Sun, 30 Aug 2015 03:17:31 +0000 (23:17 -0400)]
Give better error messages for invalid manifest-paths
Inspired by https://github.com/rust-lang/cargo/pull/1182.
Fixes #1158, #1772, #1773.
Carol (Nichols || Goulding) [Sun, 30 Aug 2015 03:16:20 +0000 (23:16 -0400)]
Add tests for different kinds of invalid manifest paths
Carol (Nichols || Goulding) [Sat, 29 Aug 2015 17:26:06 +0000 (13:26 -0400)]
Make verify-project able to verify the current working dir project
All other commands use the Cargo.toml in the current directory if
--manifest-path is not specified; this makes verify-project consistent.
Carol (Nichols || Goulding) [Sat, 29 Aug 2015 17:14:37 +0000 (13:14 -0400)]
Add tests for different arguments given to verify-project
Right now, only passing --manifest-path a path to a Cargo.toml file
works, but I think not specifying a path and verifying the current
working directory, if it has a Cargo.toml, should work as well for
consistency with all the other commands that optionally take
--manifest-path.
Carol (Nichols || Goulding) [Sat, 29 Aug 2015 17:03:05 +0000 (13:03 -0400)]
Make read-manifest accept consistent manifest-path arguments
And also preserve the existing behavior of accepting an absolute path to
a directory containing a Cargo.toml for backwards compatibility.
Carol (Nichols || Goulding) [Sat, 29 Aug 2015 16:08:12 +0000 (12:08 -0400)]
Add tests for different arguments given to read-manifest
Right now, only passing --manifest-path an absolute path to the
parent directory of a Cargo.toml file works, but I think the other
tests should work as well for consistency with other commands that
optionally take --manifest-path.
Noah Fontes [Mon, 31 Aug 2015 23:33:29 +0000 (16:33 -0700)]
Fix platform-specific dependency resolution for custom builds.
This change resolves dependencies against all possible platforms.
Activation of dependencies for a given target in the context of one
or more platforms is now wholly handled by cargo_rustc.
bors [Sat, 29 Aug 2015 17:00:51 +0000 (17:00 +0000)]
Auto merge of #1943 - mseri:patch-1, r=alexcrichton
It maybe a tacky way, but I think that changing `util::without_prefix` is a bad approach. Maybe modify `process.build_command` could be another possible approach.
It could be worth to take more time to be sure to find the root of the problem. I am quite new to rust, if anybody can point out the right way of dealing with it, I will be happy to submit a new PR.
mseri [Sat, 29 Aug 2015 15:07:52 +0000 (16:07 +0100)]
Fix for test on windows
mseri [Sat, 29 Aug 2015 11:03:14 +0000 (12:03 +0100)]
Added test for issue #1942
bors [Fri, 28 Aug 2015 16:20:08 +0000 (16:20 +0000)]
Auto merge of #1931 - thirtythreeforty:printinfo, r=alexcrichton
Compare #1621. Like that pull request, this one solves #984.
I have rewritten most of @pyfisch's logic to account for @alexcrichton's comments. Specifically, this code will correctly handle adding/removing multiple versions of one package, as well as several packages with different sources, but the same name.
The output looks like this:
```
[georgev@desertvoice cargo]$ cargo update
Updating registry `https://github.com/rust-lang/crates.io-index`
Updating libc v0.1.8 -> v0.1.10
Updating memchr v0.1.3 -> v0.1.5
Updating num v0.1.26 -> v0.1.27
Updating rand v0.3.9 -> v0.3.10
Updating rustc-serialize v0.3.15 -> v0.3.16
```
Comments welcome.
r? @alexcrichton
mseri [Fri, 28 Aug 2015 09:28:17 +0000 (10:28 +0100)]
Improved fix for the issue #1942
George Hilliard [Sun, 17 May 2015 16:45:55 +0000 (18:45 +0200)]
Print information about updated packages on cargo update
Closes #984.
bors [Thu, 27 Aug 2015 05:56:40 +0000 (05:56 +0000)]
Auto merge of #1950 - mbrubeck:cargo_profile, r=alexcrichton
None
Matt Brubeck [Thu, 27 Aug 2015 03:50:48 +0000 (20:50 -0700)]
Fix docs for the CARGO_PROFILE variable
bors [Wed, 26 Aug 2015 23:27:42 +0000 (23:27 +0000)]
Auto merge of #1945 - Frederick888:master, r=alexcrichton
This BASH function will find available cargo configurations recursively from the project directory to root and provide options for `--target`.
Frederick Zhang [Wed, 26 Aug 2015 18:54:55 +0000 (02:54 +0800)]
check and get dir by $PWD for Windows builds under Cygwin
Frederick Zhang [Wed, 26 Aug 2015 18:31:46 +0000 (02:31 +0800)]
avoid wrong invoking from non-project directory
Frederick Zhang [Wed, 26 Aug 2015 18:02:34 +0000 (02:02 +0800)]
add forgotten local declarations
Frederick Zhang [Wed, 26 Aug 2015 17:11:09 +0000 (01:11 +0800)]
bash completion for targets
mseri [Wed, 26 Aug 2015 14:37:07 +0000 (15:37 +0100)]
Fix for issue #1942 'cargo run fails if called from executable folder'
It maybe a hacky way but I think that changing `util::without_prefix` is a bad approach. Maybe modify `process.build_command` could be another possible approach.
Jeffrey Yasskin [Wed, 26 Aug 2015 03:23:33 +0000 (20:23 -0700)]
Allow inlining and fix up comments.
Since the algorithm isn't recursive anymore, inlining is fine.
Jeffrey Yasskin [Tue, 25 Aug 2015 05:12:55 +0000 (22:12 -0700)]
Clean up.
Jeffrey Yasskin [Tue, 25 Aug 2015 04:06:02 +0000 (21:06 -0700)]
Eliminate recursion!
Jeffrey Yasskin [Sat, 15 Aug 2015 21:50:53 +0000 (14:50 -0700)]
Extract the sibling activation function.
Jeffrey Yasskin [Sat, 15 Aug 2015 19:52:34 +0000 (12:52 -0700)]
Move all recursion to activate_deps.
Jeffrey Yasskin [Sat, 15 Aug 2015 16:08:58 +0000 (09:08 -0700)]
Remove an unnecessary lifetime parameter.
Jeffrey Yasskin [Sat, 15 Aug 2015 05:32:48 +0000 (22:32 -0700)]
Make activation_error always return an error.
Jeffrey Yasskin [Sat, 15 Aug 2015 03:38:23 +0000 (20:38 -0700)]
Add some type annotations to make it easier to read the resolver.
bors [Tue, 25 Aug 2015 23:18:58 +0000 (23:18 +0000)]
Auto merge of #1940 - steveklabnik:whoops, r=huonw
Thanks @huonw :sob:
Steve Klabnik [Tue, 25 Aug 2015 23:12:30 +0000 (19:12 -0400)]
Close some tags.
Thanks @huonw :sob:
bors [Tue, 25 Aug 2015 22:48:11 +0000 (22:48 +0000)]
Auto merge of #1936 - steveklabnik:gh1870, r=alexcrichton
Fixes #1870
bors [Tue, 25 Aug 2015 22:34:31 +0000 (22:34 +0000)]
Auto merge of #1934 - steveklabnik:gh1930, r=alexcrichton
Fixes #1930
bors [Tue, 25 Aug 2015 22:07:53 +0000 (22:07 +0000)]
Auto merge of #1935 - steveklabnik:gh1898, r=alexcrichton
Fixes #1898
bors [Tue, 25 Aug 2015 19:15:43 +0000 (19:15 +0000)]
Auto merge of #1938 - blaenk:environment-variables-fix, r=steveklabnik
#1845 seems to have forgotten to add the page to the DOCS variable in the makefile
Jorge Israel Peña [Tue, 25 Aug 2015 19:10:58 +0000 (12:10 -0700)]
make sure that environment-variables page is built
PR 1845 seems to have forgotten to add the page to the DOCS variable in
the makefile
Steve Klabnik [Tue, 25 Aug 2015 16:53:18 +0000 (12:53 -0400)]
Update guide to use crates.io dependencies
Fixes #1930
Steve Klabnik [Tue, 25 Aug 2015 17:00:45 +0000 (13:00 -0400)]
Add a note to the FAQ about * for library dependencies
Fixes #1870
Steve Klabnik [Tue, 25 Aug 2015 16:58:02 +0000 (12:58 -0400)]
Make note about small divergance from SemVer
Fixes #1898
bors [Tue, 25 Aug 2015 16:31:53 +0000 (16:31 +0000)]
Auto merge of #1845 - steveklabnik:env_vars, r=alexcrichton
These were spread out before, now they're in one place.
Fixes #1538
r? @alexcrichton
I'm also missing an entry on `CARGO_PROFILE`, what does it do?
Steve Klabnik [Mon, 27 Jul 2015 19:14:42 +0000 (15:14 -0400)]
Consolidate and document environment variables
These were spread out before, now they're in one place.
Fixes #1538
bors [Tue, 25 Aug 2015 16:20:19 +0000 (16:20 +0000)]
Auto merge of #1932 - steveklabnik:gh1767, r=alexcrichton
Fixes #1767
bors [Tue, 25 Aug 2015 16:08:03 +0000 (16:08 +0000)]
Auto merge of #1933 - steveklabnik:gh1855, r=alexcrichton
Fixes #1855
Steve Klabnik [Tue, 25 Aug 2015 15:57:44 +0000 (11:57 -0400)]
Clarify -- in cargo run help
Fixes #1855
Steve Klabnik [Tue, 25 Aug 2015 15:54:07 +0000 (11:54 -0400)]
Clarfiy that --{test,bench} select targets
Fixes #1767
bors [Fri, 21 Aug 2015 19:00:53 +0000 (19:00 +0000)]
Auto merge of #1928 - alexcrichton:update, r=alexcrichton
* Update dependencies that are getting warnings on nightly
* Tweak expected output of failing tests
Alex Crichton [Fri, 21 Aug 2015 18:44:16 +0000 (11:44 -0700)]
Update for Rust nightly
* Update dependencies that are getting warnings on nightly
* Tweak expected output of failing tests
bors [Fri, 21 Aug 2015 18:41:34 +0000 (18:41 +0000)]
Auto merge of #1927 - Turbo87:python, r=alexcrichton
see https://www.python.org/dev/peps/pep-0008/
Tobias Bieniek [Fri, 21 Aug 2015 15:32:36 +0000 (17:32 +0200)]
src/etc: Fix PEP8 issues in Python scripts
Tobias Bieniek [Fri, 21 Aug 2015 15:30:26 +0000 (17:30 +0200)]
Add .pyc files in src/etc/ to .gitignore file
bors [Thu, 20 Aug 2015 04:22:28 +0000 (04:22 +0000)]
Auto merge of #1922 - Gankro:css, r=alexcrichton
Alexis Beingessner [Thu, 20 Aug 2015 03:38:56 +0000 (20:38 -0700)]
make images less amazing
bors [Thu, 20 Aug 2015 03:08:10 +0000 (03:08 +0000)]
Auto merge of #1921 - Gankro:doc, r=alexcrichton
Alexis Beingessner [Thu, 20 Aug 2015 03:05:57 +0000 (20:05 -0700)]
update makefile to include new images
bors [Wed, 19 Aug 2015 16:36:41 +0000 (16:36 +0000)]
Auto merge of #1914 - thirtythreeforty:crate-type, r=alexcrichton
This fixes a problem with manifest parsing that I detailed [here](http://stackoverflow.com/a/
32055245/
1830736). Namely, requesting an invalid `crate-type`, as in the following:
```
[lib]
crate-type = ["bad_type"]
```
did not cause an error to be printed, but rather the bad list of types was silently converted to `["rlib"]`. This was confusing to the user.
Cargo now properly rejects the above snippet.
bors [Wed, 19 Aug 2015 16:14:14 +0000 (16:14 +0000)]
Auto merge of #1920 - Turbo87:uppercase-docopts, r=alexcrichton
Every other command except for `cargo new` is using <argument> for positional arguments and ARG for option arguments.
Tobias Bieniek [Wed, 19 Aug 2015 08:49:50 +0000 (10:49 +0200)]
bin/new: Use uppercase option arguments
Every other command except for `cargo new` is using <argument> for positional
arguments and ARG for option arguments.
George Hilliard [Sat, 15 Aug 2015 19:49:09 +0000 (14:49 -0500)]
Warn about and ignore invalid crate-types in manifest
bors [Tue, 18 Aug 2015 18:11:02 +0000 (18:11 +0000)]
Auto merge of #1918 - Gankro:doc-teams, r=alexcrichton
Alexis Beingessner [Tue, 18 Aug 2015 18:09:49 +0000 (11:09 -0700)]
modify help owner
Alexis Beingessner [Tue, 18 Aug 2015 17:55:01 +0000 (10:55 -0700)]
not really a url
Alexis Beingessner [Tue, 18 Aug 2015 17:45:54 +0000 (10:45 -0700)]
add docs for teams
bors [Tue, 18 Aug 2015 17:27:44 +0000 (17:27 +0000)]
Auto merge of #1916 - alexcrichton:update-libssh2-sys, r=alexcrichton
The builds on the linux bots are currently broken because the recent
modifications to this build script forgot to set up PKG_CONFIG_PATH for custom
installations of OpenSSL
Alex Crichton [Tue, 18 Aug 2015 17:24:56 +0000 (10:24 -0700)]
Update libssh2-sys's build script
The builds on the linux bots are currently broken because the recent
modifications to this build script forgot to set up PKG_CONFIG_PATH for custom
installations of OpenSSL
bors [Mon, 17 Aug 2015 17:10:09 +0000 (17:10 +0000)]
Auto merge of #1915 - alexcrichton:downgrade-libgit2, r=huonw
Unfortunately this flew past on the bots because we didn't built on one of the
10.7 bots, but it looks like libgit2 doesn't currently build on OSX 10.7 so
we'll have to wait until that's fixed to update.
The tracking issue for fixing this in libgit2 is: https://github.com/libgit2/libgit2/issues/3386
Alex Crichton [Mon, 17 Aug 2015 16:46:45 +0000 (09:46 -0700)]
Revert update of libgit2
Unfortunately this flew past on the bots because we didn't built on one of the
10.7 bots, but it looks like libgit2 doesn't currently build on OSX 10.7 so
we'll have to wait until that's fixed to update.
bors [Mon, 17 Aug 2015 16:36:40 +0000 (16:36 +0000)]
Auto merge of #1912 - achanda:patch-1, r=alexcrichton
The -B switch turns off .pyc file generation
bors [Mon, 17 Aug 2015 16:22:35 +0000 (16:22 +0000)]
Auto merge of #1908 - alexcrichton:moar-stack, r=huonw
There have been a number of reports of Cargo triggering a stack overflow in the
algorithm implemented in `cargo::core::resolve`, and although many attempts have
been made to reduce the stack space of the two relevant recursive functions it
seems likely that this will not always be enough. For now, before moving the
recursion to the heap manually, spawn the main thread with a large stack (e.g.
mirror what the compiler does) to ensure that the same scenarios happen across
platforms at least.
Currently on my machine I get a 2MB stack on Linux and a 512K stack on OSX, so
bumping this up to 8MB should be more than enough for the recursion in this
algorithm. I also hope that with nonzeroing drop a few of the recursive calls
will be able to become tail recursive, which should also help with stack space!
Closes #1897
Abhishek Chanda [Mon, 17 Aug 2015 07:18:34 +0000 (00:18 -0700)]
Do not generate .pyc file
The -B switch turns off .pyc file generation
Alex Crichton [Sun, 16 Aug 2015 17:47:39 +0000 (10:47 -0700)]
Run cargo with a large stack
There have been a number of reports of Cargo triggering a stack overflow in the
algorithm implemented in `cargo::core::resolve`, and although many attempts have
been made to reduce the stack space of the two relevant recursive functions it
seems likely that this will not always be enough. For now, before moving the
recursion to the heap manually, spawn the main thread with a large stack (e.g.
mirror what the compiler does) to ensure that the same scenarios happen across
platforms at least.
Currently on my machine I get a 2MB stack on Linux and a 512K stack on OSX, so
bumping this up to 8MB should be more than enough for the recursion in this
algorithm. I also hope that with nonzeroing drop a few of the recursive calls
will be able to become tail recursive, which should also help with stack space!
Closes #1897
Alex Crichton [Sat, 15 Aug 2015 00:31:29 +0000 (17:31 -0700)]
Pass Method by reference to save some stack space
bors [Fri, 14 Aug 2015 20:44:13 +0000 (20:44 +0000)]
Auto merge of #1885 - alexcrichton:update-deps, r=alexcrichton
* Picks up a few breaking changes to dependency APIs, notably the tar-rs changes
and git2-rs changes.
* Builds should now work with VS 2015
Alex Crichton [Mon, 3 Aug 2015 17:04:22 +0000 (10:04 -0700)]
Update dependencies and Rust that's used
* Picks up a few breaking changes to dependency APIs, notably the tar-rs changes
and git2-rs changes.
* Builds should now work with VS 2015
bors [Thu, 13 Aug 2015 21:44:13 +0000 (21:44 +0000)]
Auto merge of #1903 - felixbuenemann:fix-el-capitan-make, r=alexcrichton
The upcoming Mac OS X 10.11 introduces a security measure thar prohibits exporting DYLD_LIBRARY_PATH to subshells. This fix removes the quotes around several program invocation so that they are not called from a subshell.
This fixes #1816.
Felix Bünemann [Thu, 13 Aug 2015 17:28:50 +0000 (19:28 +0200)]
Fix make and make doc on Mac OS X 10.11 El Capitan
The upcoming Mac OS X 10.11 introduces a security measure thar prohibits
exporting DYLD_LIBRARY_PATH to subshells. This fix removes the quotes
around several program invocation so that they are not called from a
subshell.
bors [Thu, 13 Aug 2015 16:30:27 +0000 (16:30 +0000)]
Auto merge of #1902 - alexcrichton:update-url, r=huonw
Closes #1884
Alex Crichton [Thu, 13 Aug 2015 16:25:24 +0000 (09:25 -0700)]
Update rust-url to fix a bug in URL parsing
Closes #1884
bors [Thu, 13 Aug 2015 16:03:23 +0000 (16:03 +0000)]
Auto merge of #1895 - achanda:1892, r=alexcrichton
Closes #1892
bors [Wed, 12 Aug 2015 18:56:05 +0000 (18:56 +0000)]
Auto merge of #1896 - achanda:tidy, r=alexcrichton
Abhishek Chanda [Wed, 12 Aug 2015 06:21:06 +0000 (23:21 -0700)]
Improve the error message when a crate cannot be found
Closes #1892
Abhishek Chanda [Wed, 12 Aug 2015 06:27:53 +0000 (23:27 -0700)]
Fix error formatting a bit
bors [Wed, 12 Aug 2015 01:06:40 +0000 (01:06 +0000)]
Auto merge of #1893 - alexcrichton:bump, r=brson
Another Rust release rolled around so bump Cargo as well
r? @brson
I'll tag 0.4.0 after this merges
Alex Crichton [Tue, 11 Aug 2015 20:31:21 +0000 (13:31 -0700)]
Bump to 0.5.0
bors [Tue, 11 Aug 2015 01:26:53 +0000 (01:26 +0000)]
Auto merge of #1888 - achanda:1878, r=alexcrichton
Closes #1878
Abhishek Chanda [Tue, 11 Aug 2015 01:15:41 +0000 (18:15 -0700)]
Do not print extra newlines on error
Closes #1878
bors [Tue, 11 Aug 2015 00:14:27 +0000 (00:14 +0000)]
Auto merge of #1887 - alexcrichton:smaller-stacks, r=huonw
Apparently not actually emitting the calls to trace! saves a good deal of stack
space, fixing the overflow found in #1875.
Closes #1875
Alex Crichton [Tue, 11 Aug 2015 00:09:11 +0000 (17:09 -0700)]
Use a custom trace! macro in resolution
Apparently not actually emitting the calls to trace! saves a good deal of stack
space, fixing the overflow found in #1875.
Closes #1875
bors [Mon, 10 Aug 2015 15:58:38 +0000 (15:58 +0000)]
Auto merge of #1881 - brson:built-on, r=alexcrichton
rustc no longer does this, so neither should Cargo.
bors [Sun, 9 Aug 2015 15:54:13 +0000 (15:54 +0000)]
Auto merge of #1883 - mdinger:mdinger-patch-1, r=steveklabnik
See [here](http://doc.crates.io/manifest.html#the-[package]-section) where the link is broken. I think this'll fix it.
mdinger [Sun, 9 Aug 2015 00:24:56 +0000 (20:24 -0400)]
Fix link
Brian Anderson [Fri, 7 Aug 2015 18:26:12 +0000 (11:26 -0700)]
Remove the built-on date from --version
rustc no longer does this, so neither should Cargo.