malthesr / winsfs

Site frequency spectrum estimation based on window expectation-maximisation algorithm
MIT License
13 stars 0 forks source link

type parameters must be declared prior to const parameters #1

Closed bentpetersendk closed 2 years ago

bentpetersendk commented 2 years ago

Hi Guys,

I am trying to install winsfs at our local Redhat cluster and I am experiencing some problems. Everything goes well until this it starts to Compiling winsfs-core v0.1.0.

I am just posting the error messages below to check whether this is something you have seen before:

cargo install --git https://github.com/malthesr/winsfs --root /projects/mjolnir1/apps/winsfs Updating git repositoryhttps://github.com/malthesr/winsfs Installing winsfs-cli v0.6.0 (https://github.com/malthesr/winsfs#f1d0f0be) Updating git repositoryhttps://github.com/malthesr/angsd-io.git Updating crates.io index Downloaded crossbeam-channel v0.5.6 Downloaded crossbeam-utils v0.8.11 Downloaded crossbeam-deque v0.8.2 Downloaded unicode-ident v1.0.3 Downloaded os_str_bytes v6.2.0 Downloaded hashbrown v0.12.3 Downloaded proc-macro2 v1.0.43 Downloaded clap v3.2.16 Downloaded syn v1.0.99 Downloaded quote v1.0.21 Downloaded libc v0.2.127 Downloaded clap_derive v3.2.15 Downloaded crossbeam-epoch v0.9.10 Downloaded 13 crates (1.5 MB) in 8.00s Compiling autocfg v1.1.0 Compiling cfg-if v1.0.0 Compiling libc v0.2.127 Compiling version_check v0.9.4 Compiling once_cell v1.13.0 Compiling crossbeam-utils v0.8.11 Compiling proc-macro2 v1.0.43 Compiling cc v1.0.73 Compiling unicode-ident v1.0.3 Compiling quote v1.0.21 Compiling crc32fast v1.3.2 Compiling syn v1.0.99 Compiling rayon-core v1.9.3 Compiling scopeguard v1.1.0 Compiling adler v1.0.2 Compiling hashbrown v0.12.3 Compiling log v0.4.17 Compiling byteorder v1.4.3 Compiling ppv-lite86 v0.2.16 Compiling either v1.7.0 Compiling heck v0.4.0 Compiling os_str_bytes v6.2.0 Compiling bitflags v1.3.2 Compiling strsim v0.10.0 Compiling termcolor v1.1.3 Compiling textwrap v0.15.0 Compiling miniz_oxide v0.5.3 Compiling clap_lex v0.2.4 Compiling memoffset v0.6.5 Compiling crossbeam-epoch v0.9.10 Compiling indexmap v1.9.1 Compiling rayon v1.5.3 Compiling proc-macro-error-attr v1.0.4 Compiling proc-macro-error v1.0.4 Compiling simple_logger v2.2.0 Compiling crossbeam-channel v0.5.6 Compiling flate2 v1.0.24 Compiling libdeflate-sys v0.8.0 Compiling crossbeam-deque v0.8.2 Compiling getrandom v0.2.7 Compiling num_cpus v1.13.1 Compiling atty v0.2.14 Compiling rand_core v0.6.3 Compiling rand_chacha v0.3.1 Compiling rand v0.8.5 Compiling libdeflater v0.8.0 Compiling noodles-bgzf v0.12.0 Compiling clap_derive v3.2.15 Compiling angsd-io v0.1.0 (https://github.com/malthesr/angsd-io.git?rev=c9d36cd#c9d36cd6) Compiling winsfs-core v0.1.0 (/home/jsd606/.cargo/git/checkouts/winsfs-06f8d3aa94bc2f69/f1d0f0b/winsfs-core) error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/adaptors.rs:35:22 | 35 | impl<const N: usize, T, F, I> Em<N, I> for Inspect<T, F> | -----------------^--^--^- help: reorder the parameters: lifetimes, then types, then consts:<T, F, I, const N: usize>`

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/adaptors.rs:49:22 | 49 | impl<const N: usize, T, F, R> StreamingEm<N, R> for Inspect<T, F> | -----------------^--^--^- help: reorder the parameters: lifetimes, then types, then consts: <T, F, R, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/standard_em.rs:44:22 | 44 | impl<const N: usize, I> Em<N, I> for StandardEm | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <I, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/standard_em.rs:53:22 | 53 | impl<const N: usize, R> StreamingEm<N, R> for StandardEm | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <R, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/standard_em.rs:66:22 | 66 | impl<const N: usize, I> Em<N, I> for StandardEm | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <I, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:18:37 | 18 | pub struct WindowEm<const N: usize, T> { | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:17:10 | 17 | #[derive(Clone, Debug, PartialEq)] | ^^^^^ help: reorder the parameters: lifetimes, then types, then consts: <T: ::core::clone::Clone, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:17:17 | 17 | #[derive(Clone, Debug, PartialEq)] | ^^^^^ help: reorder the parameters: lifetimes, then types, then consts: <T: ::core::fmt::Debug, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:17:24 | 17 | #[derive(Clone, Debug, PartialEq)] | ^^^^^^^^^ help: reorder the parameters: lifetimes, then types, then consts: <T: ::core::cmp::PartialEq, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:24:22 | 24 | impl<const N: usize, T> WindowEm<N, T> { | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:40:22 | 40 | impl<const N: usize, T> EmStep for WindowEm<N, T> | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:47:22 | 47 | impl<const N: usize, I, T> Em<N, I> for WindowEm<N, T> | -----------------^--^- help: reorder the parameters: lifetimes, then types, then consts: <I, T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em/window_em.rs:73:22 | 73 | impl<const N: usize, R, T> StreamingEm<N, R> for WindowEm<N, T> | -----------------^--^- help: reorder the parameters: lifetimes, then types, then consts: <R, T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em.rs:37:32 | 37 | fn inspect<const N: usize, F>(self, f: F) -> Inspect<Self, F> | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <F, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em.rs:46:30 | 46 | pub trait Em<const N: usize, I>: EmStep { | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <I, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/em.rs:95:39 | 95 | pub trait StreamingEm<const N: usize, R>: EmStep | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <R, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/saf/iter/sites.rs:46:22 | 46 | impl<const N: usize, T> IntoSiteIterator for T | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/saf/iter/sites.rs:98:22 | 98 | impl<const N: usize, T> IntoParallelSiteIterator for T | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/lib.rs:49:43 | 49 | pub(crate) trait ArrayExt<const N: usize, T> { | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <T, const N: usize>

error: type parameters must be declared prior to const parameters --> winsfs-core/src/lib.rs:63:22 | 63 | impl<const N: usize, T> ArrayExt<N, T> for [T; N] { | -----------------^- help: reorder the parameters: lifetimes, then types, then consts: <T, const N: usize>

error[E0658]: default values for const generic parameters are experimental --> winsfs-core/src/em/standard_em.rs:22:39 22 pub struct StandardEm { ^^^^^^^

= note: see issue #44580 https://github.com/rust-lang/rust/issues/44580 for more information

error[E0658]: default values for const generic parameters are experimental --> winsfs-core/src/sfs.rs:95:49 95 pub struct Sfs<const N: usize, const NORM: bool = true> { ^^^^^^

= note: see issue #44580 https://github.com/rust-lang/rust/issues/44580 for more information

error[E0658]: destructuring assignments are unstable --> winsfs-core/src/saf.rs:453:38 453 Ordering::Less => (i, j) = (j, i), ------ ^
cannot assign to this expression
= note: see issue #71126 <https://github.com/rust-lang/rust/issues/71126> for more information

Compiling clap v3.2.16 For more information about this error, try rustc --explain E0658. error: could not compile winsfs-core due to 23 previous errors warning: build failed, waiting for other jobs to finish... error: failed to compile winsfs-cli v0.6.0 (https://github.com/malthesr/winsfs#f1d0f0be), intermediate artifacts can be found at /tmp/cargo-installf3ERZa

Caused by: build failed`

malthesr commented 2 years ago

Thanks for the report.

It looks like you might have an older version of rust installed - could you try updating to the latest stable rust and building again?

If you have installed the rust toolchain in the usual way, this should just be rustup update.

Let me know if the problem persists.

EDIT: I've added the minimum support Rust version (1.62) in the crate metadata, so the error message should be better now.

bentpetersendk commented 2 years ago

It did help... Sorry for the trouble :-) ( I should have checked myself at first...)