seqan / product_backlog

This repository is used as product backlog for all SeqAn relevant backlog items. This is intended to organise the work for the team.
2 stars 1 forks source link

[INFRA] Add gcc-12 support #402

Closed marehr closed 2 years ago

marehr commented 2 years ago

Description

Bugs:

External dependencies:

ICE:

eseiler commented 2 years ago

ICE: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100252

In: https://github.com/seqan/seqan3/blob/75de3b1df8cf38df521f939e499d84ecf3100d8c/test/include/seqan3/test/fixture/io/sam_file/simple_three_verbose_reads_fixture.hpp#L163

https://github.com/seqan/seqan3/blob/75de3b1df8cf38df521f939e499d84ecf3100d8c/test/include/seqan3/test/fixture/io/sequence_file/standard_fixture.hpp#L55

Workaround:

std::vector<record_type> records;
simple_three_verbose_reads_fixture() : records{record1, record2, record3} {} // or standard_fixture

or

std::vector<record_type> records = [this] () { return std::vector<record_type>{record1, record2, record3}; }();
eseiler commented 2 years ago

view_interface is not derived from view_base any more:

In: https://github.com/seqan/seqan3/blob/75de3b1df8cf38df521f939e499d84ecf3100d8c/include/seqan3/std/ranges#L49-L51

Workaround:

//!\brief std::ranges::views are valid range-v3 views
template<typename T>
    requires ::std::derived_from<T, ::std::ranges::view_base> ||
             ::std::derived_from<T, ::std::ranges::view_interface<T>>
inline constexpr bool enable_view<T> = true;

we only enable this because of the ranges-v3 dependency. Once we drop the dependency this can be removed. This should be added in the comment in the code.

eseiler commented 2 years ago

Nightlies are incorporating range-v3 fix:

Submodule submodules/range-v3 contains modified content
diff --git a/submodules/range-v3/include/range/v3/range/concepts.hpp b/submodules/range-v3/include/range/v3/range/concepts.hpp
index 36511ae2c..50879bcce 100644
--- a/submodules/range-v3/include/range/v3/range/concepts.hpp
+++ b/submodules/range-v3/include/range/v3/range/concepts.hpp
@@ -207,7 +207,7 @@ namespace ranges
     template<typename T>
     CPP_concept view_ =
         range<T> &&
-        semiregular<T> &&
+        copyable<T> &&
         enable_view<T>;

     template<typename T>
eseiler commented 2 years ago

GCC 12 is released and integrated into CI