git: faf35cc8ed37 - main - devel/range-v3: update 0.11.0_1 -> 0.12.0

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Wed, 23 Nov 2022 01:47:12 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=faf35cc8ed37171a734b1eacd9a93497a0612396

commit faf35cc8ed37171a734b1eacd9a93497a0612396
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2022-11-23 01:45:28 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2022-11-23 01:45:28 +0000

    devel/range-v3: update 0.11.0_1 -> 0.12.0
    
    Reset maintainership.
    
    Approved by:    maintainer timeout (2 weeks)
    PR:             267655
---
 devel/range-v3/Makefile                            |   5 +-
 devel/range-v3/distinfo                            |   6 +-
 devel/range-v3/files/patch-0487cca29e35            | 122 ---------------------
 devel/range-v3/files/patch-cmake_ranges__env.cmake |  14 +++
 devel/range-v3/pkg-plist                           |   4 +
 5 files changed, 23 insertions(+), 128 deletions(-)

diff --git a/devel/range-v3/Makefile b/devel/range-v3/Makefile
index a797d6ace0f6..780f6e743621 100644
--- a/devel/range-v3/Makefile
+++ b/devel/range-v3/Makefile
@@ -1,9 +1,8 @@
 PORTNAME=	range-v3
-DISTVERSION=	0.11.0
-PORTREVISION=	1
+DISTVERSION=	0.12.0
 CATEGORIES=	devel
 
-MAINTAINER=	henry.hu.sh@gmail.com
+MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Experimental range library for C++11/14/17
 WWW=		https://github.com/ericniebler/range-v3
 
diff --git a/devel/range-v3/distinfo b/devel/range-v3/distinfo
index 892a1fe4c6f2..482d4b91bf5a 100644
--- a/devel/range-v3/distinfo
+++ b/devel/range-v3/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1619769312
-SHA256 (ericniebler-range-v3-0.11.0_GH0.tar.gz) = 376376615dbba43d3bef75aa590931431ecb49eb36d07bb726a19f680c75e20c
-SIZE (ericniebler-range-v3-0.11.0_GH0.tar.gz) = 533136
+TIMESTAMP = 1667839965
+SHA256 (ericniebler-range-v3-0.12.0_GH0.tar.gz) = 015adb2300a98edfceaf0725beec3337f542af4915cec4d0b89fa0886f4ba9cb
+SIZE (ericniebler-range-v3-0.12.0_GH0.tar.gz) = 582834
diff --git a/devel/range-v3/files/patch-0487cca29e35 b/devel/range-v3/files/patch-0487cca29e35
deleted file mode 100644
index 90a378edb768..000000000000
--- a/devel/range-v3/files/patch-0487cca29e35
+++ /dev/null
@@ -1,122 +0,0 @@
-From 0487cca29e352e8f16bbd91fda38e76e39a0ed28 Mon Sep 17 00:00:00 2001
-From: Louis Dionne <ldionne.2@gmail.com>
-Date: Tue, 15 Jun 2021 14:40:01 -0400
-Subject: [PATCH] Work around broken integration with latest libc++. (#1635)
-
-* Work around broken integration with latest libc++.
-
-In newer versions of libc++, the base template of std::iterator_traits
-provides a member typedef called __primary_template which is an alias
-to the std::iterator_traits specialization itself. This fix works with
-both the old version of libc++ and the new one.
-
-Fixes issue #1633.
-
-* Fix is_std_iterator_traits_specialized_v on MSVC
-
-It used to pretend that std::iterator_traits<T*> is a user-defined
-specialization, which isn't the case. This is due to MSVC's
-iterator_traits<T*> specialization not posing as the base template.
----
- include/std/detail/associated_types.hpp | 22 +++++++++++-----
- test/CMakeLists.txt                     |  1 +
- test/bug1633.cpp                        | 34 +++++++++++++++++++++++++
- 3 files changed, 51 insertions(+), 6 deletions(-)
- create mode 100644 test/bug1633.cpp
-
-diff --git a/include/std/detail/associated_types.hpp b/include/std/detail/associated_types.hpp
-index b642166d4..449a3f91c 100644
---- include/std/detail/associated_types.hpp
-+++ include/std/detail/associated_types.hpp
-@@ -265,11 +265,22 @@ namespace ranges
-         template<typename I>
-         char is_std_iterator_traits_specialized_impl_(void *);
- #elif defined(_LIBCPP_VERSION)
--        template<typename I, bool B>
--        char (
--            &is_std_iterator_traits_specialized_impl_(std::__iterator_traits<I, B> *))[2];
-+        // In older versions of libc++, the base template inherits from std::__iterator_traits<typename, bool>.
-+        template<template<typename, bool> class IteratorTraitsBase, typename I, bool B>
-+        char (&libcpp_iterator_traits_base_impl(IteratorTraitsBase<I, B> *))[2];
-+        template<template<typename, bool> class IteratorTraitsBase, typename I>
-+        char libcpp_iterator_traits_base_impl(void *);
-+
-+        // In newer versions, the base template has only one template parameter and provides the
-+        // __primary_template typedef which aliases the iterator_traits specialization.
-+        template<template<typename> class, typename I>
-+        char (&libcpp_iterator_traits_base_impl(typename std::iterator_traits<I>::__primary_template *))[2];
-+        template<template<typename> class, typename I>
-+        char libcpp_iterator_traits_base_impl(void *);
-+
-         template<typename I>
--        char is_std_iterator_traits_specialized_impl_(void *);
-+        auto is_std_iterator_traits_specialized_impl_(std::iterator_traits<I>* traits)
-+            -> decltype(libcpp_iterator_traits_base_impl<std::__iterator_traits, I>(traits));
- #elif defined(_MSVC_STL_VERSION)
-         template<typename I>
-         char (&is_std_iterator_traits_specialized_impl_(
-@@ -287,14 +298,13 @@ namespace ranges
-         RANGES_INLINE_VAR constexpr bool is_std_iterator_traits_specialized_v =
-             1 == sizeof(is_std_iterator_traits_specialized_impl_<I>(
-                      static_cast<std::iterator_traits<I> *>(nullptr)));
--
-+#endif
-         // The standard iterator_traits<T *> specialization(s) do not count
-         // as user-specialized. This will no longer be necessary in C++20.
-         // This helps with `T volatile*` and `void *`.
-         template<typename T>
-         RANGES_INLINE_VAR constexpr bool is_std_iterator_traits_specialized_v<T *> =
-             false;
--#endif
-     } // namespace detail
-     /// \endcond
- } // namespace ranges
-diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
-index 889f314af..2c2b7c09c 100644
---- test/CMakeLists.txt
-+++ test/CMakeLists.txt
-@@ -19,3 +19,4 @@ rv3_add_test(test.bug474 bug474 bug474.cpp)
- rv3_add_test(test.bug566 bug566 bug566.cpp)
- rv3_add_test(test.bug1322 bug1322 bug1322.cpp)
- rv3_add_test(test.bug1335 bug1335 bug1335.cpp)
-+rv3_add_test(test.bug1633 bug1633 bug1633.cpp)
-diff --git a/test/bug1633.cpp b/test/bug1633.cpp
-new file mode 100644
-index 000000000..be52420ad
---- /dev/null
-+++ test/bug1633.cpp
-@@ -0,0 +1,34 @@
-+// Range v3 library
-+//
-+//  Use, modification and distribution is subject to the
-+//  Boost Software License, Version 1.0. (See accompanying
-+//  file LICENSE_1_0.txt or copy at
-+//  http://www.boost.org/LICENSE_1_0.txt)
-+//
-+// Project home: https://github.com/ericniebler/range-v3
-+
-+#include <cstddef>
-+#include <iterator>
-+#include <range/v3/iterator.hpp>
-+
-+struct X { };
-+
-+namespace std {
-+    template<> struct iterator_traits<X> { };
-+}
-+
-+struct Y {
-+    using difference_type = std::ptrdiff_t;
-+    using value_type = int;
-+    using pointer = int*;
-+    using reference = int&;
-+    using iterator_category = std::forward_iterator_tag;
-+};
-+
-+static_assert(ranges::detail::is_std_iterator_traits_specialized_v<X>, "");
-+static_assert(!ranges::detail::is_std_iterator_traits_specialized_v<Y>, "");
-+static_assert(!ranges::detail::is_std_iterator_traits_specialized_v<int*>, "");
-+
-+int main()
-+{
-+}
diff --git a/devel/range-v3/files/patch-cmake_ranges__env.cmake b/devel/range-v3/files/patch-cmake_ranges__env.cmake
new file mode 100644
index 000000000000..63bb8faf12af
--- /dev/null
+++ b/devel/range-v3/files/patch-cmake_ranges__env.cmake
@@ -0,0 +1,14 @@
+--- cmake/ranges_env.cmake.orig	2022-11-07 17:22:22 UTC
++++ cmake/ranges_env.cmake
+@@ -46,6 +46,11 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
+   if (RANGES_VERBOSE_BUILD)
+     message(STATUS "[range-v3]: system is Windows.")
+   endif()
++elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
++  set (RANGES_ENV_FREEBSD TRUE)
++  if (RANGES_VERBOSE_BUILD)
++    message(STATUS "[range-v3]: system is FreeBSD.")
++  endif()
+ elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
+   set (RANGES_ENV_OPENBSD TRUE)
+   if (RANGES_VERBOSE_BUILD)
diff --git a/devel/range-v3/pkg-plist b/devel/range-v3/pkg-plist
index abe91e64c1c2..01cb8286e674 100644
--- a/devel/range-v3/pkg-plist
+++ b/devel/range-v3/pkg-plist
@@ -60,6 +60,9 @@ include/range/v3/algorithm/find_end.hpp
 include/range/v3/algorithm/find_first_of.hpp
 include/range/v3/algorithm/find_if.hpp
 include/range/v3/algorithm/find_if_not.hpp
+include/range/v3/algorithm/fold.hpp
+include/range/v3/algorithm/fold_left.hpp
+include/range/v3/algorithm/fold_right.hpp
 include/range/v3/algorithm/for_each.hpp
 include/range/v3/algorithm/for_each_n.hpp
 include/range/v3/algorithm/generate.hpp
@@ -245,6 +248,7 @@ include/range/v3/view/c_str.hpp
 include/range/v3/view/cache1.hpp
 include/range/v3/view/cartesian_product.hpp
 include/range/v3/view/chunk.hpp
+include/range/v3/view/chunk_by.hpp
 include/range/v3/view/common.hpp
 include/range/v3/view/concat.hpp
 include/range/v3/view/const.hpp