[med-svn] [Git][med-team/spoa][master] 9 commits: New upstream version 3.0.2

Michael R. Crusoe gitlab at salsa.debian.org
Mon Apr 13 19:06:14 BST 2020



Michael R. Crusoe pushed to branch master at Debian Med / spoa


Commits:
d435cde5 by Michael R. Crusoe at 2020-04-13T18:40:17+02:00
New upstream version 3.0.2
- - - - -
e53d02b9 by Michael R. Crusoe at 2020-04-13T18:40:17+02:00
routine-update: New upstream version

- - - - -
83ace7d9 by Michael R. Crusoe at 2020-04-13T18:40:17+02:00
Update upstream source from tag 'upstream/3.0.2'

Update to upstream version '3.0.2'
with Debian dir 07e300f3d81a8920f3306df94de4c9f74e8b2240
- - - - -
c731c474 by Michael R. Crusoe at 2020-04-13T18:40:18+02:00
routine-update: Standards-Version: 4.5.0

- - - - -
4d00728e by Michael R. Crusoe at 2020-04-13T18:40:22+02:00
routine-update: Add salsa-ci file

- - - - -
4299cbbc by Michael R. Crusoe at 2020-04-13T18:40:23+02:00
routine-update: Rules-Requires-Root: no

- - - - -
9c3da5dc by Michael R. Crusoe at 2020-04-13T18:40:26+02:00
Set upstream metadata fields: Bug-Database, Bug-Submit, Repository, Repository-Browse.
- - - - -
c190bac8 by Michael R. Crusoe at 2020-04-13T20:04:01+02:00
Enable building on non x86-64 via SIMDe

- - - - -
c45ea459 by Michael R. Crusoe at 2020-04-13T20:04:01+02:00
release 3.0.2-1 to unstable

- - - - -


16 changed files:

- .travis.yml
- CMakeLists.txt
- README.md
- debian/changelog
- debian/control
- debian/libspoa3.symbols
- debian/patches/fix_soversion.patch
- debian/patches/series
- debian/patches/shared_and_static.patch
- + debian/patches/simde
- debian/patches/use_debian_packaged_libs.patch
- debian/rules
- + debian/salsa-ci.yml
- debian/upstream/metadata
- src/graph.cpp
- src/main.cpp


Changes:

=====================================
.travis.yml
=====================================
@@ -1,3 +1,5 @@
+dist: trusty
+
 language: cpp
 
 compiler:


=====================================
CMakeLists.txt
=====================================
@@ -14,9 +14,12 @@ set(CMAKE_CXX_EXTENSIONS OFF)
 
 option(spoa_build_executable "Build spoa standalone tool" OFF)
 option(spoa_build_tests "Build spoa unit tests" OFF)
-option(spoa_optimize_for_native "Buiold spoa with march=native" ON)
+option(spoa_optimize_for_native "Build spoa with -march=native" ON)
+option(spoa_optimize_for_portability "Build spoa with -msse4.1" OFF)
 
-if (spoa_optimize_for_native)
+if (spoa_optimize_for_portability)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
+elseif (spoa_optimize_for_native)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
 endif()
 


=====================================
README.md
=====================================
@@ -161,7 +161,7 @@ On the other hand, if you are using `cmake` you can add spoa to your project by
 
 ## Contact information
 
-For additional information, help and bug reports please send an email to: robert.vaser at fer.hr.
+For additional information, help and bug reports please send an email to: robert.vaser at fer.hr, mile.sikic at fer.hr.
 
 ## Acknowledgement
 


=====================================
debian/changelog
=====================================
@@ -1,3 +1,16 @@
+spoa (3.0.2-1) unstable; urgency=medium
+
+  * Team upload.
+  * New upstream version
+  * Standards-Version: 4.5.0 (routine-update)
+  * Add salsa-ci file (routine-update)
+  * Rules-Requires-Root: no (routine-update)
+  * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository,
+    Repository-Browse.
+  * Enable building on non x86-64 via SIMDe
+
+ -- Michael R. Crusoe <michael.crusoe at gmail.com>  Mon, 13 Apr 2020 19:57:28 +0200
+
 spoa (3.0.1-1) unstable; urgency=medium
 
   * Fix symbols file


=====================================
debian/control
=====================================
@@ -9,14 +9,16 @@ Build-Depends: debhelper-compat (= 12),
                rename,
                libbioparser-dev (>= 2.0),
                libgtest-dev,
-               zlib1g-dev
-Standards-Version: 4.4.0
+               zlib1g-dev,
+               libsimde-dev
+Standards-Version: 4.5.0
 Vcs-Browser: https://salsa.debian.org/med-team/spoa
 Vcs-Git: https://salsa.debian.org/med-team/spoa.git
 Homepage: https://github.com/rvaser/spoa
+Rules-Requires-Root: no
 
 Package: spoa
-Architecture: amd64
+Architecture: any
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Description: SIMD partial order alignment tool


=====================================
debian/libspoa3.symbols
=====================================
@@ -1,9 +1,18 @@
 libspoa.so.3 libspoa3 #MINVER#
+* Build-Depends-Package: libspoa-dev
  _ZN4spoa11createGraphEv at Base 1.1.3
  _ZN4spoa15AlignmentEngine5alignERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10unique_ptrINS_5GraphESt14default_deleteISA_EE at Base 3.0.0
  _ZN4spoa15AlignmentEngineC1ENS_13AlignmentTypeENS_16AlignmentSubtypeEaaaaaa at Base 3.0.0
  _ZN4spoa15AlignmentEngineC2ENS_13AlignmentTypeENS_16AlignmentSubtypeEaaaaaa at Base 3.0.0
+ _ZN4spoa19SimdAlignmentEngine10initializeINS_14InstructionSetIiEEEEvPKcRKSt10unique_ptrINS_5GraphESt14default_deleteIS7_EEjjj at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine10initializeINS_14InstructionSetIsEEEEvPKcRKSt10unique_ptrINS_5GraphESt14default_deleteIS7_EEjjj at Base 3.0.2
  _ZN4spoa19SimdAlignmentEngine5alignEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteIS4_EE at Base 3.0.0
+ _ZN4spoa19SimdAlignmentEngine6affineINS_14InstructionSetIiEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6affineINS_14InstructionSetIsEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6convexINS_14InstructionSetIiEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6convexINS_14InstructionSetIsEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6linearINS_14InstructionSetIiEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6linearINS_14InstructionSetIsEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
  _ZN4spoa19SimdAlignmentEngine7reallocEjjj at Base 1.1.3
  _ZN4spoa19SimdAlignmentEngine8preallocEjj at Base 1.1.3
  _ZN4spoa19SimdAlignmentEngineC1ENS_13AlignmentTypeENS_16AlignmentSubtypeEaaaaaa at Base 3.0.0
@@ -88,13 +97,17 @@ libspoa.so.3 libspoa3 #MINVER#
  _ZNSt6vectorISt10shared_ptrIN4spoa4EdgeEESaIS3_EE17_M_realloc_insertIJRS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_ at Base 1.1.3
  _ZNSt6vectorISt10unique_ptrIN4spoa4NodeESt14default_deleteIS2_EESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_ at Base 1.1.3
  _ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJRKjiEEEvDpOT_ at Base 3.0.0
+ _ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJiRiEEEvDpOT_ at Base 3.0.2
  _ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJijEEEvDpOT_ at Base 3.0.0
+ _ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJjiEEEvDpOT_ at Base 3.0.2
  _ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJjjEEEvDpOT_ at Base 3.0.0
  _ZNSt6vectorIbSaIbEE14_M_fill_insertESt13_Bit_iteratormb at Base 1.1.3
  _ZNSt6vectorIiSaIiEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPiS1_EEmRKi at Base 1.1.3
  _ZNSt6vectorIjSaIjEE12emplace_backIJRKiEEEvDpOT_ at Base 1.1.3
  _ZNSt6vectorIjSaIjEE12emplace_backIJRiEEEvDpOT_ at Base 1.1.3
  _ZNSt6vectorIjSaIjEE12emplace_backIJRjEEEvDpOT_ at Base 1.1.3
+ _ZNSt6vectorIjSaIjEE12emplace_backIJiEEEvDpOT_ at Base 3.0.2
+ _ZNSt6vectorIjSaIjEE12emplace_backIJjEEEvDpOT_ at Base 3.0.2
  _ZNSt6vectorIjSaIjEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPjS1_EEmRKj at Base 1.1.3
  _ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_ at Base 1.1.3
  _ZTIN4spoa15AlignmentEngineE at Base 1.1.3


=====================================
debian/patches/fix_soversion.patch
=====================================
@@ -4,8 +4,8 @@ Author: Andreas Tille <tille at debian.org>
 Last-Update: Mon, 28 Jan 2019 20:04:58 +0100
 Bug-Upstream: https://github.com/rvaser/spoa/issues/14
 
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
+--- spoa.orig/CMakeLists.txt
++++ spoa/CMakeLists.txt
 @@ -1,5 +1,5 @@
  cmake_minimum_required(VERSION 3.2)
 -project(spoa LANGUAGES CXX VERSION 3.0.0)


=====================================
debian/patches/series
=====================================
@@ -1,3 +1,4 @@
 use_debian_packaged_libs.patch
 shared_and_static.patch
 fix_soversion.patch
+simde


=====================================
debian/patches/shared_and_static.patch
=====================================
@@ -2,9 +2,9 @@ Author: Andreas Tille <tille at debian.org>
 Last-Update:  Fri, 08 Jun 2018 13:20:51 +0200
 Description: Build shared and static lib
 
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -21,9 +21,15 @@ if (spoa_optimize_for_native)
+--- spoa.orig/CMakeLists.txt
++++ spoa/CMakeLists.txt
+@@ -24,9 +24,15 @@
  endif()
  
  # build SPOA as a static library by default
@@ -22,7 +22,7 @@ Description: Build shared and static lib
      src/alignment_engine.cpp
      src/graph.cpp
      src/simd_alignment_engine.cpp
-@@ -33,12 +39,17 @@ target_include_directories(spoa PUBLIC
+@@ -36,12 +42,17 @@
      $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
      $<INSTALL_INTERFACE:include>)
  


=====================================
debian/patches/simde
=====================================
@@ -0,0 +1,371 @@
+From: Michael R. Crusoe <michael.crusoe at gmail.com>
+Subject: Enable building on non-x86_64
+--- spoa.orig/src/simd_alignment_engine.cpp
++++ spoa/src/simd_alignment_engine.cpp
+@@ -9,7 +9,7 @@
+ #include <limits>
+ 
+ extern "C" {
+-    #include <immintrin.h> // AVX2 and lower
++    #include "simde/x86/avx2.h" // AVX2 and lower
+ }
+ 
+ #include "spoa/graph.hpp"
+@@ -43,31 +43,29 @@
+ template<typename T>
+ struct InstructionSet;
+ 
+-#if defined(__AVX2__)
+-
+ constexpr std::uint32_t kRegisterSize = 256;
+-using __mxxxi = __m256i;
++using __mxxxi = simde__m256i;
+ 
+ inline __mxxxi _mmxxx_load_si(__mxxxi const* mem_addr) {
+-    return _mm256_load_si256(mem_addr);
++    return simde_mm256_load_si256(mem_addr);
+ }
+ 
+ inline void _mmxxx_store_si(__mxxxi* mem_addr, const __mxxxi& a) {
+-    _mm256_store_si256(mem_addr, a);
++    simde_mm256_store_si256(mem_addr, a);
+ }
+ 
+ inline __mxxxi _mmxxx_or_si(const __mxxxi& a, const __mxxxi& b) {
+-    return _mm256_or_si256(a, b);
++    return simde_mm256_or_si256(a, b);
+ }
+ 
+ #define _mmxxx_slli_si(a, n) n < 16 ? \
+-    _mm256_alignr_epi8(a, _mm256_permute2x128_si256(a, a, \
+-        _MM_SHUFFLE(0, 0, 2, 0)), 16 - n) : \
+-    _mm256_permute2x128_si256(a, a, _MM_SHUFFLE(0, 0, 2, 0))
++    simde_mm256_alignr_epi8(a, simde_mm256_permute2x128_si256(a, a, \
++        SIMDE_MM_SHUFFLE(0, 0, 2, 0)), 16 - n) : \
++    simde_mm256_permute2x128_si256(a, a, SIMDE_MM_SHUFFLE(0, 0, 2, 0))
+ 
+ #define _mmxxx_srli_si(a, n) \
+-    _mm256_srli_si256(_mm256_permute2x128_si256(a, a, \
+-        _MM_SHUFFLE(2, 0, 0, 1)), n - 16)
++    simde_mm256_srli_si256(simde_mm256_permute2x128_si256(a, a, \
++        SIMDE_MM_SHUFFLE(2, 0, 0, 1)), n - 16)
+ 
+ template<>
+ struct InstructionSet<std::int16_t> {
+@@ -77,19 +75,19 @@
+     static constexpr std::uint32_t kLSS = 2; // Left Shift Size
+     static constexpr std::uint32_t kRSS = 30; // Right Shift Size
+     static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_add_epi16(a, b);
++        return simde_mm256_add_epi16(a, b);
+     }
+     static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_sub_epi16(a, b);
++        return simde_mm256_sub_epi16(a, b);
+     }
+     static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_min_epi16(a, b);
++        return simde_mm256_min_epi16(a, b);
+     }
+     static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_max_epi16(a, b);
++        return simde_mm256_max_epi16(a, b);
+     }
+     static inline __mxxxi _mmxxx_set1_epi(type a) {
+-        return _mm256_set1_epi16(a);
++        return simde_mm256_set1_epi16(a);
+     }
+     static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+         const __mxxxi* penalties) {
+@@ -113,19 +111,19 @@
+     static constexpr std::uint32_t kLSS = 4;
+     static constexpr std::uint32_t kRSS = 28;
+     static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_add_epi32(a, b);
++        return simde_mm256_add_epi32(a, b);
+     }
+     static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_sub_epi32(a, b);
++        return simde_mm256_sub_epi32(a, b);
+     }
+     static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_min_epi32(a, b);
++        return simde_mm256_min_epi32(a, b);
+     }
+     static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm256_max_epi32(a, b);
++        return simde_mm256_max_epi32(a, b);
+     }
+     static inline __mxxxi _mmxxx_set1_epi(type a) {
+-        return _mm256_set1_epi32(a);
++        return simde_mm256_set1_epi32(a);
+     }
+     static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+         const __mxxxi* penalties) {
+@@ -139,99 +137,6 @@
+     }
+ };
+ 
+-#elif defined(__SSE4_1__)
+-
+-constexpr std::uint32_t kRegisterSize = 128;
+-using __mxxxi = __m128i;
+-
+-inline __mxxxi _mmxxx_load_si(__mxxxi const* mem_addr) {
+-    return _mm_load_si128(mem_addr);
+-}
+-
+-inline void _mmxxx_store_si(__mxxxi* mem_addr, const __mxxxi& a) {
+-    _mm_store_si128(mem_addr, a);
+-}
+-
+-inline __mxxxi _mmxxx_or_si(const __mxxxi& a, const __mxxxi& b) {
+-    return _mm_or_si128(a, b);
+-}
+-
+-#define _mmxxx_slli_si(a, n) \
+-    _mm_slli_si128(a, n)
+-
+-#define _mmxxx_srli_si(a, n) \
+-    _mm_srli_si128(a, n)
+-
+-template<>
+-struct InstructionSet<std::int16_t> {
+-    using type = std::int16_t;
+-    static constexpr std::uint32_t kNumVar = kRegisterSize / (8 * sizeof(type));
+-    static constexpr std::uint32_t kLogNumVar = 3;
+-    static constexpr std::uint32_t kLSS = 2;
+-    static constexpr std::uint32_t kRSS = 14;
+-    static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_add_epi16(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_sub_epi16(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_min_epi16(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_max_epi16(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_set1_epi(type a) {
+-        return _mm_set1_epi16(a);
+-    }
+-    static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+-        const __mxxxi* penalties) {
+-
+-        a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[0], _mmxxx_slli_si(
+-            _mmxxx_add_epi(a, penalties[0]), 2)));
+-        a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[1], _mmxxx_slli_si(
+-            _mmxxx_add_epi(a, penalties[1]), 4)));
+-        a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[2], _mmxxx_slli_si(
+-            _mmxxx_add_epi(a, penalties[2]), 8)));
+-    }
+-};
+-
+-template<>
+-struct InstructionSet<std::int32_t> {
+-    using type = std::int32_t;
+-    static constexpr std::uint32_t kNumVar = kRegisterSize / (8 * sizeof(type));
+-    static constexpr std::uint32_t kLogNumVar = 2;
+-    static constexpr std::uint32_t kLSS = 4;
+-    static constexpr std::uint32_t kRSS = 12;
+-    static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_add_epi32(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_sub_epi32(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_min_epi32(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+-        return _mm_max_epi32(a, b);
+-    }
+-    static inline __mxxxi _mmxxx_set1_epi(type a) {
+-        return _mm_set1_epi32(a);
+-    }
+-    static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+-        const __mxxxi* penalties) {
+-
+-        a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[0], _mmxxx_slli_si(
+-            _mmxxx_add_epi(a, penalties[0]), 4)));
+-        a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[1], _mmxxx_slli_si(
+-            _mmxxx_add_epi(a, penalties[1]), 8)));
+-    }
+-};
+-
+-#endif
+-
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ template<typename T>
+ void _mmxxx_print(const __mxxxi& a) {
+ 
+@@ -288,28 +193,16 @@
+     return -1;
+ }
+ 
+-#endif
+-
+ std::unique_ptr<AlignmentEngine> createSimdAlignmentEngine(AlignmentType type,
+     AlignmentSubtype subtype, std::int8_t m, std::int8_t n, std::int8_t g,
+     std::int8_t e, std::int8_t q, std::int8_t c) {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     return std::unique_ptr<AlignmentEngine>(new SimdAlignmentEngine(type,
+         subtype, m, n, g, e, q, c));
+-
+-#else
+-
+-    return nullptr;
+-
+-#endif
+ }
+ 
+ struct SimdAlignmentEngine::Implementation {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     std::vector<std::uint32_t> node_id_to_rank;
+ 
+     std::unique_ptr<__mxxxi[]> sequence_profile_storage;
+@@ -342,7 +235,6 @@
+             penalties(nullptr) {
+     }
+ 
+-#endif
+ };
+ 
+ SimdAlignmentEngine::SimdAlignmentEngine(AlignmentType type,
+@@ -358,8 +250,6 @@
+ void SimdAlignmentEngine::prealloc(std::uint32_t max_sequence_size,
+     std::uint32_t alphabet_size) {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     std::uint32_t longest_path = max_sequence_size * (alphabet_size + 1) + 1 +
+         InstructionSet<std::int16_t>::kNumVar;
+ 
+@@ -374,14 +264,11 @@
+             alphabet_size * max_sequence_size, alphabet_size);
+     }
+ 
+-#endif
+ }
+ 
+ void SimdAlignmentEngine::realloc(std::uint32_t matrix_width,
+     std::uint32_t matrix_height, std::uint32_t num_codes) {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     if (pimpl_->node_id_to_rank.size() < matrix_height - 1) {
+         pimpl_->node_id_to_rank.resize(matrix_height - 1, 0);
+     }
+@@ -453,7 +340,6 @@
+         pimpl_->penalties_storage = std::unique_ptr<__mxxxi[]>(storage);
+     }
+ 
+-#endif
+ }
+ 
+ template<typename T>
+@@ -461,8 +347,6 @@
+     const std::unique_ptr<Graph>& graph, std::uint32_t normal_matrix_width,
+     std::uint32_t matrix_width, std::uint32_t matrix_height) noexcept {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     std::int32_t padding_penatly = -1 * std::max(std::max(abs(m_), abs(n_)),
+         std::max(abs(g_), abs(q_)));
+ 
+@@ -643,7 +527,6 @@
+             break;
+     }
+ 
+-#endif
+ }
+ 
+ Alignment SimdAlignmentEngine::align(const char* sequence,
+@@ -653,8 +536,6 @@
+         return Alignment();
+     }
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     std::uint32_t longest_path = graph->nodes().size() + 1 + sequence_size +
+         InstructionSet<std::int16_t>::kNumVar;
+ 
+@@ -680,19 +561,12 @@
+ 
+     return Alignment();
+ 
+-#else
+-
+-    return Alignment();
+-
+-#endif
+ }
+ 
+ template<typename T>
+ Alignment SimdAlignmentEngine::linear(const char* sequence,
+     std::uint32_t sequence_size, const std::unique_ptr<Graph>& graph) noexcept {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     std::uint32_t normal_matrix_width = sequence_size;
+     std::uint32_t matrix_width = (sequence_size + (sequence_size % T::kNumVar == 0 ?
+         0 : T::kNumVar - sequence_size % T::kNumVar)) / T::kNumVar;
+@@ -1027,19 +901,12 @@
+     std::reverse(alignment.begin(), alignment.end());
+     return alignment;
+ 
+-#else
+-
+-    return Alignment();
+-
+-#endif
+ }
+ 
+ template<typename T>
+ Alignment SimdAlignmentEngine::affine(const char* sequence,
+     std::uint32_t sequence_size, const std::unique_ptr<Graph>& graph) noexcept {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     std::uint32_t normal_matrix_width = sequence_size;
+     std::uint32_t matrix_width = (sequence_size + (sequence_size % T::kNumVar == 0 ?
+         0 : T::kNumVar - sequence_size % T::kNumVar)) / T::kNumVar;
+@@ -1457,19 +1324,12 @@
+     std::reverse(alignment.begin(), alignment.end());
+     return alignment;
+ 
+-#else
+-
+-    return Alignment();
+-
+-#endif
+ }
+ 
+ template<typename T>
+ Alignment SimdAlignmentEngine::convex(const char* sequence,
+     std::uint32_t sequence_size, const std::unique_ptr<Graph>& graph) noexcept {
+ 
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+     std::uint32_t normal_matrix_width = sequence_size;
+     std::uint32_t matrix_width = (sequence_size + (sequence_size % T::kNumVar == 0 ?
+         0 : T::kNumVar - sequence_size % T::kNumVar)) / T::kNumVar;
+@@ -1962,11 +1822,6 @@
+ 
+     std::reverse(alignment.begin(), alignment.end());
+     return alignment;
+-#else
+-
+-    return Alignment();
+-
+-#endif
+ }
+ 
+ }


=====================================
debian/patches/use_debian_packaged_libs.patch
=====================================
@@ -2,9 +2,9 @@ Author: Andreas Tille <tille at debian.org>
 Last-Update:  Fri, 08 Jun 2018 13:20:51 +0200
 Description: Use Debian packaged libraries
 
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -50,11 +50,7 @@ if (spoa_build_executable)
+--- spoa.orig/CMakeLists.txt
++++ spoa/CMakeLists.txt
+@@ -53,11 +53,7 @@
          src/sequence.cpp
          src/main.cpp)
  
@@ -17,7 +17,7 @@ Description: Use Debian packaged libraries
      set_target_properties(spoa_bin PROPERTIES OUTPUT_NAME spoa)
  
      install(TARGETS spoa_bin DESTINATION ${CMAKE_INSTALL_BINDIR})
-@@ -71,12 +67,5 @@ if (spoa_build_tests)
+@@ -74,12 +70,5 @@
          src/sequence.cpp
          test/spoa_test.cpp)
  


=====================================
debian/rules
=====================================
@@ -3,6 +3,7 @@
 # DH_VERBOSE := 1
 
 export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+export DEB_CXXFLAGS_MAINT_APPEND=-fopenmp-simd -O3
 
 DEB_CMAKE_EXTRA_FLAGS = -DCMAKE_BUILD_TYPE=Release \
                         -Dspoa_build_executable=ON \


=====================================
debian/salsa-ci.yml
=====================================
@@ -0,0 +1,4 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml


=====================================
debian/upstream/metadata
=====================================
@@ -1,3 +1,5 @@
+Bug-Database: https://github.com/rvaser/spoa/issues
+Bug-Submit: https://github.com/rvaser/spoa/issues/new
 Registry:
  - Name: OMICtools
    Entry: NA
@@ -5,3 +7,5 @@ Registry:
    Entry: spoa
  - Name: bio.tools
    Entry: NA
+Repository: https://github.com/rvaser/spoa.git
+Repository-Browse: https://github.com/rvaser/spoa


=====================================
src/graph.cpp
=====================================
@@ -726,6 +726,8 @@ void Graph::print_dot(const std::string& path) const {
 }
 
 void Graph::clear() {
+    num_codes_ = 0;
+    num_sequences_ = 0;
     std::fill(coder_.begin(), coder_.end(), -1);
     std::fill(decoder_.begin(), decoder_.end(), -1);
     nodes_.clear();


=====================================
src/main.cpp
=====================================
@@ -10,7 +10,7 @@
 #include "spoa/spoa.hpp"
 #include "bioparser/bioparser.hpp"
 
-static const std::string version = "v3.0.1";
+static const std::string version = "v3.0.2";
 
 static struct option options[] = {
     {"algorithm", required_argument, nullptr, 'l'},



View it on GitLab: https://salsa.debian.org/med-team/spoa/-/compare/05fba420b24da1f88372e7f7f6449a03742384fe...c45ea4599c3ba47652a217684ef2a0bb0bb3ee1f

-- 
View it on GitLab: https://salsa.debian.org/med-team/spoa/-/compare/05fba420b24da1f88372e7f7f6449a03742384fe...c45ea4599c3ba47652a217684ef2a0bb0bb3ee1f
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20200413/d0240f55/attachment-0001.html>


More information about the debian-med-commit mailing list