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

Failed update of 'bio' dependency #17

Closed
FinnOD opened this issue Jun 29, 2023 · 12 comments
Closed

Failed update of 'bio' dependency #17

FinnOD opened this issue Jun 29, 2023 · 12 comments

Comments

@FinnOD
Copy link

FinnOD commented Jun 29, 2023

Hi,

I'm trying to run A*PA on my mac M1. I'm pretty new to the run ecosystem so let me know if I can provide more info or I've failed to do some install step. Thank you!

cargo run --release -- -h

Updating git repository `https://github.com/ragnargrootkoerkamp/rust-bio`
error: failed to get `bio` as a dependency of package `pa-heuristic v0.1.0 (/Users/finn/Desktop/astar-pairwise-aligner/pa-heuristic)`

Caused by:
  failed to load source for dependency `bio`

Caused by:
  Unable to update https://github.com/ragnargrootkoerkamp/rust-bio?branch=rev_qgrams#d9690f6c

Caused by:
  object not found - no match for id (d9690f6ccbef6efbf7ec548224f6eb8b89d6a4f0); class=Odb (9); code=NotFound (-3)
@RagnarGrootKoerkamp
Copy link
Owner

RagnarGrootKoerkamp commented Jun 29, 2023

Oh oops -- I made a fork of rust-bio but I deleted it again it seems. Pushed a fix that makes it point to the original repo again.

Can you test and close the issue if it works?

@FinnOD
Copy link
Author

FinnOD commented Jun 29, 2023

Thank you for such a quick response! Now I can manage to download all of the dependencies, but there is a compile error in pa-generate I believe. I can open a new issue, I'm unsure if they're related or not. Here are the logs:

cargo run --verbose --release -- -h
       Fresh unicode-ident v1.0.9
       Fresh autocfg v1.1.0
       Fresh proc-macro2 v1.0.63
       Fresh bitflags v1.3.2
       Fresh quote v1.0.29
       Fresh libc v0.2.147
       Fresh libm v0.2.7
       Fresh syn v2.0.22
       Fresh syn v1.0.109
       Fresh num-traits v0.2.15
       Fresh io-lifetimes v1.0.11
       Fresh errno v0.3.1
       Fresh heck v0.4.1
       Fresh serde_derive v1.0.164
       Fresh rustix v0.37.20
       Fresh getrandom v0.2.10
       Fresh version_check v0.9.4
       Fresh utf8parse v0.2.1
       Fresh ppv-lite86 v0.2.17
       Fresh serde v1.0.164
       Fresh memchr v2.5.0
       Fresh anstyle-parse v0.2.1
       Fresh is-terminal v0.4.7
       Fresh anstyle v1.0.1
       Fresh rand_chacha v0.3.1
       Fresh bytemuck v1.13.1
       Fresh colorchoice v1.0.0
       Fresh anstyle-query v1.0.0
       Fresh either v1.8.1
       Fresh safe_arch v0.7.0
       Fresh anstream v0.3.2
       Fresh num-integer v0.1.45
       Fresh terminal_size v0.2.6
       Fresh num-complex v0.4.3
       Fresh lazy_static v1.4.0
       Fresh semver v0.1.20
       Fresh clap_lex v0.5.0
       Fresh rawpointer v0.2.1
       Fresh strsim v0.10.0
       Fresh clap_builder v4.3.9
       Fresh rustc_version v0.1.7
       Fresh matrixmultiply v0.3.7
       Fresh rustversion v1.0.12
       Fresh wide v0.7.10
       Fresh paste v1.0.12
       Fresh aho-corasick v1.0.2
       Fresh approx v0.5.1
       Fresh clap_derive v4.3.2
       Fresh once_cell v1.18.0
       Fresh feature-probe v0.1.1
       Fresh regex-syntax v0.7.2
       Fresh simba v0.6.0
       Fresh clap v4.3.9
       Fresh regex v1.8.4
       Fresh typenum v1.16.0
       Fresh num-rational v0.4.1
       Fresh proc-macro-error-attr v1.0.4
       Fresh rand_distr v0.4.3
       Fresh itertools v0.10.5
       Fresh thiserror-impl v1.0.40
       Fresh nalgebra-macros v0.1.0
       Fresh derive_more v0.99.17
       Fresh parse-size v1.0.0
       Fresh hashbrown v0.12.3
       Fresh rand_core v0.6.4
       Fresh thiserror v1.0.40
       Fresh indexmap v1.9.3
       Fresh nalgebra v0.29.0
       Fresh pa-types v0.1.0 (https://github.com/pairwise-alignment/pa-types#afa2c52a)
       Fresh rand v0.8.5
       Fresh proc-macro-error v1.0.4
       Fresh strum_macros v0.24.3
       Fresh itertools v0.11.0
       Fresh csv-core v0.1.10
       Fresh enum-map-derive v0.6.0
       Fresh derive-new v0.5.9
       Fresh fixedbitset v0.4.2
       Fresh byteorder v1.4.3
       Fresh version-compare v0.1.1
       Fresh smallvec v1.10.0
       Fresh itoa v1.0.6
       Fresh ryu v1.0.13
       Fresh bit-vec v0.6.3
       Fresh cfg-if v1.0.0
       Fresh petgraph v0.6.3
       Fresh newtype_derive v0.1.6
       Fresh bit-set v0.5.3
       Fresh csv v1.2.2
       Fresh fxhash v0.2.1
       Fresh enum-map v1.1.1
       Fresh bio-types v1.0.0
       Fresh phf_generator v0.11.2
       Fresh getset v0.1.2
       Fresh anyhow v1.0.71
       Fresh bv v0.11.1
       Fresh statrs v0.16.0
       Fresh ndarray v0.15.6
       Fresh strum_macros v0.25.0
       Fresh vec_map v0.8.2
       Fresh multimap v0.8.3
       Fresh ordered-float v3.7.0
       Fresh itertools-num v0.1.3
       Fresh triple_accel v0.4.0
       Fresh bytecount v0.6.3
       Fresh siphasher v0.3.10
       Fresh custom_derive v0.1.7
       Fresh strum v0.25.0
   Compiling editdistancek v1.0.1
       Fresh phf_macros v0.11.2
     Running `rustc --crate-name editdistancek --edition=2018 /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/editdistancek-1.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=80 --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=c112ac6ed9e64de0 -C extra-filename=-c112ac6ed9e64de0 --out-dir /Users/finn/astar-pairwise-aligner/target/release/deps -L dependency=/Users/finn/astar-pairwise-aligner/target/release/deps --cap-lints allow`
       Fresh phf_shared v0.11.2
       Fresh instant v0.1.12
       Fresh rustc-hash v1.1.0
       Fresh pa-affine-types v0.1.0 (/Users/finn/astar-pairwise-aligner/pa-affine-types)
       Fresh str_indices v0.4.1
       Fresh phf v0.11.2
       Fresh sdl2-sys v0.35.2
       Fresh ropey v1.6.0
       Fresh parse_duration0 v3.0.0
       Fresh csscolorparser v0.6.2
       Fresh sdl2 v0.35.2
       Fresh pa-generate v0.1.0 (https://github.com/pairwise-alignment/pa-generate#f9dc03b1)
   Compiling colorgrad v0.6.2
     Running `rustc --crate-name colorgrad --edition=2018 /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/colorgrad-0.6.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=80 --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="named-colors"' -C metadata=5d69ed1d85fecea2 -C extra-filename=-5d69ed1d85fecea2 --out-dir /Users/finn/astar-pairwise-aligner/target/release/deps -L dependency=/Users/finn/astar-pairwise-aligner/target/release/deps --extern csscolorparser=/Users/finn/astar-pairwise-aligner/target/release/deps/libcsscolorparser-736873fdac555c5c.rmeta --cap-lints allow`
error[E0425]: cannot find function `_mm_loadu_si128` in this scope
   --> /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/editdistancek-1.0.1/src/lib.rs:108:25
    |
108 |                 let x = _mm_loadu_si128(xs.as_ptr() as _);
    |                         ^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_loadu_si128` in this scope
   --> /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/editdistancek-1.0.1/src/lib.rs:109:25
    |
109 |                 let y = _mm_loadu_si128(ys.as_ptr() as _);
    |                         ^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_cmpeq_epi8` in this scope
   --> /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/editdistancek-1.0.1/src/lib.rs:110:25
    |
110 |                 let r = _mm_cmpeq_epi8(x, y);
    |                         ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_movemask_epi8` in this scope
   --> /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/editdistancek-1.0.1/src/lib.rs:111:25
    |
111 |                 let r = _mm_movemask_epi8(r);
    |                         ^^^^^^^^^^^^^^^^^ not found in this scope

For more information about this error, try `rustc --explain E0425`.
error: could not compile `editdistancek` (lib) due to 4 previous errors

Caused by:
  process didn't exit successfully: `rustc --crate-name editdistancek --edition=2018 /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/editdistancek-1.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=80 --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=c112ac6ed9e64de0 -C extra-filename=-c112ac6ed9e64de0 --out-dir /Users/finn/astar-pairwise-aligner/target/release/deps -L dependency=/Users/finn/astar-pairwise-aligner/target/release/deps --cap-lints allow` (exit status: 1)
warning: build failed, waiting for other jobs to finish...

@RagnarGrootKoerkamp
Copy link
Owner

oh great -- the error is in editdistancek, some crate (library) I never heard of before but that is a dependency of bio-types. So now A*PA (an edit distance library) fails because of some kinds of SIMD error in another edit distance library I don't need :/

looking into it

@RagnarGrootKoerkamp
Copy link
Owner

RagnarGrootKoerkamp commented Jun 29, 2023

@FinnOD
Copy link
Author

FinnOD commented Jun 29, 2023

Thank you.
Maybe an alternative is to compile for x86_64? That will probably work through Rosetta.
I tried cargo run --target=x86_64-apple-darwin --verbose --release -- -h but it resulted in hundreds of errors like

error: cannot find macro `debug_assert` in this scope
   --> /Users/finn/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.5.0/src/memchr/x86/sse2.rs:694:5
    |
694 |     debug_assert!(start_ptr <= ptr);
    |     ^^^^^^^^^^^^

I'm happy to wait for rust-bio otherwise. Edlib is fine for now it would just be nice if I could do it faster 😮‍💨

@RagnarGrootKoerkamp
Copy link
Owner

I've downgraded rust-bio to 1.3.0 for now which should fix it.

Out of curiousity: what is your usecase?

@FinnOD
Copy link
Author

FinnOD commented Jun 29, 2023

Thank you.
Now I get:

cargo run --verbose --release -- -h

...

Fresh str_indices v0.4.1
       Fresh itertools v0.11.0
       Fresh parse_duration0 v3.0.0
   Compiling pa-heuristic v0.1.0 (/Users/finn/Desktop/astar-pairwise-aligner/pa-heuristic)
       Fresh phf v0.11.2
       Fresh ropey v1.6.0
     Running `rustc --crate-name pa_heuristic --edition=2021 pa-heuristic/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=80 --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=4123809367dfb5cf -C extra-filename=-4123809367dfb5cf --out-dir /Users/finn/Desktop/astar-pairwise-aligner/target/release/deps -C incremental=/Users/finn/Desktop/astar-pairwise-aligner/target/release/incremental -L dependency=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps --extern bio=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libbio-295ff7738b18c4c3.rmeta --extern clap=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libclap-2b528fdfa47c78a2.rmeta --extern derive_more=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libderive_more-ead1fca5db3b5827.dylib --extern instant=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libinstant-13a7a720c84a39f8.rmeta --extern itertools=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libitertools-7ddb36f5d09fc7de.rmeta --extern num_traits=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libnum_traits-549d569d3188c1b0.rmeta --extern pa_types=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libpa_types-c82d713630c111a3.rmeta --extern rand=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/librand-efdbd128cb7fa242.rmeta --extern rustc_hash=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/librustc_hash-a94f22d1397e3e23.rmeta --extern serde=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libserde-c9bdf7f84d79ef8a.rmeta --extern smallvec=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libsmallvec-3cd09536faa77c15.rmeta`
       Fresh csscolorparser v0.6.2
       Fresh sdl2 v0.35.2
       Fresh pa-generate v0.1.0 (https://github.com/pairwise-alignment/pa-generate#f9dc03b1)
       Fresh colorgrad v0.6.2
error[E0554]: `#![feature]` may not be used on the stable release channel
 --> pa-heuristic/src/lib.rs:1:1
  |
1 | / #![feature(
2 | |     is_sorted,
3 | |     associated_type_defaults,
4 | |     int_roundings,
... |
7 | |     portable_simd
8 | | )]
  | |__^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> pa-heuristic/src/lib.rs:2:5
  |
2 |     is_sorted,
  |     ^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> pa-heuristic/src/lib.rs:4:5
  |
4 |     int_roundings,
  |     ^^^^^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> pa-heuristic/src/lib.rs:6:5
  |
6 |     split_array,
  |     ^^^^^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> pa-heuristic/src/lib.rs:7:5
  |
7 |     portable_simd
  |     ^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0554`.
error: could not compile `pa-heuristic` (lib) due to 5 previous errors

Caused by:
  process didn't exit successfully: `rustc --crate-name pa_heuristic --edition=2021 pa-heuristic/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=80 --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=4123809367dfb5cf -C extra-filename=-4123809367dfb5cf --out-dir /Users/finn/Desktop/astar-pairwise-aligner/target/release/deps -C incremental=/Users/finn/Desktop/astar-pairwise-aligner/target/release/incremental -L dependency=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps --extern bio=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libbio-295ff7738b18c4c3.rmeta --extern clap=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libclap-2b528fdfa47c78a2.rmeta --extern derive_more=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libderive_more-ead1fca5db3b5827.dylib --extern instant=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libinstant-13a7a720c84a39f8.rmeta --extern itertools=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libitertools-7ddb36f5d09fc7de.rmeta --extern num_traits=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libnum_traits-549d569d3188c1b0.rmeta --extern pa_types=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libpa_types-c82d713630c111a3.rmeta --extern rand=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/librand-efdbd128cb7fa242.rmeta --extern rustc_hash=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/librustc_hash-a94f22d1397e3e23.rmeta --extern serde=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libserde-c9bdf7f84d79ef8a.rmeta --extern smallvec=/Users/finn/Desktop/astar-pairwise-aligner/target/release/deps/libsmallvec-3cd09536faa77c15.rmeta` (exit status: 1)

I'm trying to improve some select alignments (i.e. the more difficult ones) in an MSA for human vs. analogue proteins from parasites. It's possible manually, but slow and requires a lot of intuition. I've only just started exploring these global alignment algorithms which hopefully could save us a lot of time. I'm not even sure if my usecase is what your package is best for, but I would imagine there will be smarter M1 users who will run into the same issue at some point.

@RagnarGrootKoerkamp
Copy link
Owner

RagnarGrootKoerkamp commented Jun 29, 2023

You'll need to enable rust nightly, as mentioned in the readme: rustup install nightly rustup default nightly. You can also reach out to me on matrix: @curious_coding:matrix.org

@RagnarGrootKoerkamp
Copy link
Owner

@FinnOD did you manage to get things working? Or can I close this?

@FinnOD
Copy link
Author

FinnOD commented Jul 27, 2023

Hi Ragnar, I did manage to get it working with all your fixes thank you! I think your package is working well on M1 currently. Then I had a lot of trouble converting the cigar alignments to pairwise formats I'm more familiar with, and gave up for a while.

@RagnarGrootKoerkamp
Copy link
Owner

Hmm, what other formats are you using? I'd be happy to support more formats in the package, but I thought Cigar was the standard so far.

@RagnarGrootKoerkamp
Copy link
Owner

Closing due to inactivity. Feel free to reopen.

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

2 participants