Closed rohanmaddamsetti closed 5 months ago
just an update-- still haven't gotten themisto to install on my mac laptop, but I did get the themisto binary installed on our compute cluster. so will probably just work with that.
But here's the progress I made to get themisto working on my laptop--
changing rust versions didn't help, so I went back to nightly Rust as default: $ rustc --version rustc 1.79.0-nightly (88c2f4f5f 2024-04-02)
Then, I went into the ggcat directory, and ran the following to update rust dependencies: $ cargo update --recursive -v --color always
I then went into the build directory, and ran the following: cmake -DCMAKE_C_COMPILER=$(which gcc-13) -DCMAKE_CXX_COMPILER=$(which g++-13) -DMAX_KMER_LENGTH=31 ..
(I installed gcc with homebrew on mac-- gcc links to clang and g++ links to clang++, so to avoid breaking things, homebrew installs gcc as gcc-13 and g++ as g++-13, where 13 is the current version number)
I then ran make. I no longer get the "stdsimd" error, but get some other errors.
Here is the full output I get from running these steps-- my apologies if this is overwhelming and not helpful... it does look like I can get themisto working on our cluster, but it would be nice if I can get it working on my mac laptop too!
$ themisto % cd ggcat
$ ggcat % cargo update --recursive -v --color always
Updating crates.io index
Updating addr2line v0.20.0 -> v0.21.0
Updating ahash v0.8.3 -> v0.8.11
Updating aho-corasick v1.0.2 -> v1.1.3
Unchanged anes v0.1.6 (latest: v0.2.0)
Updating anstream v0.3.2 -> v0.6.13
Updating anstyle v1.0.1 -> v1.0.6
Updating anstyle-parse v0.2.1 -> v0.2.3
Updating anstyle-query v1.0.0 -> v1.0.2
Updating anstyle-wincon v1.0.1 -> v3.0.2
Updating anyhow v1.0.71 -> v1.0.81
Updating autocfg v1.1.0 -> v1.2.0
Updating backtrace v0.3.68 -> v0.3.71
Unchanged bigraph v2.1.1 (latest: v5.0.0)
Updating bio v1.3.1 -> v1.6.0
Updating bio-types v1.0.0 -> v1.0.1
Updating bitflags v2.3.3 -> v2.5.0
Unchanged bitflags v1.3.2 (latest: v2.5.0)
Updating bstr v1.5.0 -> v1.9.1
Updating bumpalo v3.13.0 -> v3.15.4
Updating bytecount v0.6.3 -> v0.6.7
Updating bytemuck v1.13.1 -> v1.15.0
Updating byteorder v1.4.3 -> v1.5.0
Updating bytesize v1.2.0 -> v1.3.0
Updating cc v1.0.79 -> v1.0.90
Updating chrono v0.4.26 -> v0.4.37
Updating ciborium v0.2.1 -> v0.2.2
Updating ciborium-io v0.2.1 -> v0.2.2
Updating ciborium-ll v0.2.1 -> v0.2.2
Updating clap v4.3.10 -> v4.5.4
Unchanged clap v2.34.0 (latest: v4.5.4)
Unchanged clap v3.2.25 (latest: v4.5.4)
Updating clap_builder v4.3.10 -> v4.5.2
Updating clap_derive v4.3.2 -> v4.5.4
Updating clap_lex v0.5.0 -> v0.7.0
Unchanged clap_lex v0.2.4 (latest: v0.7.0)
Updating cloudflare-zlib-sys v0.3.0 -> v0.3.3
Removing cmake v0.1.50
Unchanged compact-genome v1.3.1 (latest: v2.1.1)
Updating core-foundation v0.9.3 -> v0.9.4
Updating core-foundation-sys v0.8.4 -> v0.8.6
Unchanged core-graphics v0.22.3 (latest: v0.23.1)
Updating core-graphics-types v0.1.2 -> v0.1.3
Unchanged core-text v19.2.0 (latest: v20.1.0)
Updating crc32fast v1.3.2 -> v1.4.0
Unchanged criterion v0.4.0 (latest: v0.5.1)
Updating crossbeam v0.8.2 -> v0.8.4
Updating crossbeam-channel v0.5.8 -> v0.5.12
Updating crossbeam-deque v0.8.3 -> v0.8.5
Updating crossbeam-epoch v0.9.15 -> v0.9.18
Updating crossbeam-queue v0.3.8 -> v0.3.11
Updating crossbeam-utils v0.8.16 -> v0.8.19
Adding crunchy v0.2.2
Updating csv v1.2.2 -> v1.3.0
Updating csv-core v0.1.10 -> v0.1.11
Updating cxx v1.0.97 -> v1.0.120
Updating cxx-build v1.0.97 -> v1.0.120
Updating cxxbridge-flags v1.0.97 -> v1.0.120
Updating cxxbridge-macro v1.0.97 -> v1.0.120
Updating dashmap v5.4.0 -> v5.5.3
Adding deranged v0.3.11
Unchanged derive-new v0.5.9 (latest: v0.6.0)
Updating either v1.8.1 -> v1.10.0
Updating enum-map v1.1.1 -> v2.7.3
Updating enum-map-derive v0.6.0 -> v0.17.0
Adding equivalent v1.0.1
Updating errno v0.3.1 -> v0.3.8
Removing errno-dragonfly v0.1.2
Updating fdeflate v0.3.0 -> v0.3.4
Unchanged fdlimit v0.2.1 (latest: v0.3.0)
Unchanged fixedbitset v0.4.2 (latest: v0.5.6)
Updating flate2 v1.0.26 -> v1.0.28
Unchanged float-ord v0.2.0 (latest: v0.3.2)
Unchanged font-kit v0.11.0 (latest: v0.13.0)
Unchanged foreign-types v0.3.2 (latest: v0.5.0)
Unchanged foreign-types-shared v0.1.1 (latest: v0.3.1)
Updating freetype v0.7.0 -> v0.7.1
Updating freetype-sys v0.13.1 -> v0.19.0 (latest: v0.20.0)
Updating futures-core v0.3.28 -> v0.3.30
Unchanged genome-graph v5.2.0 (latest: v8.0.0)
Updating getrandom v0.2.10 -> v0.2.12
Removing getset v0.1.2
Unchanged gif v0.12.0 (latest: v0.13.1)
Updating gimli v0.27.3 -> v0.28.1
Updating half v1.8.2 -> v2.4.0
Adding hashbrown v0.14.3
Unchanged hashbrown v0.12.3 (latest: v0.14.3)
Unchanged hashbrown v0.13.2 (latest: v0.14.3)
Adding heck v0.5.0
Unchanged heck v0.3.3 (latest: v0.5.0)
Unchanged heck v0.4.1 (latest: v0.5.0)
Updating hermit-abi v0.3.2 -> v0.3.9
Unchanged hermit-abi v0.1.19 (latest: v0.3.9)
Updating human_format v1.0.3 -> v1.1.0
Updating iana-time-zone v0.1.57 -> v0.1.60
Updating image v0.24.6 -> v0.24.9 (latest: v0.25.1)
Adding indexmap v2.2.6
Unchanged indexmap v1.9.3 (latest: v2.2.6)
Unchanged io-lifetimes v1.0.11 (latest: v2.0.3)
Removing is-terminal v0.4.8
Unchanged itertools v0.10.5 (latest: v0.12.1)
Unchanged itertools v0.11.0 (latest: v0.12.1)
Updating itoa v1.0.8 -> v1.0.11
Updating jpeg-decoder v0.3.0 -> v0.3.1
Updating js-sys v0.3.64 -> v0.3.69
Updating libc v0.2.147 -> v0.2.153
Updating libloading v0.8.0 -> v0.8.3
Updating libm v0.2.7 -> v0.2.8
Adding libredox v0.1.3
Removing linux-raw-sys v0.4.3
Unchanged linux-raw-sys v0.1.4 (latest: v0.6.4)
Updating lock_api v0.4.10 -> v0.4.11
Updating log v0.4.19 -> v0.4.21
Unchanged matchtigs v1.7.0 (latest: v2.1.6)
Updating matrixmultiply v0.3.7 -> v0.3.8
Updating memchr v2.5.0 -> v2.7.2
Removing memoffset v0.9.0
Updating miniz_oxide v0.7.1 -> v0.7.2
Updating multimap v0.8.3 -> v0.9.1 (latest: v0.10.0)
Unchanged nalgebra v0.29.0 (latest: v0.32.5)
Unchanged nalgebra-macros v0.1.0 (latest: v0.2.1)
Updating num-complex v0.4.3 -> v0.4.5
Adding num-conv v0.1.0
Updating num-integer v0.1.45 -> v0.1.46
Updating num-traits v0.2.15 -> v0.2.18
Updating num_threads v0.1.6 -> v0.1.7
Updating object v0.31.1 -> v0.32.2 (latest: v0.34.0)
Updating once_cell v1.18.0 -> v1.19.0
Updating ordered-float v3.7.0 -> v3.9.2 (latest: v4.2.0)
Updating os_str_bytes v6.5.1 -> v6.6.1 (latest: v7.0.0)
Updating parking_lot_core v0.9.8 -> v0.9.9
Updating paste v1.0.13 -> v1.0.14
Updating pathfinder_simd v0.5.1 -> v0.5.2
Removing pest v2.7.0
Updating petgraph v0.6.3 -> v0.6.4
Updating pin-project-lite v0.2.10 -> v0.2.14
Updating pkg-config v0.3.27 -> v0.3.30
Updating png v0.17.9 -> v0.17.13
Adding powerfmt v0.2.0
Updating proc-macro2 v1.0.63 -> v1.0.79
Unchanged proc-macro2 v0.4.30 (latest: v1.0.79)
Unchanged procfs v0.15.1 (latest: v0.16.0)
Updating quote v1.0.29 -> v1.0.35
Unchanged quote v0.6.13 (latest: v1.0.35)
Unchanged radium v0.7.0 (latest: v1.1.0)
Updating rayon v1.7.0 -> v1.10.0
Updating rayon-core v1.11.0 -> v1.12.1
Removing redox_syscall v0.2.16
Removing redox_syscall v0.3.5
Adding redox_syscall v0.4.1 (latest: v0.5.1)
Updating redox_users v0.4.3 -> v0.4.5
Updating ref-cast v1.0.18 -> v1.0.22
Updating ref-cast-impl v1.0.18 -> v1.0.22
Updating regex v1.8.4 -> v1.10.4
Updating regex-automata v0.1.10 -> v0.4.6
Updating regex-syntax v0.7.2 -> v0.8.3
Removing retain_mut v0.1.7
Updating roaring v0.10.1 -> v0.10.3
Updating rustc_version v0.3.3 -> v0.4.0
Unchanged rustc_version v0.1.7 (latest: v0.4.0)
Removing rustix v0.36.14
Removing rustix v0.38.2
Adding rustix v0.36.17 (latest: v0.38.32)
Updating rustversion v1.0.13 -> v1.0.14
Updating ryu v1.0.14 -> v1.0.17
Updating safe_arch v0.7.0 -> v0.7.1
Updating scopeguard v1.1.0 -> v1.2.0
Updating scratch v1.0.5 -> v1.0.7
Updating semver v0.11.0 -> v1.0.22
Unchanged semver v0.1.20 (latest: v1.0.22)
Removing semver-parser v0.10.2
Updating serde v1.0.166 -> v1.0.197
Updating serde_derive v1.0.166 -> v1.0.197
Updating serde_json v1.0.100 -> v1.0.115
Unchanged simba v0.6.0 (latest: v0.8.1)
Updating simd-adler32 v0.3.5 -> v0.3.7
Updating simplelog v0.12.1 -> v0.12.2
Updating siphasher v0.3.10 -> v0.3.11 (latest: v1.0.1)
Updating smallvec v1.10.0 -> v1.13.2
Updating strsim v0.10.0 -> v0.11.1
Unchanged strsim v0.8.0 (latest: v0.11.1)
Unchanged strum v0.25.0 (latest: v0.26.2)
Removing strum_macros v0.24.3
Removing strum_macros v0.25.1
Adding strum_macros v0.25.3 (latest: v0.26.2)
Updating syn v2.0.23 -> v2.0.58
Unchanged syn v0.15.44 (latest: v2.0.58)
Unchanged syn v1.0.109 (latest: v2.0.58)
Updating termcolor v1.1.3 -> v1.4.1
Updating textwrap v0.16.0 -> v0.16.1
Unchanged textwrap v0.11.0 (latest: v0.16.1)
Updating thiserror v1.0.41 -> v1.0.58
Updating thiserror-impl v1.0.41 -> v1.0.58
Updating thread_local v1.1.7 -> v1.1.8
Removing time v0.1.45
Removing time v0.3.22
Adding time v0.3.34
Updating time-core v0.1.1 -> v0.1.2
Updating time-macros v0.2.9 -> v0.2.17
Updating tokio v1.29.1 -> v1.37.0
Updating tokio-macros v2.1.0 -> v2.2.0
Updating tokio-stream v0.1.14 -> v0.1.15
Updating tracing v0.1.37 -> v0.1.40
Updating tracing-attributes v0.1.26 -> v0.1.27
Updating tracing-core v0.1.31 -> v0.1.32
Unchanged traitgraph v2.2.0 (latest: v5.0.0)
Unchanged traitgraph-algo v5.4.0 (latest: v8.1.0)
Unchanged traitsequence v1.1.0 (latest: v2.0.0)
Unchanged ttf-parser v0.17.1 (latest: v0.20.0)
Updating typenum v1.16.0 -> v1.17.0
Removing ucd-trie v0.1.5
Updating unicode-ident v1.0.10 -> v1.0.12
Updating unicode-segmentation v1.10.1 -> v1.11.0
Updating unicode-width v0.1.10 -> v0.1.11
Unchanged unicode-xid v0.1.0 (latest: v0.2.4)
Updating uuid v1.4.0 -> v1.8.0
Updating walkdir v2.3.3 -> v2.5.0
Removing wasi v0.10.0+wasi-snapshot-preview1
Unchanged wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.0+wasi-0.2.0)
Updating wasm-bindgen v0.2.87 -> v0.2.92
Updating wasm-bindgen-backend v0.2.87 -> v0.2.92
Updating wasm-bindgen-macro v0.2.87 -> v0.2.92
Updating wasm-bindgen-macro-support v0.2.87 -> v0.2.92
Updating wasm-bindgen-shared v0.2.87 -> v0.2.92
Updating web-sys v0.3.64 -> v0.3.69
Updating weezl v0.1.7 -> v0.1.8
Updating wide v0.7.10 -> v0.7.15
Updating winapi-util v0.1.5 -> v0.1.6
Removing windows v0.48.0
Adding windows-core v0.52.0 (latest: v0.55.0)
Adding windows-sys v0.52.0
Unchanged windows-sys v0.45.0 (latest: v0.52.0)
Unchanged windows-sys v0.48.0 (latest: v0.52.0)
Removing windows-targets v0.48.1
Adding windows-targets v0.48.5 (latest: v0.52.4)
Adding windows-targets v0.52.4
Unchanged windows-targets v0.42.2 (latest: v0.52.4)
Removing windows_aarch64_gnullvm v0.48.0
Adding windows_aarch64_gnullvm v0.48.5 (latest: v0.52.4)
Adding windows_aarch64_gnullvm v0.52.4
Unchanged windows_aarch64_gnullvm v0.42.2 (latest: v0.52.4)
Removing windows_aarch64_msvc v0.48.0
Adding windows_aarch64_msvc v0.48.5 (latest: v0.52.4)
Adding windows_aarch64_msvc v0.52.4
Unchanged windows_aarch64_msvc v0.42.2 (latest: v0.52.4)
Removing windows_i686_gnu v0.48.0
Adding windows_i686_gnu v0.48.5 (latest: v0.52.4)
Adding windows_i686_gnu v0.52.4
Unchanged windows_i686_gnu v0.42.2 (latest: v0.52.4)
Removing windows_i686_msvc v0.48.0
Adding windows_i686_msvc v0.48.5 (latest: v0.52.4)
Adding windows_i686_msvc v0.52.4
Unchanged windows_i686_msvc v0.42.2 (latest: v0.52.4)
Removing windows_x86_64_gnu v0.48.0
Adding windows_x86_64_gnu v0.48.5 (latest: v0.52.4)
Adding windows_x86_64_gnu v0.52.4
Unchanged windows_x86_64_gnu v0.42.2 (latest: v0.52.4)
Removing windows_x86_64_gnullvm v0.48.0
Adding windows_x86_64_gnullvm v0.48.5 (latest: v0.52.4)
Adding windows_x86_64_gnullvm v0.52.4
Unchanged windows_x86_64_gnullvm v0.42.2 (latest: v0.52.4)
Removing windows_x86_64_msvc v0.48.0
Adding windows_x86_64_msvc v0.48.5 (latest: v0.52.4)
Adding windows_x86_64_msvc v0.52.4
Unchanged windows_x86_64_msvc v0.42.2 (latest: v0.52.4)
Unchanged wyz v0.5.1 (latest: v0.6.1)
Unchanged yeslogic-fontconfig-sys v3.2.0 (latest: v5.0.0)
Adding zerocopy v0.7.32
Adding zerocopy-derive v0.7.32
note: to see how you depend on a package, run cargo tree --invert --package <dep>@<ver>
$ ggcat % cd ..
$ themisto % ls
CMakeLists.txt LICENSE.txt build googletest src version.h.in
CMakeLists_zlib.txt.in README.md example_input include testcases zstr
Dockerfile SBWT ggcat integration_tests tests
(cobra) rohan@HAL9000 themisto % cd build
(cobra) rohan@HAL9000 build % cmake -DCMAKE_C_COMPILER=$(which gcc-13) -DCMAKE_CXX_COMPILER=$(which g++-13) -DMAX_KMER_LENGTH=31 ..
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/homebrew/bin/gcc-13 - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/homebrew/bin/g++-13 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Maximum k-mer length is: 31
-- To change the maximum k-mer length, use the option -DMAX_KMER_LENGTH=n
-- (n can be up to 255)
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Found Git: /usr/bin/git (found version "2.39.3 (Apple Git-145)")
-- Submodule update
-- Themisto version: v3.2.1-3-ge7e8a8c
-- Submodule update
-- SBWT version: v3.2.1-3-ge7e8a8c
-- Maximum k-mer length is: 31
-- To change the maximum k-mer length, use the option -DMAX_KMER_LENGTH=n
-- (n can be up to 255)
CMake Deprecation Warning at SBWT/sdsl-lite/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument
-- Compiler is recent enough to support C++14. -- Performing Test HAVE_GCC_STD=C14WALLWEXTRADNDEBUG -- Performing Test HAVE_GCC_STD=C14WALLWEXTRADNDEBUG - Success -- Performing Test HAVE_GCC_O3FFAST_MATH__FUNROLL_LOOPS -- Performing Test HAVE_GCC_O3FFAST_MATH__FUNROLL_LOOPS - Success -- Performing Test HAVE_CXA_DEMANGLE -- Performing Test HAVE_CXA_DEMANGLE - Success -- Compiler supports DEMANGLE. -- Performing Test HAVE_GCC_DHAVE_CXA_DEMANGLE -- Performing Test HAVE_GCC_DHAVE_CXA_DEMANGLE - Success git found: /usr/bin/git CMake Deprecation Warning at SBWT/sdsl-lite/external/libdivsufsort/CMakeLists.txt:2 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.
Update the VERSION argument
CMake Warning (dev) at SBWT/sdsl-lite/external/libdivsufsort/CMakeLists.txt:7 (project): Policy CMP0048 is not set: project() command manages VERSION variables. Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
The following variable(s) would be set to empty:
PROJECT_VERSION
PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR
PROJECT_VERSION_PATCH
This warning is for project developers. Use -Wno-dev to suppress it.
-- Performing Test HAVE_GCC_WALL -- Performing Test HAVE_GCC_WALL - Success -- Performing Test HAVE_GCC_FOMIT_FRAME_POINTER -- Performing Test HAVE_GCC_FOMIT_FRAME_POINTER - Success -- Looking for inttypes.h -- Looking for inttypes.h - found -- Looking for memory.h -- Looking for memory.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stdlib.h -- Looking for stdlib.h - found -- Looking for string.h -- Looking for string.h - found -- Looking for strings.h -- Looking for strings.h - found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Performing Test HAVE_INLINE -- Performing Test HAVE_INLINE - Success -- Performing Test HAVEINLINE -- Performing Test HAVEINLINE - Success -- Performing Test HAVE_INLINE_ -- Performing Test HAVEINLINE - Success -- Performing Test HAVE___DECLSPECDLLEXPORT -- Performing Test HAVE_DECLSPECDLLEXPORT - Failed -- Performing Test HAVE_DECLSPECDLLIMPORT -- Performing Test HAVE_DECLSPECDLLIMPORT - Failed -- Check size of uint8_t -- Check size of uint8_t - done -- Check size of int32_t -- Check size of int32_t - done -- Looking for PRId32 -- Looking for PRId32 - found -- Check size of int64_t -- Check size of int64_t - done -- Looking for PRId64 -- Looking for PRId64 - found -- Looking for C++ include cstdio -- Looking for C++ include cstdio - found -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) CMake Deprecation Warning at SBWT/KMC/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.
Update the VERSION argument
-- Submodule update -- Found ZLIB: /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/lib/libz.tbd (found version "1.2.12") CMake Deprecation Warning at build/_deps/roaring-src/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.
Update the VERSION argument
CMake Deprecation Warning at build/_deps/roaring-src/tools/cmake/FindCTargets.cmake:2 (cmake_policy): Compatibility with CMake < 3.5 will be removed from a future version of CMake.
Update the VERSION argument
-- BENCHMARK_DATA_DIR: /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/benchmarks/realdata/
-- TEST_DATA_DIR: /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/tests/testdata/
-- Building a static library.
-- ROARING_LIB_TYPE: STATIC
-- Library output directory (does not apply to Visual Studio): /Users/rohan/Bioinformatics/themisto/build
-- CMAKE_SYSTEM_PROCESSOR: arm64
-- CMAKE_BUILD_TYPE: Release
-- ROARING_DISABLE_X64: OFF
-- ROARING_DISABLE_AVX: ON
-- ROARING_DISABLE_NEON: OFF
-- ROARING_DISABLE_NATIVE: ON
-- ROARING_ARCH: native
-- ROARING_BUILD_STATIC: ON
-- ROARING_LINK_STATIC: OFF
-- ROARING_BUILD_LTO: OFF
-- ROARING_SANITIZE: OFF
-- CMAKE_C_COMPILER: /opt/homebrew/bin/gcc-13
-- CMAKE_C_FLAGS: -std=c11 -fPIC -DDISABLEAVX -Wall -Wextra -Wsign-compare -Wshadow -Wwrite-strings -Wpointer-arith -Winit-self -- CMAKE_C_FLAGS_DEBUG: -ggdb -- CMAKE_C_FLAGS_RELEASE: -O3 -- Configuring done (11.8s) -- Generating done (0.1s) -- Build files have been written to: /Users/rohan/Bioinformatics/themisto/build $ build % make [ 0%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/array_util.c.o [ 1%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/bitset_util.c.o [ 2%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/array.c.o /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c: In function 'array_container_shrink_to_fit': /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c:90:31: warning: pointer 'oldarray' may be used after 'realloc' [-Wuse-after-free] 90 |
if (src->array == NULL) free(oldarray); // should never happen? | ^ |
(uint16_t )realloc(oldarray, src->capacity sizeof(uint16_t)); | ^ |
if (container->array == NULL) free(array); | ^ |
(uint16_t )realloc(array, new_capacity sizeof(uint16_t)); | ^ |
if (src->runs == NULL) free(oldruns); // should never happen? | ^ |
src->runs = (rle16_t )realloc(oldruns, src->capacity sizeof(rle16_t)); | ^ |
if (run->runs == NULL) free(oldruns); | ^ |
(rle16_t )realloc(oldruns, run->capacity sizeof(rle16_t)); | ^RwLockIterator is never constructed
--> libs-crates/parallel-processor-rs/src/memory_fs/file/internal.rs:43:8 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
43 | struct RwLockIterator<'a, A, B, I: Iterator |
|||||||||||||||
^^^^^^^^^^^^^^ | ||||||||||||||||
= note: #[warn(dead_code)]
on by default
warning: call to .deref() on a reference in this situation does nothing
--> libs-crates/parallel-processor-rs/src/memory_fs/file/writer.rs:57:60 |
57 | ... file_read.get_underlying_file().deref() | ^^^^^^^^ |
---|
= note: the type UnderlyingFile does not implement Deref , so calling deref on &UnderlyingFile copies the reference, which does not do anything and can be removed
= note: #[warn(noop_method_call)] on by default
help: remove this redundant call |
57 - file_read.get_underlying_file().deref() 57 + file_read.get_underlying_file() |
---|
help: if you meant to clone UnderlyingFile , implement Clone for it
--> libs-crates/parallel-processor-rs/src/memory_fs/file/internal.rs:107:1 |
107+ #[derive(Clone)] 108 | pub enum UnderlyingFile { |
---|
warning: call to .deref() on a reference in this situation does nothing
--> libs-crates/parallel-processor-rs/src/execution_manager/execution_context.rs:212:22 |
212 | .unwrap() | __^ 213 | .deref() | ____^ |
---|
= note: the type `PacketsPoolStrategy<E>` does not implement `Deref`, so calling `deref` on `&PacketsPoolStrategy<E>` copies the reference, which does not do anything and can be removed
help: remove this redundant call | 212 - .unwrap() 213 - .deref() 212 + .unwrap() |
---|
help: if you meant to clone PacketsPoolStrategy<E> , implement Clone for it |
27 + #[derive(Clone)] 28 | pub(crate) enum PacketsPoolStrategy |
---|
Compiling approx v0.5.1
Compiling csv-core v0.1.11
Compiling dynamic-dispatch-proc-macro v0.4.2 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/dynamic-dispatch-rs/dynamic-dispatch-proc-macro)
Compiling ggcat_config v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/config)
Compiling ggcat_utils v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/utils)
Compiling traitsequence v1.1.0
Compiling radium v0.7.0
Compiling feature-probe v0.1.1
Compiling structopt v0.3.26
Compiling dynamic-dispatch v0.4.3 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/dynamic-dispatch-rs)
Compiling streaming-libdeflate-rs v0.1.5 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/streaming-libdeflate-rs)
Compiling ggcat_hashes v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/hashes)
Compiling bv v0.11.1
Compiling simba v0.6.0
Compiling ggcat_structs v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/structs)
Compiling csv v1.3.0
Compiling ggcat_io v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/io)
warning: the item FromIterator is imported redundantly
--> crates/io/src/compressed_read.rs:5:5 |
5 | use std::iter::FromIterator; | ^^^^^^^^^^^^^^^^^^^^^^^ --> /rustc/88c2f4f5f50ace5ddc7655ea311435104d3659bd/library/std/src/prelude/mod.rs:148:13 |
---|
= note: the item FromIterator
is already defined here
|
= note: #[warn(unused_imports)]
on by default
Compiling newtype_derive v0.1.6
Compiling roaring v0.10.3
Compiling ggcat_minimizer_bucketing v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/minimizer_bucketing)
Compiling nalgebra-macros v0.1.0
Compiling rand_distr v0.4.3
warning: ggcat_io (lib) generated 1 warning
Compiling atoi v2.0.0
Compiling thread_local v1.1.8
Compiling anyhow v1.0.81
Compiling tap v1.0.1
Compiling bitvector v0.1.5
Compiling siphasher v0.3.11
Compiling ref-cast v1.0.22
Compiling heck v0.4.1
Compiling utf8parse v0.2.1
Compiling instrumenter-proc-macro v0.1.1 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/instrumenter-rs/instrumenter-proc-macro-rs)
Compiling anstyle-parse v0.2.3
Compiling strum_macros v0.25.3
Compiling instrumenter v0.1.2 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/instrumenter-rs)
Compiling ggcat_colors v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/colors)
Compiling traitgraph v2.2.0
warning: creating a mutable reference to mutable static is discouraged
--> crates/colors/src/storage/run_length.rs:135:52 |
135 | ColorIndexSerializer::serialize_colors(&mut TEMP_COLOR_BUFFER, colors); | ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static |
---|
= note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
= note: this will be a hard error in the 2024 edition
= note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
= note: `#[warn(static_mut_refs)]` on by default
help: use addr_of_mut!
instead to create a raw pointer
|
135 | ColorIndexSerializer::serialize_colors(addr_of_mut!(TEMP_COLOR_BUFFER), colors);
| ~~~~~~~
Compiling wyz v0.5.1
Compiling enum-map-derive v0.17.0
Compiling ref-cast-impl v1.0.22
Compiling derive-new v0.5.9
Compiling error-chain v0.12.4
Compiling anstyle v1.0.6
Compiling powerfmt v0.2.0
Compiling colorchoice v1.0.0
Compiling time-core v0.1.2
Compiling anstyle-query v1.0.2
Compiling num-conv v0.1.0
Compiling bit-vec v0.6.3
Compiling funty v2.0.0
Compiling time-macros v0.2.17
Compiling bit-set v0.5.3
Compiling anstream v0.6.13
Compiling bitvec v1.0.1
Compiling nalgebra v0.29.0
Compiling deranged v0.3.11
Compiling bio-types v1.0.1
Compiling enum-map v2.7.3
warning: ggcat_colors (lib) generated 1 warning
Compiling traitgraph-algo v5.4.0
Compiling ggcat_kmers_transform v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/kmers_transform)
Compiling ndarray v0.15.6
warning: parallel-processor (lib) generated 3 warnings (run cargo fix --lib -p parallel-processor to apply 2 suggestions)
Compiling multimap v0.9.1
Compiling fxhash v0.2.1
Compiling itertools-num v0.1.3
Compiling ordered-float v3.9.2
Compiling num_threads v0.1.7
Compiling itertools v0.11.0
Compiling link-cplusplus v1.0.9
Compiling strsim v0.11.1
Compiling editdistancek v1.0.2
Compiling scratch v1.0.7
Compiling log v0.4.21
Compiling custom_derive v0.1.7
Compiling strum v0.25.0
Compiling heck v0.5.0
Compiling bytecount v0.6.7
Compiling triple_accel v0.4.0
Compiling clap_lex v0.7.0
Compiling clap_derive v4.5.4
Compiling time v0.3.34
Compiling clap_builder v4.5.2
Compiling compact-genome v1.3.1
Compiling bigraph v2.1.1
Compiling termcolor v1.4.1
Compiling cxxbridge-flags v1.0.120
Compiling disjoint-sets v0.4.2
Compiling codespan-reporting v0.11.1
Compiling simplelog v0.12.2
Compiling cxx v1.0.120
Compiling ggcat_assembler_minimizer_bucketing v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/assembler_minimizer_bucketing)
Compiling memory-stats v1.1.0
Compiling permutation v0.4.1
Compiling atomic-counter v1.0.1
Compiling cxx-build v1.0.120
Compiling ggcat_assembler_kmers_merge v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/assembler_kmers_merge)
Compiling clap v4.5.4
Compiling fs_extra v1.3.0
Compiling ggcat_dumper v0.1.1 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/dumper)
warning: the feature slice_group_by has been stable since 1.77.0 and no longer requires an attribute to enable
--> crates/dumper/src/lib.rs:1:12 |
1 | #![feature(slice_group_by)] | ^^^^^^^^^^^^^^ |
---|
= note: #[warn(stable_features)]
on by default
Compiling ggcat_querier v0.1.1 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/querier)
error[E0599]: no method named group_by_mut
found for struct Vec<(CompressedReadIndipendent, DumperKmersReferenceData<u32>)>
in the current scope
--> crates/dumper/src/pipeline/dumper_colormap_reading.rs:99:48
|
99 | for unitigs_by_color in temp_sequences.group_by_mut(|a, b| a.1 == b.1) {
| ^^^^^^^^^^^^ method not found in Vec<(CompressedReadIndipendent, DumperKmersReferenceData<u32>)>
For more information about this error, try rustc --explain E0599 .
warning: ggcat_dumper (lib) generated 1 warning
error: could not compile ggcat_dumper (lib) due to 1 previous error; 1 warning emitted
warning: build failed, waiting for other jobs to finish...
warning: the feature slice_group_by has been stable since 1.77.0 and no longer requires an attribute to enable
--> crates/querier/src/lib.rs:1:12 |
1 | #![feature(slice_group_by)] | ^^^^^^^^^^^^^^ |
---|
= note: #[warn(stable_features)]
on by default
error[E0599]: no method named group_by
found for struct Vec<(u32, u64)>
in the current scope
--> crates/querier/src/pipeline/colored_query_output.rs:213:53
|
213 | for (i, qc) in temp_colors_list.group_by(|a, b| a.0 == b.0).enumerate() {
| ^^^^^^^^ method not found in Vec<(u32, u64)>
error[E0599]: no method named group_by_mut
found for struct Vec<(CounterEntry<u32>, u32)>
in the current scope
--> crates/querier/src/pipeline/colormap_reading.rs:104:46
|
104 | for queries_by_color in counters_vec.group_by_mut(|a, b| a.1 == b.1) {
| ^^^^^^^^^^^^ method not found in Vec<(CounterEntry<u32>, u32)>
error[E0609]: no field query_index
on type &_
--> crates/querier/src/pipeline/colormap_reading.rs:135:64
|
135 | temp_queries_buffer.sort_unstable_by_key(|c| c.query_index);
| ^^^^^^^^^^^ unknown field
error[E0599]: no method named group_by_mut
found for struct Vec<(CounterEntry<<CX as ColorsManager>::SingleKmerColorDataType>, <CX as ColorsManager>::SingleKmerColorDataType)>
in the current scope
--> crates/querier/src/pipeline/counters_sorting.rs:193:43
|
193 | for query_results in counters_vec.group_by_mut(|a, b| a.0.query_index == b.0.query_index) {
| ^^^^^^^^^^^^ method not found in Vec<(CounterEntry<<CX as ColorsManager>::SingleKmerColorDataType>, <CX as ColorsManager>::SingleKmerColorDataType)>
Some errors have detailed explanations: E0599, E0609.
For more information about an error, try rustc --explain E0599
.
warning: ggcat_querier
(lib) generated 1 warning
error: could not compile ggcat_querier
(lib) due to 4 previous errors; 1 warning emitted
make[3]: [lib/libggcat_cpp_bindings.a] Error 101
make[2]: [CMakeFiles/ggcat_cpp_api] Error 2
make[1]: [CMakeFiles/ggcat_cpp_api.dir/all] Error 2
make: [all] Error 2
OS X binaries are now available with the latest version: https://github.com/algbio/themisto/releases/tag/v3.2.2
Hello, thanks for releasing MacOS binaries!
Unfortunately, neither binary is working for me. I am running MacOS Sonoma 14.2.1
With the x86_64 binary I get this error message:
dyld[87605]: Symbol not found: ZNKSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcmm
Referenced from: <8231E0B4-961C-344E-B6E9-A4EA2E8147C0> /Users/rohan/Bioinformatics/themisto-v3.2.2-x86_64-apple-darwin22/themisto
Expected in:
With the aarch64 binary I get:
dyld[87932]: Symbol not found: ZNKSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcmm
Referenced from: <3DF1F03A-9C5A-351F-A5D3-D88DF3543D61> /Users/rohan/Bioinformatics/themisto-v3.2.2-aarch64-apple-darwin22/themisto
Expected in:
Hi, I'm looking into this; it looks like some of the dependencies are not built with the correct compiler flags..
@tmaklin The toolchain file for arm64 has the following definition: https://github.com/algbio/themisto/blob/master/deploy/macOS/arm64-toolchain_GNU.cmake
set(CMAKE_SYSTEM_PROCESSOR X86)
while CMake documentation says: https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_PROCESSOR.html
When cross-compiling, a CMAKE_TOOLCHAIN_FILE should set the CMAKE_SYSTEMPROCESSOR variable to match target architecture that it specifies (via [CMAKE
_COMPILER](https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html#variable:CMAKE_%3CLANG%3E_COMPILER) and perhaps CMAKE_ _COMPILER_TARGET ).
It's probably not the toolchain file as the x86 binary doesn't work on my x86 mac either but it might affect the arm64 macs I suppose. Though I have used the same approach to cross compile other C++ projects for arm64 macs and they seem to work (see eg https://github.com/PROBIC/mSWEEP/releases) (I don't have an arm64 mac to test these myself tho).
@tmaklin
It's probably not the toolchain file as the x86 binary doesn't work on my x86 mac either but it might affect the arm64 macs I suppose. Though I have used the same approach to cross compile other C++ projects for arm64 macs and they seem to work (see eg https://github.com/PROBIC/mSWEEP/releases) (I don't have an arm64 mac to test these myself tho).
Your arm64 mac toolchain used in that project has: https://github.com/tmaklin/biobins/blob/master/macOS/arm64-toolchain.cmake
set(CMAKE_SYSTEM_PROCESSOR ARM64)
rather than:
set(CMAKE_SYSTEM_PROCESSOR X86)
like in Themisto's toolchain.
Themisto arm64 binary doesn't work on my arm64 Mac, while arm64 binary from your project worked. As a side note, your project's arm64 binary seems to actually be an universal binary, linking to both x86 libraries and arm64 libraries:
otool -L mSWEEP
mSWEEP (architecture x86_64):
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
mSWEEP (architecture arm64):
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
I think I figured it out -- KMC was using static linking for everything which messed up the compiled library, and the whole project additionally needs to link the GCC C++ library statically because it's not available on macs. New scripts at https://github.com/algbio/themisto/tree/update-macos-build Also changed CMAKE_SYSTEM_PROCESSOR
to ARM64, thanks for that.
New mac binaries are available here https://github.com/algbio/themisto/releases/tag/v3.2.2 @iosfwd can you check if the aarch64 binary still gives the linker error? The x86 binary does not do that anymore on my machine.
I think I figured it out -- KMC was using static linking for everything which messed up the compiled library, and the whole project additionally needs to link the GCC C++ library statically because it's not available on macs. New scripts at https://github.com/algbio/themisto/tree/update-macos-build Also changed
CMAKE_SYSTEM_PROCESSOR
to ARM64, thanks for that.New mac binaries are available here https://github.com/algbio/themisto/releases/tag/v3.2.2 @iosfwd can you check if the aarch64 binary still gives the linker error? The x86 binary does not do that anymore on my machine.
New aarch64 binary works on my machine now. @tmaklin
Thanks! @rohanmaddamsetti this should hopefully be fixed now.
Both MacOS binaries work on my computer now. Thanks guys!
On Wed, Jun 12, 2024 at 7:25 AM Tommi Mäklin @.***> wrote:
Thanks! @rohanmaddamsetti https://github.com/rohanmaddamsetti this should hopefully be fixed now.
— Reply to this email directly, view it on GitHub https://github.com/algbio/themisto/issues/35#issuecomment-2162767172, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQ26LGJTK5FHUBBOS3SBKLZHAVY7AVCNFSM6AAAAABFULVGUOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRSG43DOMJXGI . You are receiving this because you were mentioned.Message ID: @.***>
Really glad to hear! Thank you so much @tmaklin and @iosfwd for all the work! Much appreciated.
Closing the issue now.
Hello,
When I run "make" to install themisto on my mac laptop, I get the following error:
error[E0635]: unknown feature
stdsimd
--> /Users/rohan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.3/src/lib.rs:99:42 | 99 | #![cfg_attr(feature = "stdsimd", feature(stdsimd))] | ^^^^^^^For more information about this error, try
rustc --explain E0635
. error: could not compileahash
(lib) due to 1 previous error warning: build failed, waiting for other jobs to finish... make[3]: [lib/libggcat_cpp_bindings.a] Error 101 make[2]: [CMakeFiles/ggcat_cpp_api] Error 2 make[1]: [CMakeFiles/ggcat_cpp_api.dir/all] Error 2 make: [all] Error 2Based on these links, it looks like the stdsimd feature was removed from Rust on February, breaking the themisto installation: https://users.rust-lang.org/t/error-e0635-unknown-feature-stdsimd/106445 https://github.com/tkaitchuck/aHash/issues/200
following some of these discussions, hoping to find a workaround by installing a Rust version dated February 4.