pendulum-chain / pendulum-prototype

Pendulum prototype: Second Layer Network for Stellar and the DeFi ecosystem
MIT License
10 stars 6 forks source link

compilation error: multiple `intersperse` found #50

Closed nikhilsaraf closed 3 years ago

nikhilsaraf commented 3 years ago

Description

I followed the instructions in the readme and installed rust as suggested:

$ rustc -V
rustc 1.57.0-nightly (11491938f 2021-09-29)

$ cargo -V
cargo 1.57.0-nightly (0121d66aa 2021-09-22)

It was unable to run with the following command suggested in the README: cargo run --release -- --dev --tmp

See the end of this issue for the log output

It's possible there's something wrong with my environment or setup, but I couldn't figure it out. I'm also not a rust developer so this could be something obvious to a native rust developer.

Steps to Reproduce

Follow README instructions to compile and run

Expected vs. Actual Behavior

Expected it to run as suggested but it failed at the compilation step

Environment

installed toolchains

stable-x86_64-apple-darwin (default) nightly-x86_64-apple-darwin

installed targets for active toolchain

wasm32-unknown-unknown x86_64-apple-darwin

active toolchain

nightly-x86_64-apple-darwin (overridden by '/Users/nikhilsaraf/dev/git/pendulum-chain/pendulum-prototype/rust-toolchain.toml') rustc 1.57.0-nightly (11491938f 2021-09-29)


## **Logs, Errors or Screenshots**
$ cargo run --release -- --dev --tmp Compiling proc-macro2 v1.0.24 Compiling unicode-xid v0.2.1 Compiling syn v1.0.65 Compiling libc v0.2.91 Compiling cfg-if v1.0.0 Compiling autocfg v1.0.1 Compiling value-bag v1.0.0-alpha.6 Compiling log v0.4.14 Compiling serde_derive v1.0.125 Compiling serde v1.0.125 Compiling byteorder v1.3.4 Compiling memchr v2.3.4 Compiling spin v0.5.2 Compiling version_check v0.9.3 Compiling scopeguard v1.1.0 Compiling typenum v1.13.0 Compiling futures v0.1.31 Compiling smallvec v1.6.1 Compiling slab v0.4.2 Compiling cfg-if v0.1.10 Compiling getrandom v0.2.2 Compiling futures-core v0.3.13 Compiling pin-project-lite v0.2.6 Compiling ppv-lite86 v0.2.10 Compiling anyhow v1.0.40 Compiling futures-io v0.3.13 Compiling proc-macro-hack v0.5.19 Compiling getrandom v0.1.16 Compiling futures-sink v0.3.13 Compiling proc-macro-nested v0.1.7 Compiling arrayvec v0.5.2 Compiling pin-utils v0.1.0 Compiling futures-task v0.3.13 Compiling subtle v2.4.0 Compiling ahash v0.4.7 Compiling opaque-debug v0.3.0 Compiling either v1.6.1 Compiling static_assertions v1.1.0 Compiling crunchy v0.2.2 Compiling block-padding v0.2.1 Compiling tinyvec_macros v0.1.0 Compiling arrayref v0.3.6 Compiling cpufeatures v0.1.4 Compiling byte-tools v0.3.1 Compiling constant_time_eq v0.1.5 Compiling keccak v0.1.0 Compiling opaque-debug v0.2.3 Compiling itoa v0.4.7 Compiling fake-simd v0.1.2 Compiling subtle v1.0.0 Compiling ryu v1.0.5 Compiling serde_json v1.0.64 Compiling regex-syntax v0.6.23 Compiling signature v1.3.0 Compiling libm v0.2.1 Compiling radium v0.6.2 Compiling wyz v0.2.0 Compiling tap v1.0.1 Compiling funty v1.1.0 Compiling byte-slice-cast v1.0.0 Compiling hex v0.4.3 Compiling rustc-hash v1.1.0 Compiling stable_deref_trait v1.2.0 Compiling fallible-iterator v0.2.0 Compiling rustc-hex v2.1.0 Compiling adler v1.0.2 Compiling arrayvec v0.4.12 Compiling parity-util-mem v0.9.0 Compiling sp-std v3.0.0 Compiling parity-wasm v0.41.0 Compiling ansi_term v0.12.1 Compiling ref-cast v1.0.6 Compiling nodrop v0.1.14 Compiling hash-db v0.15.2 Compiling memory_units v0.3.0 Compiling environmental v1.1.2 Compiling tiny-keccak v2.0.2 Compiling dyn-clone v1.0.4 Compiling rustc-demangle v0.1.18 Compiling base58 v0.1.0 Compiling object v0.23.0 Compiling async-trait v0.1.48 Compiling fnv v1.0.7 Compiling convert_case v0.4.0 Compiling unicode-segmentation v1.7.1 Compiling semver-parser v0.7.0 Compiling remove_dir_all v0.5.3 Compiling bytes v1.0.1 Compiling fixedbitset v0.2.0 Compiling paste v1.0.5 Compiling bitflags v1.2.1 Compiling multimap v0.8.3 Compiling untrusted v0.7.1 Compiling matches v0.1.8 Compiling percent-encoding v2.1.0 Compiling pin-project-internal v0.4.27 Compiling futures-timer v3.0.2 Compiling data-encoding v2.3.2 Compiling unsigned-varint v0.5.1 Compiling bs58 v0.4.0 Compiling void v1.0.2 Compiling crc32fast v1.2.1 Compiling cache-padded v1.1.1 Compiling parking v2.0.0 Compiling waker-fn v1.1.0 Compiling fastrand v1.4.0 Compiling httparse v1.3.5 Compiling vec-arena v1.1.0 Compiling bytes v0.5.6 Compiling event-listener v2.5.1 Compiling base64 v0.13.0 Compiling pin-project-lite v0.1.12 Compiling glob v0.3.0 Compiling wasm-bindgen-shared v0.2.72 Compiling quick-error v1.2.3 Compiling async-task v4.0.3 Compiling signal-hook v0.3.7 Compiling atomic-waker v1.0.0 Compiling cpuid-bool v0.2.0 Compiling pkg-config v0.3.19 Compiling bumpalo v3.6.1 Compiling base64 v0.12.3 Compiling prometheus v0.11.0 Compiling wasm-bindgen v0.2.72 Compiling try-lock v0.2.3 Compiling cranelift-codegen-shared v0.69.0 Compiling target-lexicon v0.11.2 Compiling nohash-hasher v0.2.0 Compiling cpuid-bool v0.1.2 Compiling ipnet v2.3.0 Compiling parity-send-wrapper v0.1.0 Compiling tower-service v0.3.1 Compiling hex_fmt v0.3.0 Compiling httpdate v0.3.2 Compiling wasmparser v0.71.0 Compiling more-asserts v0.2.1 Compiling rayon-core v1.9.0 Compiling zstd-safe v2.0.6+zstd.1.4.7 Compiling termcolor v1.1.2 Compiling leb128 v0.2.4 Compiling wasmtime-cache v0.22.0 Compiling maybe-uninit v2.0.0 Compiling scoped-tls v1.0.0 Compiling ucd-trie v0.1.3 Compiling linked-hash-map v0.5.4 Compiling failure_derive v0.1.8 Compiling take_mut v0.2.2 Compiling unicode-width v0.1.8 Compiling rawpointer v0.2.1 Compiling base-x v0.2.8 Compiling bindgen v0.54.0 Compiling ansi_term v0.11.0 Compiling strsim v0.8.0 Compiling core-foundation-sys v0.7.0 Compiling percent-encoding v1.0.1 Compiling vec_map v0.8.2 Compiling peeking_take_while v0.1.2 Compiling lazycell v1.3.0 Compiling shlex v0.1.1 Compiling ip_network v0.3.4 Compiling winapi v0.3.9 Compiling sc-consensus-slots v0.9.0 Compiling mio-named-pipes v0.1.7 Compiling retain_mut v0.1.2 Compiling index-fixed v0.3.1 Compiling maplit v1.0.2 Compiling futures-timer v2.0.2 Compiling same-file v1.0.6 Compiling platforms v1.1.0 Compiling pdqselect v0.1.0 Compiling names v0.11.0 Compiling safe-mix v1.0.1 Compiling quick-error v2.0.0 Compiling hex-literal v0.3.1 Compiling instant v0.1.9 Compiling indexmap v1.6.2 Compiling num-traits v0.2.14 Compiling num-integer v0.1.44 Compiling miniz_oxide v0.4.4 Compiling num-bigint v0.2.6 Compiling num-rational v0.2.4 Compiling crossbeam-utils v0.8.3 Compiling atomic v0.5.0 Compiling memoffset v0.6.2 Compiling rayon v1.5.0 Compiling crossbeam-utils v0.7.2 Compiling memoffset v0.5.6 Compiling crossbeam-epoch v0.8.2 Compiling num-complex v0.2.4 Compiling num-rational v0.4.0 Compiling lazy_static v1.4.0 Compiling lock_api v0.4.2 Compiling lock_api v0.3.4 Compiling generic-array v0.14.4 Compiling proc-macro-error-attr v1.0.4 Compiling proc-macro-error v1.0.4 Compiling nom v5.1.2 Compiling unicase v2.6.0 Compiling futures-channel v0.3.13 Compiling tokio-service v0.1.0 Compiling hashbrown v0.9.1 Compiling itertools v0.9.0 Compiling tinyvec v1.1.1 Compiling block-padding v0.1.5 Compiling blake2s_simd v0.5.11 Compiling blake2b_simd v0.5.11 Compiling ed25519 v1.0.3 Compiling owning_ref v0.4.1 Compiling trie-root v0.16.0 Compiling wasmi-validation v0.3.0 Compiling tokio-sync v0.1.8 Compiling heck v0.3.2 Compiling semver v0.9.0 Compiling semver v0.6.0 Compiling unicode-bidi v0.3.4 Compiling form_urlencoded v1.0.1 Compiling http v0.2.3 Compiling concurrent-queue v1.2.2 Compiling async-mutex v1.4.0 Compiling async-lock v2.3.0 Compiling quicksink v0.1.2 Compiling humantime v1.3.0 Compiling cpp_demangle v0.3.2 Compiling clang-sys v0.29.3 Compiling wast v35.0.1 Compiling pest v2.1.3 Compiling linked_hash_set v0.1.4 Compiling textwrap v0.11.0 Compiling matrixmultiply v0.2.4 Compiling sodalite v0.4.0 Compiling walkdir v2.3.2 Compiling tracing-core v0.1.17 Compiling sharded-slab v0.1.1 Compiling lru v0.6.5 Compiling unicode-normalization v0.1.17 Compiling build-helper v0.1.1 Compiling rustc_version v0.2.3 Compiling async-channel v1.6.1 Compiling http-body v0.3.1 Compiling semver-parser v0.10.2 Compiling pest_meta v2.1.3 Compiling quote v1.0.9 Compiling num_cpus v1.13.0 Compiling parking_lot_core v0.8.3 Compiling time v0.1.44 Compiling iovec v0.1.4 Compiling net2 v0.2.37 Compiling signal-hook-registry v1.3.0 Compiling socket2 v0.4.0 Compiling socket2 v0.3.19 Compiling if-addrs v0.6.5 Compiling atty v0.2.14 Compiling mach v0.3.2 Compiling dirs-sys-next v0.1.2 Compiling errno v0.2.7 Compiling parking_lot_core v0.7.2 Compiling memmap2 v0.2.1 Compiling fs2 v0.4.3 Compiling rand v0.4.6 Compiling dirs-sys v0.3.5 Compiling fdlimit v0.2.1 Compiling rpassword v5.0.1 Compiling wat v1.0.36 Compiling jobserver v0.1.21 Compiling which v3.1.1 Compiling aho-corasick v0.7.15 Compiling futures-lite v1.11.3 Compiling bstr v0.2.15 Compiling parity-wasm v0.32.0 Compiling regex-automata v0.1.9 Compiling dns-parser v0.8.0 Compiling generic-array v0.12.4 Compiling generic-array v0.13.3 Compiling uint v0.9.0 Compiling hash256-std-hasher v0.15.2 Compiling paste-impl v0.1.18 Compiling idna v0.2.2 Compiling idna v0.1.5 Compiling bitvec v0.20.2 Compiling blake2-rfc v0.2.18 Compiling snow v0.7.2 Compiling parking_lot_core v0.6.2 Compiling parking_lot v0.9.0 Compiling hyper v0.12.36 Compiling smallvec v0.6.14 Compiling core-foundation v0.7.0 Compiling security-framework-sys v1.0.0 Compiling miow v0.3.7 Compiling substrate-build-script-utils v3.0.0 Compiling futures-cpupool v0.1.8 Compiling threadpool v1.8.1 Compiling rand_core v0.5.1 Compiling parking_lot v0.11.1 Compiling rand_core v0.6.2 Compiling bytes v0.4.12 Compiling nb-connect v1.1.0 Compiling clap v2.33.3 Compiling directories-next v2.0.0 Compiling parking_lot v0.10.2 Compiling region v2.2.0 Compiling directories v3.0.1 Compiling rand v0.3.23 Compiling cc v1.0.67 Compiling crossbeam-epoch v0.9.3 Compiling crossbeam-channel v0.5.0 Compiling tokio-executor v0.1.10 Compiling crossbeam-queue v0.2.3 Compiling regex v1.4.5 Compiling matchers v0.0.1 Compiling digest v0.9.0 Compiling block-buffer v0.9.0 Compiling crypto-mac v0.8.0 Compiling block-cipher v0.8.0 Compiling universal-hash v0.4.0 Compiling aead v0.3.2 Compiling cipher v0.2.5 Compiling digest v0.8.1 Compiling block-buffer v0.7.3 Compiling crypto-mac v0.7.0 Compiling cexpr v0.4.0 Compiling url v2.2.1 Compiling paste v0.1.18 Compiling url v1.7.2 Compiling integer-sqrt v0.1.5 Compiling approx v0.3.2 Compiling security-framework v1.0.0 Compiling pendulum-node v3.0.0 (/Users/nikhilsaraf/dev/git/pendulum-chain/pendulum-prototype/node) Compiling rand_pcg v0.2.1 Compiling rand_chacha v0.2.2 Compiling once_cell v1.7.2 Compiling rand_chacha v0.3.0 Compiling http v0.1.21 Compiling tokio-buf v0.1.1 Compiling string v0.2.1 Compiling synstructure v0.12.4 Compiling pest_generator v2.1.3 Compiling ring v0.16.20 Compiling blake3 v0.3.7 Compiling libz-sys v1.1.2 Compiling zstd-sys v1.4.18+zstd.1.4.7 Compiling psm v0.1.12 Compiling raw-cpuid v8.1.2 Compiling wasmtime-runtime v0.22.0 Compiling libloading v0.5.2 Compiling crossbeam-deque v0.8.0 Compiling ctor v0.1.20 Compiling thiserror-impl v1.0.24 Compiling futures-macro v0.3.13 Compiling tracing-attributes v0.1.15 Compiling impl-trait-for-tuples v0.2.1 Compiling ref-cast-impl v1.0.6 Compiling sp-debug-derive v3.0.0 Compiling dyn-clonable-impl v0.9.0 Compiling derive_more v0.99.13 Compiling prost-derive v0.7.0 Compiling pin-project-internal v1.0.6 error[E0034]: multiple applicable items in scope --> /Users/nikhilsaraf/.cargo/registry/src/github.com-1ecc6299db9ec823/prost-derive-0.7.0/src/lib.rs:109:14 109 .intersperse(quote!( )); ^^^^^^^^^^^ multiple intersperse found
= note: candidate #1 is defined in an impl of the trait `Iterator` for the type `Map<I, F>`
= note: candidate #2 is defined in an impl of the trait `Itertools` for the type `T`
help: disambiguate the associated function for candidate #1 105 ~ let tags = Iterator::intersperse(field 106 + .tags() 107 + .into_iter() 108 + .map( tag quote!(#tag)), { 109 + let mut _s = $crate::__private::TokenStream::new(); 110 + $crate::quote_each_token!(_s $($tt)*); ... help: disambiguate the associated function for candidate #2

105 ~ let tags = Itertools::intersperse(field 106 + .tags() 107 + .into_iter() 108 + .map(|tag| quote!(#tag)), { 109 + let mut _s = $crate::__private::TokenStream::new(); 110 + $crate::quote_each_token!(_s $($tt)*); ...

For more information about this error, try rustc --explain E0034. error: could not compile prost-derive due to previous error warning: build failed, waiting for other jobs to finish... error: build failed

TorstenStueber commented 3 years ago

Seems to be a bug in the crate prost-derive version 0.7.0 that has been fixed in prost-derive version 0.8.0 – here we use 0.7.0. We will check whether it's easy to upgrade our dependencies.

nikhilsaraf commented 3 years ago

ok, thank you! I'll keep an eye out on this issue and try again when fixed :)

ebma commented 3 years ago

Hey @nikhilsaraf, can you please try changing the rust-toolchain.toml in your cloned repository as follows:

[toolchain]
channel = "nightly-2021-07-06"
targets = [ "wasm32-unknown-unknown" ]

and let me know if you still encounter the compilation error?

nikhilsaraf commented 3 years ago

@ebma that worked, thank you!