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

A Life Without range-v3 #124

Closed
eseiler opened this issue Jun 11, 2020 · 2 comments · Fixed by seqan/seqan3#2998
Closed

A Life Without range-v3 #124

eseiler opened this issue Jun 11, 2020 · 2 comments · Fixed by seqan/seqan3#2998
Labels
Epic ready to tackle This story was discussed and can be immidietly tackled

Comments

@eseiler
Copy link
Member

eseiler commented Jun 11, 2020

Description

Click me

Stuff to reimplement or to abandon:

Concepts library:

grep -rnw . -e "#include <concepts"

  • ./std/concepts:17: (These are okay, because they are needed for our fallback)
    • #include <concepts>
    • #include <concepts/concepts.hpp>

Meta library:

grep -rnw . -e "#include <meta"

  • ./core/algorithm/concept.hpp:18:
    • #include <meta/meta.hpp>
  • ./core/algorithm/configuration.hpp:17:
    • #include <meta/meta.hpp>
  • ./core/algorithm/configuration_utility.hpp:18:
    • #include <meta/meta.hpp>
  • ./core/type_list/type_list.hpp:15:
    • #include <meta/meta.hpp>
  • ./core/bit_manipulation.hpp:16:
    • #include <meta/meta.hpp>
  • ./io/record.hpp:17:
    • #include <meta/meta.hpp>
  • ./alphabet/composite/alphabet_variant.hpp:23:
    • #include <meta/meta.hpp>
  • ./alphabet/composite/alphabet_tuple_base.hpp:18:
    • #include <meta/meta.hpp>
  • ./alignment/pairwise/align_pairwise.hpp:20:
    • #include <meta/meta.hpp>

(TODO: What to do!)

Ranges library:

grep -rnw . -e "#include <range"

  • ./core/common_tuple.hpp:15:
    • #include <range/v3/utility/common_tuple.hpp> (OPEN - Not sure what to do; Reimplement?)
  • ./std/algorithm:27: (These are okay, because they are needed for our fallback)
    • #include <range/v3/algorithm/all_of.hpp>
    • #include <range/v3/algorithm/copy.hpp>
    • #include <range/v3/algorithm/copy_n.hpp>
    • #include <range/v3/algorithm/equal.hpp>
    • #include <range/v3/algorithm/fill.hpp>
    • #include <range/v3/algorithm/find_if_not.hpp>
    • #include <range/v3/algorithm/find_if.hpp>
    • #include <range/v3/algorithm/find.hpp>
    • #include <range/v3/algorithm/for_each.hpp>
    • #include <range/v3/algorithm/generate.hpp>
    • #include <range/v3/algorithm/min_element.hpp>
    • #include <range/v3/algorithm/max_element.hpp>
    • #include <range/v3/algorithm/move_backward.hpp>
    • #include <range/v3/algorithm/move.hpp>
    • #include <range/v3/algorithm/reverse.hpp>
    • #include <range/v3/algorithm/sort.hpp>
    • #include <range/v3/algorithm/transform.hpp>
  • ./std/iterator:38: (These are okay, because they are needed for our fallback)
    • #include <range/v3/iterator/access.hpp>
    • #include <range/v3/iterator/concepts.hpp>
    • #include <range/v3/iterator/default_sentinel.hpp>
    • #include <range/v3/iterator/insert_iterators.hpp>
    • #include <range/v3/iterator/operations.hpp>
    • #include <range/v3/iterator/stream_iterators.hpp>
    • #include <range/v3/iterator/traits.hpp>
  • ./std/ranges:23: (These are okay, because they are needed for our fallback)
    • #include <range/v3/range/concepts.hpp>
    • #include <range/v3/range/concepts.hpp>
    • #include <range/v3/iterator/insert_iterators.hpp>
    • #include <range/v3/view/all.hpp>
    • #include <range/v3/view/any_view.hpp>
    • #include <range/v3/view/common.hpp>
    • #include <range/v3/view/drop.hpp>
    • #include <range/v3/view/drop_while.hpp>
    • #include <range/v3/view/filter.hpp>
    • #include <range/v3/view/iota.hpp>
    • #include <range/v3/view/istream.hpp>
    • #include <range/v3/view/join.hpp>
    • #include <range/v3/view/map.hpp>
    • #include <range/v3/view/reverse.hpp>
    • #include <range/v3/view/single.hpp>
    • #include <range/v3/view/split.hpp>
    • #include <range/v3/view/subrange.hpp>
    • #include <range/v3/view/take.hpp>
    • #include <range/v3/view/take_while.hpp>
    • #include <range/v3/view/transform.hpp>
  • ./std/concepts:81: (These are okay, because they are needed for our fallback)
    • #include <range/v3/functional/concepts.hpp>
    • #include <range/v3/utility/common_type.hpp>
  • ./search/configuration/max_error_rate.hpp:16:
    • #include <range/v3/numeric/accumulate.hpp>
    • (It seems that no rangified version landed in the standard, it seems that the whole <numeric> didn't get an update)
  • ./search/fm_index/fm_index_cursor.hpp:20:
    • #include <range/v3/view/slice.hpp>
    • (We could use <seqan3/range/views/slice.hpp> instead)
  • ./range/views/join.hpp:15:
    • #include <range/v3/view/join.hpp>
    • (We assume that the view has a delimiter option, which the std::views::join doesn't support)
  • ./range/views/repeat.hpp:15:
    • #include <range/v3/view/single.hpp>
    • (We could use <seqan3/std/algorithm> instead)
  • ./range/views/to.hpp:15:
    • #include <range/v3/range/conversion.hpp>
    • (OPEN - Not sure what to do)
  • ./range/views/chunk.hpp:15:
    • #include <range/v3/view/chunk.hpp>
    • (OPEN - Not sure what to do)
  • ./range/views/persist.hpp:15:
    • #include <range/v3/algorithm/copy.hpp>
    • (We could use <seqan3/std/algorithm> instead)
  • ./range/views/zip.hpp:15:
    • #include <range/v3/view/zip.hpp>
    • (OPEN - Not sure what to do; Reimplement?)
  • ./range/views/interleave.hpp:17:
    • #include <range/v3/view/chunk.hpp>
    • (OPEN - Not sure what to do; Reimplement?)
  • ./range/views/take.hpp:15:
    • #include <range/v3/algorithm/copy.hpp>
    • (We could use <seqan3/std/algorithm> instead)
  • ./io/detail/in_file_iterator.hpp:17:
    • #include <range/v3/range_fwd.hpp>
    • (We could use <seqan3/std/range> instead, but I'm not sure why we forward declare, <seqan3/std/iterator> might be enough.)
  • ./io/detail/out_file_iterator.hpp:17:
    • #include <range/v3/range_fwd.hpp>
    • (We could use <seqan3/std/range> instead, but I'm not sure why we forward declare, <seqan3/std/iterator> might be enough.)
  • ./io/alignment_file/detail.hpp:29:
    • #include <range/v3/view/zip.hpp>
    • (OPEN - Not sure what to do; Reimplement?)
  • ./io/stream/iterator.hpp:20:
    • #include <range/v3/iterator/stream_iterators.hpp>
    • (We could use <seqan3/std/iterator> instead; It seems that we don't even use this.)
  • ./io/sequence_file/format_genbank.hpp:20:
    • #include <range/v3/view/chunk.hpp>
    • (OPEN - Not sure what to do; Reimplement?)
  • ./alignment/aligned_sequence/aligned_sequence_concept.hpp:19:
    • #include <range/v3/algorithm/for_each.hpp>
    • (We could use <seqan3/std/algorithm> instead)
  • ./alignment/scoring/aminoacid_scoring_scheme.hpp:16:
    • #include <range/v3/algorithm/copy.hpp>
    • (We could use <seqan3/std/algorithm> instead)
  • ./alignment/scoring/scoring_scheme_base.hpp:16:
    • #include <range/v3/algorithm/copy.hpp>
    • (We could use <seqan3/std/algorithm> instead)
  • ./alignment/pairwise/edit_distance_unbanded.hpp:19:
    • #include <range/v3/algorithm/copy.hpp>
    • (We could use <seqan3/std/algorithm> instead)

Stuff to reimplement or copy into contrib:

Stuff to delete/deprecate and implement with other means (@SGSSGene)

Follow-up: #263

@eseiler eseiler added the Epic label Jun 11, 2020
@marehr
Copy link
Member

marehr commented Jun 13, 2020

I refined the ticket a bit.

marehr added a commit to marehr/seqan3 that referenced this issue Jun 13, 2020
marehr added a commit to marehr/seqan3 that referenced this issue Jun 13, 2020
@marehr marehr added Epic and removed Epic labels Jun 14, 2020
marehr added a commit to marehr/seqan3 that referenced this issue Jun 19, 2020
marehr added a commit to marehr/seqan3 that referenced this issue Feb 3, 2021
This also makes the alphabet a bit less dependent on the meta library
(seqan/product_backlog#124)
marehr added a commit to marehr/seqan3 that referenced this issue Feb 3, 2021
This also makes the alphabet a bit less dependent on the meta library
(seqan/product_backlog#124)
@smehringer
Copy link
Member

smehringer commented Feb 7, 2022

Core Meeting 07.02.2022

supporting gcc-12 depends on 2 fixes upstream in the ranges-v3 library (see #402 ). Since we want to be independent of the ranges library in the near future anyway, The following could be the in-the-meantime solution:

We fork the range-v3 library "now" and apply our fixes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic ready to tackle This story was discussed and can be immidietly tackled
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants