Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile fails #43

Closed
EricCrosson opened this issue Jun 12, 2017 · 7 comments
Closed

Compile fails #43

EricCrosson opened this issue Jun 12, 2017 · 7 comments

Comments

@EricCrosson
Copy link

On ubuntu 16.04 Linux pollux 4.4.0-78-generic #99-Ubuntu SMP Thu Apr 27 15:29:09 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

What I did

Attempted to install

cargo install --git https://github.com/sharkdp/fd --verbose 

What I expected to happen

That fd would be installed to my path without a fuss, much like I experienced on my Mac

What actually happened

  Compiling fd v1.1.0 (https://github.com/sharkdp/fd#54f33e52)
     Running `rustc /home/eric/.cargo/git/checkouts/fd-9d671bc4b2af369e/54f33e5227e928fece1ed917749b6b4d4d23955f/src/main.rs --crate-name fd --crate-type bin -C opt-level=3 -C metadata=0ffa62fa1d203255 --out-dir /tmp/cargo-install.qbpI7XATIUGN/release --emit=dep-info,link -L dependency=/tmp/cargo-install.qbpI7XATIUGN/release/deps --extern ansi_term=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libansi_term-aa5dcc2affa8dc75.rlib --extern regex=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libregex-59f42a2a673f3a9d.rlib --extern clap=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libclap-bb4314a2ee3c5d44.rlib --extern ignore=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libignore-2e1cde877880acb9.rlib --extern atty=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libatty-acdf806defe52cbb.rlib`
error: no method named `split_off` found for type `std::string::String` in the current scope
   --> /home/eric/.cargo/git/checkouts/fd-9d671bc4b2af369e/54f33e5227e928fece1ed917749b6b4d4d23955f/src/lscolors/mod.rs:136:63
    |
136 |                         let extension = String::from(pattern).split_off(2);
    |                                                               ^^^^^^^^^

error: no method named `split_off` found for type `std::string::String` in the current scope
   --> /home/eric/.cargo/git/checkouts/fd-9d671bc4b2af369e/54f33e5227e928fece1ed917749b6b4d4d23955f/src/lscolors/mod.rs:140:62
    |
140 |                         let filename = String::from(pattern).split_off(1);
    |                                                              ^^^^^^^^^

error: aborting due to 2 previous errors

error: failed to compile `fd v1.1.0 (https://github.com/sharkdp/fd#54f33e52)`, intermediate artifacts can be found at `/tmp/cargo-install.qbpI7XATIUGN`

Caused by:
  Could not compile `fd`.

Caused by:
  process didn't exit successfully: `rustc /home/eric/.cargo/git/checkouts/fd-9d671bc4b2af369e/54f33e5227e928fece1ed917749b6b4d4d23955f/src/main.rs --crate-name fd --crate-type bin -C opt-level=3 -C metadata=0ffa62fa1d203255 --out-dir /tmp/cargo-install.qbpI7XATIUGN/release --emit=dep-info,link -L dependency=/tmp/cargo-install.qbpI7XATIUGN/release/deps --extern ansi_term=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libansi_term-aa5dcc2affa8dc75.rlib --extern regex=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libregex-59f42a2a673f3a9d.rlib --extern clap=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libclap-bb4314a2ee3c5d44.rlib --extern ignore=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libignore-2e1cde877880acb9.rlib --extern atty=/tmp/cargo-install.qbpI7XATIUGN/release/deps/libatty-acdf806defe52cbb.rlib` (exit code: 101)

I am still getting my bearings with rust but I will do my best to help -- this tool is a pleasure to use. Thanks for your work on this project thus far! 👍

@BurntSushi
Copy link

Your rustc is probably too old. What version are you using? The compile error you're getting indicates that it can't find the String::split_off method, which was added in Rust 1.16.

@sharkdp One thing I typically do is put an explicit Rust version in my .travis.yml so that I always know for sure what the minimum Rust version my tool compiles with.

@EricCrosson
Copy link
Author

Awesome :) I'll see if I can compile after I update. Thanks for the pointers

@EricCrosson
Copy link
Author

I currently see

rustc --version                                                                                                                                                                          
rustc 1.14.0 (e8a012324 2016-12-16)

@EricCrosson
Copy link
Author

Updating info: latest update on 2017-06-08, rust version 1.18.0 (03fc9d622 2017-06-06)

Yessir, updating past Rust 1.16 fixed my problem. Do you know of a better way to update rust than running the uninstall script and then the rustup.sh installer again?

I am amused that travis is still building with the minimum version pegged at 1.12

@BurntSushi
Copy link

@EricCrosson The link I gave was to my own separate project, not this one. :-) This one just tests on current stable/beta/nightly.

Do you know of a better way to update rust than running the uninstall script and then the rustup.sh installer again?

The preferred method of managing Rust installations for Rust programmers is rustup. rustup itself is a tool that will let you install multiple Rust installations and switch between them easily. (For instances, I have every Rust version from 1.0 on upwards installed locally.)

sharkdp added a commit that referenced this issue Jun 12, 2017
sharkdp added a commit that referenced this issue Jun 12, 2017
@sharkdp
Copy link
Owner

sharkdp commented Jun 12, 2017

@sharkdp One thing I typically do is put an explicit Rust version in my .travis.yml so that I always know for sure what the minimum Rust version my tool compiles with.

Thank you very much for the suggestion! It's implemented now. Also, there was already a comment in the README that refers to the rust 1.16 requirement.

Do you think it would be worth to backport to 1.12 (or similar)? My (unfounded) impression is, that most people use rustup instead of old versions that come with some distribution package manager (?).

@BurntSushi
Copy link

@sharkdp Nah I think 1.16 is fine. I'll probably bump ripgrep's minimum Rust version in the next release to something similar. I just like to make sure that the bump happens purposefully and with an appropriate version bump.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants