Skip to content
This repository has been archived by the owner on Sep 14, 2023. It is now read-only.

Examples don't compile any more #109

Closed
marcusklaas opened this issue Mar 3, 2015 · 7 comments
Closed

Examples don't compile any more #109

marcusklaas opened this issue Mar 3, 2015 · 7 comments

Comments

@marcusklaas
Copy link

This is the one I tried: https://github.com/docopt/docopt.rs/blob/master/examples/cargo.rs

Rustc says that the trait rustc-serialize::serialize::Decodable is not implemented for the type Args.

@marcusklaas
Copy link
Author

#108 fixes this

@BurntSushi
Copy link
Member

Seems to be working just fine for me:

[andrew@Liger docopt] rustc --version
rustc 1.0.0-nightly (157614249 2015-03-01) (built 2015-03-02)
[andrew@Liger docopt] cargo test --verbose
       Fresh libc v0.1.2
       Fresh rustc-serialize v0.2.15
       Fresh regex v0.1.16
   Compiling docopt v0.6.42 (file:///home/andrew/data/projects/rust/docopt)
     Running `rustc src/lib.rs --crate-name docopt --crate-type lib -g -C metadata=7f546ee68c756b02 -C extra-filename=-7f546ee68c756b02 --out-dir /home/andrew/data/projects/rust/docopt/target --emit
=dep-info,link -L dependency=/home/andrew/data/projects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/targ
et/deps/libregex-91f9bc49865fea10.rlib --extern rustc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/r
ust/docopt/target/deps/liblibc-8d21de95f4de7169.rlib`
     Running `rustc src/lib.rs --crate-name docopt --crate-type lib -g --test -C metadata=db0507d9ad956af0 -C extra-filename=-db0507d9ad956af0 --out-dir /home/andrew/data/projects/rust/docopt/target
 --emit=dep-info,link -L dependency=/home/andrew/data/projects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/doco
pt/target/deps/libregex-91f9bc49865fea10.rlib --extern rustc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/pro
jects/rust/docopt/target/deps/liblibc-8d21de95f4de7169.rlib`
     Running `rustc src/wordlist.rs --crate-name docopt-wordlist --crate-type bin -g --out-dir /home/andrew/data/projects/rust/docopt/target --emit=dep-info,link -L dependency=/home/andrew/data/proj
ects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/target/deps/libregex-91f9bc49865fea10.rlib --extern rus
tc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/rust/docopt/target/deps/liblibc-8d21de95f4de7169.rli
b --extern docopt=/home/andrew/data/projects/rust/docopt/target/libdocopt-7f546ee68c756b02.rlib`
     Running `rustc examples/verbose_multiple.rs --crate-name verbose_multiple --crate-type bin -g --out-dir /home/andrew/data/projects/rust/docopt/target/examples --emit=dep-info,link -L dependency
=/home/andrew/data/projects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/target/deps/libregex-91f9bc49865
fea10.rlib --extern rustc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/rust/docopt/target/deps/libli
bc-8d21de95f4de7169.rlib --extern docopt=/home/andrew/data/projects/rust/docopt/target/libdocopt-7f546ee68c756b02.rlib`
     Running `rustc examples/cargo.rs --crate-name cargo --crate-type bin -g --out-dir /home/andrew/data/projects/rust/docopt/target/examples --emit=dep-info,link -L dependency=/home/andrew/data/pro
jects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/target/deps/libregex-91f9bc49865fea10.rlib --extern ru
stc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/rust/docopt/target/deps/liblibc-8d21de95f4de7169.rl
ib --extern docopt=/home/andrew/data/projects/rust/docopt/target/libdocopt-7f546ee68c756b02.rlib`
     Running `rustc examples/optional_command.rs --crate-name optional_command --crate-type bin -g --out-dir /home/andrew/data/projects/rust/docopt/target/examples --emit=dep-info,link -L dependency
=/home/andrew/data/projects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/target/deps/libregex-91f9bc49865
fea10.rlib --extern rustc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/rust/docopt/target/deps/libli
bc-8d21de95f4de7169.rlib --extern docopt=/home/andrew/data/projects/rust/docopt/target/libdocopt-7f546ee68c756b02.rlib`
     Running `rustc examples/decode.rs --crate-name decode --crate-type bin -g --out-dir /home/andrew/data/projects/rust/docopt/target/examples --emit=dep-info,link -L dependency=/home/andrew/data/p
rojects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/target/deps/libregex-91f9bc49865fea10.rlib --extern 
rustc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/rust/docopt/target/deps/liblibc-8d21de95f4de7169.
rlib --extern docopt=/home/andrew/data/projects/rust/docopt/target/libdocopt-7f546ee68c756b02.rlib`
     Running `rustc examples/cp.rs --crate-name cp --crate-type bin -g --out-dir /home/andrew/data/projects/rust/docopt/target/examples --emit=dep-info,link -L dependency=/home/andrew/data/projects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/target/deps/libregex-91f9bc49865fea10.rlib --extern rustc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/rust/docopt/target/deps/liblibc-8d21de95f4de7169.rlib --extern docopt=/home/andrew/data/projects/rust/docopt/target/libdocopt-7f546ee68c756b02.rlib`
     Running `rustc examples/hashmap.rs --crate-name hashmap --crate-type bin -g --out-dir /home/andrew/data/projects/rust/docopt/target/examples --emit=dep-info,link -L dependency=/home/andrew/data/projects/rust/docopt/target -L dependency=/home/andrew/data/projects/rust/docopt/target/deps --extern regex=/home/andrew/data/projects/rust/docopt/target/deps/libregex-91f9bc49865fea10.rlib --extern rustc-serialize=/home/andrew/data/projects/rust/docopt/target/deps/librustc-serialize-ebc743271f9255aa.rlib --extern libc=/home/andrew/data/projects/rust/docopt/target/deps/liblibc-8d21de95f4de7169.rlib --extern docopt=/home/andrew/data/projects/rust/docopt/target/libdocopt-7f546ee68c756b02.rlib`
     Running `/home/andrew/data/projects/rust/docopt/target/docopt-db0507d9ad956af0`

Could you please provide more information to reproduce your problem?

@CraZySacX
Copy link
Contributor

I got the same. I did notice two versions of rustc-serialize being compiled. Maybe that is the root.

jozias@jozias.ipaper.com ~/p/rh (master|✚4) $ rustc -V
rustc 1.0.0-nightly (b4c965ee8 2015-03-02) (built 2015-03-03)
jozias@jozias.ipaper.com ~/p/rh (master|✚4) $ cargo build --verbose
       Fresh rustc-serialize v0.2.15
       Fresh pkg-config v0.3.0
       Fresh commandext v0.0.5-pre (https://github.com/rust-builder/commandext.git#561585ea)
       Fresh rustc-serialize v0.3.0
       Fresh bytes v0.1.2
       Fresh peg v0.1.8
       Fresh log v0.2.5
       Fresh libc v0.1.2
       Fresh regex v0.1.16
       Fresh bitflags v0.1.1
       Fresh gcc v0.3.1
       Fresh rl-sys v0.0.4-pre (https://github.com/rustyhorde/readline-sys.git#cd361e3f)
       Fresh term v0.1.13
       Fresh docopt v0.6.42
       Fresh nix v0.2.3 (https://github.com/carllerche/nix-rust#5d7f9c61)
       Fresh libz-sys v0.1.1
       Fresh time v0.1.19
       Fresh openssl-sys v0.5.0
       Fresh mio v0.2.1 (https://github.com/carllerche/mio.git#06bf140e)
       Fresh vergen v0.0.4-pre (https://github.com/rustyhorde/vergen.git#533f9f19)
       Fresh vergen v0.0.3
       Fresh libssh2-sys v0.1.11
       Fresh ssh2 v0.2.0
       Fresh librhd v0.0.1-pre (file:///home/jozias/projects/rh)
       Fresh repl v0.0.3-pre (https://github.com/rustyhorde/repl.git#2feb4244)
   Compiling rh v0.0.1-pre (file:///home/jozias/projects/rh)
     Running `rustc src/main.rs --crate-name rh --crate-type bin -g --out-dir /home/jozias/projects/rh/target --emit=dep-info,link -L dependency=/home/jozias/projects/rh/target -L dependency=/home/jozias/projects/rh/target/deps --extern peg_syntax_ext=/home/jozias/projects/rh/target/deps/libpeg_syntax_ext-82841418077143d2.so --extern docopt=/home/jozias/projects/rh/target/deps/libdocopt-385d729a1a076074.rlib --extern term=/home/jozias/projects/rh/target/deps/libterm-e5f2896a15d36e8e.rlib --extern commandext=/home/jozias/projects/rh/target/deps/libcommandext-c886bbff1a9d864e.rlib --extern rustc-serialize=/home/jozias/projects/rh/target/deps/librustc-serialize-3bbc0a7cc83f04eb.rlib --extern librhd=/home/jozias/projects/rh/target/deps/liblibrhd-5d6b9ead1dab348d.rlib --extern ssh2=/home/jozias/projects/rh/target/deps/libssh2-ea4ca25b17e7729b.rlib --extern mio=/home/jozias/projects/rh/target/deps/libmio-afbd508374b1181d.rlib --extern repl=/home/jozias/projects/rh/target/deps/librepl-929216ad793bb598.rlib --extern rl-sys=/home/jozias/projects/rh/target/deps/librl-sys-82116bfc06d1bcdb.rlib --extern log=/home/jozias/projects/rh/target/deps/liblog-045aab9d45b4c031.rlib -L native=/usr/lib -L native=/usr/lib -L native=/usr/lib -L native=/home/jozias/projects/rh/target/build/openssl-sys-2929c0814229fdf1/out -L /usr/lib -L native=/home/jozias/projects/rh/target/build/time-f5c2f62bb1bdf976/out`
src/main.rs:236:40: 236:48 error: the trait `rustc-serialize::serialize::Decodable` is not implemented for the type `RhArgs` [E0277]
src/main.rs:236             .and_then(|d| d.argv(args).decode())
                                                       ^~~~~~~~
error: aborting due to previous error
Could not compile `rh`.

Caused by:
  Process didn't exit successfully: `rustc src/main.rs --crate-name rh --crate-type bin -g --out-dir /home/jozias/projects/rh/target --emit=dep-info,link -L dependency=/home/jozias/projects/rh/target -L dependency=/home/jozias/projects/rh/target/deps --extern peg_syntax_ext=/home/jozias/projects/rh/target/deps/libpeg_syntax_ext-82841418077143d2.so --extern docopt=/home/jozias/projects/rh/target/deps/libdocopt-385d729a1a076074.rlib --extern term=/home/jozias/projects/rh/target/deps/libterm-e5f2896a15d36e8e.rlib --extern commandext=/home/jozias/projects/rh/target/deps/libcommandext-c886bbff1a9d864e.rlib --extern rustc-serialize=/home/jozias/projects/rh/target/deps/librustc-serialize-3bbc0a7cc83f04eb.rlib --extern librhd=/home/jozias/projects/rh/target/deps/liblibrhd-5d6b9ead1dab348d.rlib --extern ssh2=/home/jozias/projects/rh/target/deps/libssh2-ea4ca25b17e7729b.rlib --extern mio=/home/jozias/projects/rh/target/deps/libmio-afbd508374b1181d.rlib --extern repl=/home/jozias/projects/rh/target/deps/librepl-929216ad793bb598.rlib --extern rl-sys=/home/jozias/projects/rh/target/deps/librl-sys-82116bfc06d1bcdb.rlib --extern log=/home/jozias/projects/rh/target/deps/liblog-045aab9d45b4c031.rlib -L native=/usr/lib -L native=/usr/lib -L native=/usr/lib -L native=/home/jozias/projects/rh/target/build/openssl-sys-2929c0814229fdf1/out -L /usr/lib -L native=/home/jozias/projects/rh/target/build/time-f5c2f62bb1bdf976/out` (exit code: 101)

Caused by the following code

static USAGE: &'static str = "Rusty Horde

Usage:
    rh [(-v | --verbose) --no-color]
    rh -h | --help [--no-color]
    rh --version [--no-color]

Options:
    -v --verbose  Turn on debug logging.
    --no-color    Turn off colored output.
    -h --help     Show this message.
    --version     Show version information.";

#[derive(RustcDecodable)]
struct RhArgs {
    flag_verbose: bool,
    flag_no_color: bool,
    flag_version: bool,
    flag_help: bool,
}

let dargs: RhArgs = Docopt::new(USAGE)
            .and_then(|d| Ok(d.help(false)))
            .and_then(|d| d.argv(args).decode())
            .unwrap_or_else(|e| e.exit());

@marcusklaas
Copy link
Author

I, too, had two versions of rustc-serialize.

@CraZySacX
Copy link
Contributor

Yeah, pinning the version in my Cargo.toml to 0.2 worked.

rustc-serialize = "0.2"

instead of

rustc-serialize = "*"

@BurntSushi
Copy link
Member

OK, standard IO lives! rustc-serialize is now bumped to 0.3.0 from #110.

@marcusklaas
Copy link
Author

Thanks Andrew!

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

No branches or pull requests

3 participants