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

No GCC-12 support #2935

Closed
2 tasks done
sagitter opened this issue Jan 29, 2022 · 4 comments
Closed
2 tasks done

No GCC-12 support #2935

sagitter opened this issue Jan 29, 2022 · 4 comments
Labels
bug faulty or wrong behaviour of code

Comments

@sagitter
Copy link

sagitter commented Jan 29, 2022

Does this problem persist on the current master?

  • I have verified the issue on the current master

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Errors from compilation with gcc-12.0.1 in Fedora (Fedora GCC's changelog at the bottom of this page):

Click to expand.
usr/include/c++/12/bits/iterator_concepts.h:966:7: note:   substitution of deduced template arguments resulted in errors seen above
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:25:40: error: '<expression error>' in namespace 'std::ranges' does not name a type
   25 | using matrix_iterator_t = std::ranges::iterator_t<matrix_t>;
      |                                        ^~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:28:25: error: 'matrix_iterator_t' was not declared in this scope
   28 | struct iterator_fixture<matrix_iterator_t> : public ::testing::Test
      |                         ^~~~~~~~~~~~~~~~~
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:28:42: error: template argument 1 is invalid
   28 | struct iterator_fixture<matrix_iterator_t> : public ::testing::Test
      |                                          ^
In file included from /usr/include/gtest/gtest.h:71:
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:71:83: error: 'matrix_iterator_t' was not declared in this scope
   71 | INSTANTIATE_TYPED_TEST_SUITE_P(trace_matrix_single_column_test, iterator_fixture, matrix_iterator_t, );
      |                                                                                   ^~~~~~~~~~~~~~~~~
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:71:1: error: template argument 1 is invalid
   71 | INSTANTIATE_TYPED_TEST_SUITE_P(trace_matrix_single_column_test, iterator_fixture, matrix_iterator_t, );
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:71:1: error: template argument 3 is invalid
   71 | INSTANTIATE_TYPED_TEST_SUITE_P(trace_matrix_single_column_test, iterator_fixture, matrix_iterator_t, );
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:71:83: error: 'matrix_iterator_t' was not declared in this scope
   71 | INSTANTIATE_TYPED_TEST_SUITE_P(trace_matrix_single_column_test, iterator_fixture, matrix_iterator_t, );
      |                                                                                   ^~~~~~~~~~~~~~~~~
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:71:1: error: template argument 1 is invalid
   71 | INSTANTIATE_TYPED_TEST_SUITE_P(trace_matrix_single_column_test, iterator_fixture, matrix_iterator_t, );
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:71:1: error: no matching function for call to 'GenerateNames<testing::internal::NameGeneratorSelector<>::type, <expression error> >()'
   71 | INSTANTIATE_TYPED_TEST_SUITE_P(trace_matrix_single_column_test, iterator_fixture, matrix_iterator_t, );
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/gtest/gtest.h:62:
/usr/include/gtest/internal/gtest-internal.h:698:26: note: candidate: 'template<class NameGenerator, class Types> std::vector<std::__cxx11::basic_string<char> > testing::internal::GenerateNames()'
  698 | std::vector<std::string> GenerateNames() {
      |                          ^~~~~~~~~~~~~
/usr/include/gtest/internal/gtest-internal.h:698:26: note:   template argument deduction/substitution failed:
/builddir/build/BUILD/seqan3/test/unit/alignment/matrix/detail/combined_score_and_trace_matrix_test.cpp:71:1: error: template argument 2 is invalid
   71 | INSTANTIATE_TYPED_TEST_SUITE_P(trace_matrix_single_column_test, iterator_fixture, matrix_iterator_t, );
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: Leaving directory '/builddir/build/BUILD/seqan3/build'
gmake[2]: *** [alignment/matrix/detail/CMakeFiles/combined_score_and_trace_matrix_test.dir/build.make:79: alignment/matrix/detail/CMakeFiles/combined_score_and_trace_matrix_test.dir/combined_score_and_trace_matrix_test.cpp.o] Error 1

Expected Behavior

Successful compiled

Steps To Reproduce

  1. Fedora 36 (devel branch)
  2. Package release: gcc-12.0.1-0.3.fc36
  3. seqan3 commit 25606c4

Environment

- Operating system:
- SeqAn version:
- Compiler:

Anything else?

Full build log: https://kojipkgs.fedoraproject.org//work/tasks/9431/82079431/build.log

@sagitter sagitter added the bug faulty or wrong behaviour of code label Jan 29, 2022
@eseiler
Copy link
Member

eseiler commented Jan 29, 2022

Hey @sagitter,

thanks for reporting!

We are aware that we currently don't support the GCC-trunk/GCC-12.

Nightlies: http://cdash-v3.seqan.de/index.php?project=SeqAn3 (Experimental at the bottom of the page)
(this is currently a CDash-Test instance and will soon move to https://cdash.seqan.de again. The SSL certificate is valid for cdash.seqan.de but not for cdash-v3.seqan.de)

Issue: seqan/product_backlog#402

One main problem is some incompatibilities with range-v3. As far as I remember, we did not yet decide if we want to fix these upstream or make a final push for removing this dependency.

Do you have an idea when GCC-12.1 might be released? I guess sometime around April?
This would mean that we should allocate some time for working on GCC-12 support in order to find GCC bugs and report them upstream before release.

@eseiler eseiler changed the title [GCC-12] error: '<expression error>' in namespace 'std::ranges' does not name a type No GCC-12 support Jan 29, 2022
@sagitter
Copy link
Author

Do you have an idea when GCC-12.1 might be released? I guess sometime around April?

Yes, at the moment, first stable release of GCC-12 should be in April

@eseiler
Copy link
Member

eseiler commented Feb 10, 2022

We still need the following patch for range-v3:

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>

Other than that, it should work: https://cdash.seqan.de/index.php?project=SeqAn3#!#GCC-git

@eseiler
Copy link
Member

eseiler commented May 19, 2022

GCC 12 is now integrated into our CI, and everything works (on master).
We will do a release once seqan/product_backlog#124 is finished.

@eseiler eseiler closed this as completed May 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug faulty or wrong behaviour of code
Projects
None yet
Development

No branches or pull requests

2 participants