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

[INFRA] Drop gcc9 #2952

Merged
merged 22 commits into from
Mar 31, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Please see the [online documentation](https://docs.seqan.de/seqan/3-master-user/

| | requirement | version | comment |
|-------------------|------------------------------------------------------|----------|---------------------------------------------|
|**compiler** | [GCC](https://gcc.gnu.org) | ≥ 7 | no other compiler is currently supported! |
|**compiler** | [GCC](https://gcc.gnu.org) | ≥ 10 | no other compiler is currently supported! |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

|**build system** | [CMake](https://cmake.org) | ≥ 3.4 | optional, but recommended |
|**required libs** | [SDSL](https://github.com/xxsds/sdsl-lite) | ≥ 3 | |
| | [Range-V3](https://github.com/ericniebler/range-v3) | ≥ 0.11.0 | |
Expand All @@ -86,18 +86,18 @@ Quick-Setup without CMake:
* Clone the repository with submodules: `git clone --recurse-submodules https://github.com/seqan/seqan3.git`
* Add the following to your compiler invocation:
* the include directories of SeqAn and its dependencies
* C++17 mode with concepts support
* C++20 mode
* Macros indicating the presence of zlib and bzip2 (set only if actually available in your paths!)
* The command could look like this:
```sh
g++-7 -O3 -DNDEBUG -Wall -Wextra \
-std=c++17 -fconcepts \
g++-11 -O3 -DNDEBUG -Wall -Wextra \
-std=c++20 \
-I /path/to/seqan3/include \
-isystem /path/to/seqan3/submodules/range-v3/include \
-isystem /path/to/seqan3/submodules/sdsl-lite/include \
-isystem /path/to/seqan3/submodules/cereal/include \
-DSEQAN3_HAS_ZLIB=1 -DSEQAN3_HAS_BZIP2=1 \
-lz -lbz2 -lstdc++fs -pthread \
-lz -lbz2 -pthread \
your_file.cpp
```

Expand Down
2 changes: 0 additions & 2 deletions doc/tutorial/concepts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,6 @@ auto add(std::integral auto const v1, std::integral auto const v2) // one const
}
```

\attention The terse syntax in this form is not yet available in GCC7, GCC8 and GCC9.

Different constraints can be applied to different template parameters and a single template parameter can be constrained
by multiple concepts.
Syntaxes can also be combined:
Expand Down
20 changes: 4 additions & 16 deletions include/seqan3/core/platform.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,35 +36,23 @@
// Compiler support
// ============================================================================

#if defined(__GNUC__) && (__GNUC__ == 7 || __GNUC__ == 8)
# error "SeqAn 3.1.x is the last version that supports GCC 7 and 8. Please upgrade your compiler or use 3.1.x."
#if defined(__GNUC__) && (__GNUC__ == 7 || __GNUC__ == 8 || __GNUC__ == 9)
# error "SeqAn 3.1.x is the last version that supports GCC 7, 8, and 9. Please upgrade your compiler or use 3.1.x."
#endif // defined(__GNUC__) && (__GNUC__ == 7 || __GNUC__ == 8)

// ============================================================================
// C++ standard and features
// ============================================================================

#if SEQAN3_DOXYGEN_ONLY(1)0
//!\brief This disables the warning you would get if you compile with `-std=c++17`.
#define SEQAN3_DISABLE_CPP17_DIAGNOSTIC
#endif // SEQAN3_DOXYGEN_ONLY(1)0

// C++ standard [required]
#ifdef __cplusplus
# if (__cplusplus < 201703)
# error "SeqAn3 requires C++20, make sure that you have set -std=c++2a (gcc9) or -std=c++20 (gcc10 and higher)."
# elif not defined(SEQAN3_DISABLE_CPP17_DIAGNOSTIC) && (__cplusplus >= 201703) && (__cplusplus < 201709)
# pragma GCC warning "SeqAn 3.1.x is the last version that supports C++17. Newer SeqAn versions, including this one, might not compile with -std=c++17. To disable this warning, use -std=c++2a (gcc9), -std=c++20 (gcc10 and higher), or -DSEQAN3_DISABLE_CPP17_DIAGNOSTIC."
# if (__cplusplus < 201709)
# error "SeqAn3 requires C++20, make sure that you have set -std=c++20."
# endif
#else
# error "This is not a C++ compiler."
#endif

// C++ Concepts [required]
#ifndef __cpp_concepts
# error "SeqAn3 requires C++ Concepts, either via -fconcepts (gcc9), or -std=c++20 (gcc10 and higher)."
#endif

#if __has_include(<version>)
# include <version>
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ using test_matrix_t = seqan3::detail::two_dimensional_matrix<score_t, allocator_
template <typename score_type, seqan3::detail::matrix_major_order order = seqan3::detail::matrix_major_order::row>
std::vector<score_type, std::allocator<score_type>> create_matrix_storage()
{
// this is a small hack to allow simd types in an initialiser list on gcc 7 and gcc 10;
// this is a small hack to allow simd types in an initialiser list on gcc 10;
using storage_t = std::array<score_type, 12>;

// note: we represent the same matrix in one case with a row-wise data layout and in the other case with a
Expand Down