Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77bbc590f1 | ||
| 8b2ed55118 |
5 changed files with 3 additions and 236 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -14,3 +14,4 @@
|
|||
/seqan3-3.4.0-rc.2.tar.gz
|
||||
/seqan3-3.4.0-rc.3.tar.gz
|
||||
/seqan3-3.4.0.tar.gz
|
||||
/seqan3-3.4.2.tar.gz
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
From e6ddc2529cad39497f15199f9fdc4eb99672018c Mon Sep 17 00:00:00 2001
|
||||
From: Enrico Seiler <enrico.seiler@hotmail.de>
|
||||
Date: Tue, 20 Jan 2026 13:11:14 +0100
|
||||
Subject: [PATCH] fix(gcc-16): bogus warning with fedora
|
||||
|
||||
---
|
||||
.../alphabet/container/bitpacked_sequence.hpp | 26 +++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/include/seqan3/alphabet/container/bitpacked_sequence.hpp b/include/seqan3/alphabet/container/bitpacked_sequence.hpp
|
||||
index 67abc29d22..eb353200a7 100644
|
||||
--- a/include/seqan3/alphabet/container/bitpacked_sequence.hpp
|
||||
+++ b/include/seqan3/alphabet/container/bitpacked_sequence.hpp
|
||||
@@ -87,7 +87,33 @@ class bitpacked_sequence
|
||||
//!\brief Update the sdsl-proxy.
|
||||
constexpr void on_update() noexcept
|
||||
{
|
||||
+ // Alternative patch in the SDSL.
|
||||
+ // The problem is that, in the Fedora build type, there is a warning about accessing lo_set[65],
|
||||
+ // which is out of bounds (size is 64).
|
||||
+ // However, during runtime, lo_set[65] is never actually accessed (bogus warning).
|
||||
+ // Making `len > 64` undefined behaviour resolves the warning.
|
||||
+ // Note that the SDSL uses an older C++ standard and has not `std::unreachable()` available.
|
||||
+ // Also, `__builtin_unreachable()` is only valid for GCC and Clang. The SDSL also supports MSVC,
|
||||
+ // where there is an equivalent but different builtin for that.
|
||||
+ // The diff is for the amalgamated seqan3/contrib/sdsl-lite.hpp; but the patch should be applied upstream.
|
||||
+ // ```diff
|
||||
+ // diff --git a/include/seqan3/contrib/sdsl-lite.hpp b/include/seqan3/contrib/sdsl-lite.hpp
|
||||
+ // index a82da4ac2..b59628a56 100644
|
||||
+ // --- a/include/seqan3/contrib/sdsl-lite.hpp
|
||||
+ // +++ b/include/seqan3/contrib/sdsl-lite.hpp
|
||||
+ // @@ -510,6 +510,8 @@ constexpr uint32_t bits_impl<T>::sel11(uint64_t x, uint32_t i, uint32_t c)
|
||||
+ // template <typename T>
|
||||
+ // constexpr void bits_impl<T>::write_int(uint64_t * word, uint64_t x, uint8_t offset, const uint8_t len)
|
||||
+ // {
|
||||
+ // + if (len > 64)
|
||||
+ // + __builtin_unreachable();
|
||||
+ // x &= bits_impl<T>::lo_set[len];
|
||||
+ // if (offset + len < 64)
|
||||
+ // {
|
||||
+ // ```
|
||||
+ SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_START(-Warray-bounds)
|
||||
internal_proxy = base_t::to_rank();
|
||||
+ SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_STOP
|
||||
}
|
||||
|
||||
public:
|
||||
|
|
@ -1,174 +0,0 @@
|
|||
From d1d486500e842433d9203ce97b0c3323acd4ad90 Mon Sep 17 00:00:00 2001
|
||||
From: Enrico Seiler <enrico.seiler@hotmail.de>
|
||||
Date: Sun, 18 Jan 2026 18:30:43 +0100
|
||||
Subject: [PATCH] fix: latest google benchmark
|
||||
|
||||
---
|
||||
test/performance/range/gap_decorator_helper.hpp | 10 +++++++++-
|
||||
.../dream_index/interleaved_bloom_filter_benchmark.cpp | 10 +++++++++-
|
||||
.../search/index_construction_benchmark.cpp | 10 +++++++++-
|
||||
.../search/views/view_kmer_hash_benchmark.cpp | 10 +++++++++-
|
||||
.../search/views/view_minimiser_hash_benchmark.cpp | 10 +++++++++-
|
||||
.../utility/bloom_filter/bloom_filter_benchmark.cpp | 10 +++++++++-
|
||||
6 files changed, 54 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/test/performance/range/gap_decorator_helper.hpp b/test/performance/range/gap_decorator_helper.hpp
|
||||
index 638d1b998a..6d1fada68b 100644
|
||||
--- a/test/performance/range/gap_decorator_helper.hpp
|
||||
+++ b/test/performance/range/gap_decorator_helper.hpp
|
||||
@@ -16,6 +16,14 @@
|
||||
#include <seqan3/alignment/exception.hpp>
|
||||
#include <seqan3/alphabet/all.hpp>
|
||||
|
||||
+namespace benchmark
|
||||
+{
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
+using Benchmark = benchmark::internal::Benchmark;
|
||||
+#pragma GCC diagnostic pop
|
||||
+} // namespace benchmark
|
||||
+
|
||||
#define SEQAN3_LEN_LONG 1 << 18
|
||||
#define SEQAN3_LEN_SHORT 1 << 12
|
||||
|
||||
@@ -29,7 +37,7 @@
|
||||
* | !SEQAN3_LONG_TESTS | 1 << [4:2:12] | [1, 5, 50] %
|
||||
* | SEQAN3_LONG_TESTS | 1 << [4:2:18] | [1, 5, 25, 50, 75] %
|
||||
*/
|
||||
-void custom_arguments(benchmark::internal::Benchmark * b)
|
||||
+void custom_arguments(benchmark::Benchmark * b)
|
||||
{
|
||||
std::vector<long long int> gap_percentages{1, 5, 50};
|
||||
long long int seq_len_max = SEQAN3_LEN_SHORT;
|
||||
diff --git a/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp b/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp
|
||||
index a4cad0a0c6..cca693982a 100644
|
||||
--- a/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp
|
||||
+++ b/test/performance/search/dream_index/interleaved_bloom_filter_benchmark.cpp
|
||||
@@ -9,12 +9,20 @@
|
||||
#include <seqan3/utility/range/to.hpp>
|
||||
#include <seqan3/utility/views/zip.hpp>
|
||||
|
||||
+namespace benchmark
|
||||
+{
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
+using Benchmark = benchmark::internal::Benchmark;
|
||||
+#pragma GCC diagnostic pop
|
||||
+} // namespace benchmark
|
||||
+
|
||||
inline benchmark::Counter hashes_per_second(size_t const count)
|
||||
{
|
||||
return benchmark::Counter(count, benchmark::Counter::kIsIterationInvariantRate, benchmark::Counter::OneK::kIs1000);
|
||||
}
|
||||
|
||||
-static void arguments(benchmark::internal::Benchmark * b)
|
||||
+static void arguments(benchmark::Benchmark * b)
|
||||
{
|
||||
// Bins must be powers of two
|
||||
for (int32_t bins : {64, 8192})
|
||||
diff --git a/test/performance/search/index_construction_benchmark.cpp b/test/performance/search/index_construction_benchmark.cpp
|
||||
index d83943bcd7..86ebfb48e2 100644
|
||||
--- a/test/performance/search/index_construction_benchmark.cpp
|
||||
+++ b/test/performance/search/index_construction_benchmark.cpp
|
||||
@@ -17,10 +17,18 @@
|
||||
# include <seqan/index.h>
|
||||
#endif
|
||||
|
||||
+namespace benchmark
|
||||
+{
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
+using Benchmark = benchmark::internal::Benchmark;
|
||||
+#pragma GCC diagnostic pop
|
||||
+} // namespace benchmark
|
||||
+
|
||||
static constexpr int32_t max_length{50000};
|
||||
static constexpr size_t seed{0x6'12'6f};
|
||||
|
||||
-static void arguments(benchmark::internal::Benchmark * b)
|
||||
+static void arguments(benchmark::Benchmark * b)
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
constexpr std::array<int32_t, 2> values{50, 5000};
|
||||
diff --git a/test/performance/search/views/view_kmer_hash_benchmark.cpp b/test/performance/search/views/view_kmer_hash_benchmark.cpp
|
||||
index 09b98d7d24..8d9a5d313a 100644
|
||||
--- a/test/performance/search/views/view_kmer_hash_benchmark.cpp
|
||||
+++ b/test/performance/search/views/view_kmer_hash_benchmark.cpp
|
||||
@@ -13,6 +13,14 @@
|
||||
# include <seqan/index.h>
|
||||
#endif // SEQAN3_HAS_SEQAN2
|
||||
|
||||
+namespace benchmark
|
||||
+{
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
+using Benchmark = benchmark::internal::Benchmark;
|
||||
+#pragma GCC diagnostic pop
|
||||
+} // namespace benchmark
|
||||
+
|
||||
inline benchmark::Counter bp_per_second(size_t const basepairs)
|
||||
{
|
||||
return benchmark::Counter(basepairs,
|
||||
@@ -32,7 +40,7 @@ inline seqan3::shape make_gapped_shape(size_t const k)
|
||||
return shape;
|
||||
}
|
||||
|
||||
-static void arguments(benchmark::internal::Benchmark * b)
|
||||
+static void arguments(benchmark::Benchmark * b)
|
||||
{
|
||||
for (int32_t sequence_length : {1000, 50000, /*1'000'000*/})
|
||||
{
|
||||
diff --git a/test/performance/search/views/view_minimiser_hash_benchmark.cpp b/test/performance/search/views/view_minimiser_hash_benchmark.cpp
|
||||
index 39c8c8395a..d2c012990d 100644
|
||||
--- a/test/performance/search/views/view_minimiser_hash_benchmark.cpp
|
||||
+++ b/test/performance/search/views/view_minimiser_hash_benchmark.cpp
|
||||
@@ -16,6 +16,14 @@
|
||||
# include <seqan/index.h>
|
||||
#endif // SEQAN3_HAS_SEQAN2
|
||||
|
||||
+namespace benchmark
|
||||
+{
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
+using Benchmark = benchmark::internal::Benchmark;
|
||||
+#pragma GCC diagnostic pop
|
||||
+} // namespace benchmark
|
||||
+
|
||||
inline benchmark::Counter bp_per_second(size_t const basepairs)
|
||||
{
|
||||
return benchmark::Counter(basepairs,
|
||||
@@ -35,7 +43,7 @@ inline seqan3::shape make_gapped_shape(size_t const k)
|
||||
return shape;
|
||||
}
|
||||
|
||||
-static void arguments(benchmark::internal::Benchmark * b)
|
||||
+static void arguments(benchmark::Benchmark * b)
|
||||
{
|
||||
for (int32_t sequence_length : {50000, /*1'000'000*/})
|
||||
{
|
||||
diff --git a/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp b/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp
|
||||
index 07f56fa4e0..71737edd9d 100644
|
||||
--- a/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp
|
||||
+++ b/test/performance/utility/bloom_filter/bloom_filter_benchmark.cpp
|
||||
@@ -7,12 +7,20 @@
|
||||
#include <seqan3/test/performance/sequence_generator.hpp>
|
||||
#include <seqan3/utility/bloom_filter/bloom_filter.hpp>
|
||||
|
||||
+namespace benchmark
|
||||
+{
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
+using Benchmark = benchmark::internal::Benchmark;
|
||||
+#pragma GCC diagnostic pop
|
||||
+} // namespace benchmark
|
||||
+
|
||||
inline benchmark::Counter hashes_per_second(size_t const count)
|
||||
{
|
||||
return benchmark::Counter(count, benchmark::Counter::kIsIterationInvariantRate, benchmark::Counter::OneK::kIs1000);
|
||||
}
|
||||
|
||||
-static void arguments(benchmark::internal::Benchmark * b)
|
||||
+static void arguments(benchmark::Benchmark * b)
|
||||
{
|
||||
// Size of the IBF will be 2^bits bits
|
||||
for (int32_t bits = 15; bits <= 20; bits += 5)
|
||||
15
seqan3.spec
15
seqan3.spec
|
|
@ -24,7 +24,7 @@ ExclusiveArch: %{power64} x86_64 aarch64
|
|||
|
||||
Name: seqan3
|
||||
Summary: The modern C++ library for sequence analysis
|
||||
Version: 3.4.0
|
||||
Version: 3.4.2
|
||||
Release: %autorelease
|
||||
License: BSD-3-Clause
|
||||
URL: https://www.seqan.de/
|
||||
|
|
@ -57,19 +57,10 @@ BuildRequires: gtest-devel >= 1.10.0
|
|||
BuildRequires: texlive-newunicodechar
|
||||
BuildRequires: doxygen >= 1.9.4
|
||||
%endif
|
||||
|
||||
# Use Fedora's CMake only
|
||||
Patch1: %{name}-3.4.0-disable_CPM.patch
|
||||
|
||||
# Include missing header files
|
||||
Patch2: %{name}-fix_GCC15.patch
|
||||
|
||||
# Fix (gcc-16) bogus warning
|
||||
Patch3: %{name}-fix_gcc-16.patch
|
||||
|
||||
# Fix google benchmark
|
||||
Patch4: %{name}-fix_latest_google_benchmark.patch
|
||||
|
||||
%description
|
||||
SeqAn3 is the new version of the popular SeqAn template
|
||||
library for the analysis of biological sequences.
|
||||
|
|
@ -92,10 +83,8 @@ Requires: sdsl-lite-devel%{?_isa} >= 3.0.1
|
|||
Requires: zlib-devel%{?_isa} >= 1.2
|
||||
Requires: bzip2-devel%{?_isa} >= 1.0
|
||||
Requires: range-v3-devel%{?_isa} >= 0.11.0
|
||||
|
||||
Provides: bundled(bzip2stream)
|
||||
Provides: bundled(zipstream)
|
||||
|
||||
%description devel
|
||||
C++ headers files of SeqAn3, including CMake configuration files.
|
||||
|
||||
|
|
@ -110,8 +99,6 @@ SeqAn3 documentation.
|
|||
|
||||
%patch 1 -p1 -b .backup
|
||||
%patch 2 -p1 -b .backup
|
||||
%patch 3 -p1 -b .backup
|
||||
%patch 4 -p1 -b .backup
|
||||
|
||||
# Unbundle libraries already available in Fedora
|
||||
rm -rf submodules/cereal
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (seqan3-3.4.0.tar.gz) = c8541ac8166c70f521c2613d7c3ad7760ae3025ed5f196740176789c2f0400cecfd4aea2c500a1c0a2f801e35a5ab4df4dfc7c3d116518ab08b30da7cf69df06
|
||||
SHA512 (seqan3-3.4.2.tar.gz) = 6337bb3d49406e89e277ab4b9e751f6b2a0524c32c7aecf2093b795863870c2337bb1df1c798791aee82325cb3f0b19ecb57e109d73db847e6fe6a2a033bbaae
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue