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] Update the ranges-v3 library to 0.11.0 #2014

Merged
merged 2 commits into from
Aug 14, 2020

Conversation

marehr
Copy link
Member

@marehr marehr commented Aug 7, 2020

Copy link
Contributor

@rrahn rrahn left a comment

Choose a reason for hiding this comment

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

Thanks 👍 :shipit:

@marehr marehr requested a review from eseiler August 7, 2020 11:08
@marehr marehr force-pushed the update_range_library branch 2 times, most recently from b01cb90 to fa6efd3 Compare August 7, 2020 11:14
@marehr
Copy link
Member Author

marehr commented Aug 7, 2020

Locally works for:

  • gcc-8 -std=c++17 -fconcepts
  • gcc-9 -std=c++17 -fconcepts
  • gcc-10.1 -std=c++17 -fconcepts
  • gcc-10.1 -std=c++2a
  • gcc-10.2 -std=c++2a

@eseiler
Copy link
Member

eseiler commented Aug 7, 2020

Something triggers the visibility bug... https://travis-ci.org/github/seqan/seqan3/jobs/715804696

@marehr
Copy link
Member Author

marehr commented Aug 7, 2020

Something triggers the visibility bug... https://travis-ci.org/github/seqan/seqan3/jobs/715804696

My guess is that the ranges library now uses the short hand syntax 🐌

@marehr
Copy link
Member Author

marehr commented Aug 7, 2020

Yep

#include <seqan3/std/ranges> // submodules/range-v3/include/range/v3/view/split.hpp is the main culprit right now.

  class A{ int i{5}; };
 template <typename t> META_CONCEPT private_bug = requires(t a){a.i;};
 static_assert(!private_bug<A>, "See https://github.com/seqan/seqan3/issues/1317");

Does trigger it.

@eseiler
Copy link
Member

eseiler commented Aug 7, 2020

So, do we fix it upstream (and maybe hope for an 11.1 release or just use some commit)?
Btw, I couldn't find the syntax that causes the bug...

@marehr
Copy link
Member Author

marehr commented Aug 7, 2020

I could get it reduced to this:

#include <range/v3/iterator/traits.hpp>
#include <range/v3/detail/prologue.hpp>
namespace ranges {
template(typename I)(
    concept(readable_)(I),
    same_as<iter_reference_t<I const>, iter_reference_t<I>> AND
        same_as<iter_rvalue_reference_t<I const>, iter_rvalue_reference_t<I>>
            AND common_reference_with<iter_reference_t<I> &&, iter_value_t<I> &>
                AND common_reference_with<iter_reference_t<I> &&,
                                          iter_rvalue_reference_t<I> &&>
                    AND common_reference_with<iter_rvalue_reference_t<I> &&,
                                              iter_value_t<I> const &>);
template <typename I>
CPP_concept indirectly_readable = CPP_concept_ref(ranges::readable_,
                                                  uncvref_t<I>);
template <typename I1, typename I2>
CPP_requires(indirectly_swappable_,
             requires(I1 const i1, I2 const i2)(ranges::iter_swap(i1, i2),
                                                ranges::iter_swap(i1, i1),
                                                ranges::iter_swap(i2, i2),
                                                ranges::iter_swap(i2, i1)));
template <typename I1, typename I2 = I1>
CPP_concept indirectly_swappable = indirectly_readable<I1> &&
    indirectly_readable<I2> &&CPP_requires_ref(ranges::indirectly_swappable_,
                                               I1, I2);
} // namespace ranges
namespace ranges {
template <typename Rng>
using iterator_t = decltype(begin(std::declval<Rng &>()));
template <typename V, typename Pattern> struct split_view;
namespace detail {
template <typename JoinView, bool Const> struct split_inner_iterator;
template <typename V, typename Pattern, bool Const>
struct split_inner_iterator<split_view<V, Pattern>, Const> {
  using Base = meta::const_if_c<Const, V>;
  CPP_broken_friend_member friend constexpr auto
  iter_swap(split_inner_iterator const &x, split_inner_iterator const &y)
      -> CPP_broken_friend_ret(void)(
          requires indirectly_swappable<iterator_t<Base>>) {}
};
} // namespace detail
} // namespace ranges
class A {
  int i{5};
};
template <typename t> META_CONCEPT private_bug = requires(t a) { a.i; };
static_assert(!private_bug<A>,
              "See https://github.com/seqan/seqan3/issues/1317");

@marehr marehr changed the base branch from master to release-3.0.2 August 10, 2020 10:12
@marehr
Copy link
Member Author

marehr commented Aug 10, 2020

I created a bug fix upstream ericniebler/range-v3#1547.

I'll wait this week, if we have no reaction upstream, I'll temporarily disable the header test.

@eseiler
Copy link
Member

eseiler commented Aug 14, 2020

Upstream PR was merged

@codecov
Copy link

codecov bot commented Aug 14, 2020

Codecov Report

Merging #2014 into release-3.0.2 will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@              Coverage Diff               @@
##           release-3.0.2    #2014   +/-   ##
==============================================
  Coverage          97.89%   97.89%           
==============================================
  Files                263      263           
  Lines               9879     9879           
==============================================
  Hits                9671     9671           
  Misses               208      208           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ada8b38...03f1625. Read the comment docs.

@eseiler eseiler merged commit 3fe15d3 into seqan:release-3.0.2 Aug 14, 2020
@marehr marehr deleted the update_range_library branch August 14, 2020 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade to ranges v3 0.11.0 Rename enable_safe_range to enable_borrowed_range.
3 participants