guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/03: gnu: range-v3: Update to 0.12.0.


From: guix-commits
Subject: 03/03: gnu: range-v3: Update to 0.12.0.
Date: Wed, 24 Jan 2024 12:17:16 -0500 (EST)

efraim pushed a commit to branch master
in repository guix.

commit da3e6aea0a750246e8a9120d62441c3df65faff0
Author: Efraim Flashner <efraim@flashner.co.il>
AuthorDate: Wed Jan 24 16:12:07 2024 +0200

    gnu: range-v3: Update to 0.12.0.
    
    * gnu/packages/cpp.scm (range-v3): Update to 0.12.0.
    [source]: Remove patch.
    * gnu/packages/patches/range-v3-build-with-gcc10.patch: Remove file.
    * gnu/local.mk (dist_patch_DATA): Remove it.
    
    Change-Id: I078937f9aff0da31ede8d472d8739e48bb775c55
---
 gnu/local.mk                                       |   1 -
 gnu/packages/cpp.scm                               |   7 +-
 .../patches/range-v3-build-with-gcc10.patch        | 122 ---------------------
 3 files changed, 3 insertions(+), 127 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index c20e93390d..43d02ee793 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1957,7 +1957,6 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/qtwayland-cleanup-callbacks.patch       \
   %D%/packages/patches/ragel-char-signedness.patch             \
   %D%/packages/patches/randomjungle-disable-static-build.patch \
-  %D%/packages/patches/range-v3-build-with-gcc10.patch \
   %D%/packages/patches/raptor2-heap-overflow.patch             \
   %D%/packages/patches/ratpoints-sturm_and_rp_private.patch    \
   %D%/packages/patches/ratpoison-shell.patch                   \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index eeb4e6bf7b..44175231af 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -25,7 +25,7 @@
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
-;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022-2024 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2022 muradm <mail@muradm.net>
 ;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
 ;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
@@ -187,7 +187,7 @@ development effort.")
 (define-public range-v3
   (package
     (name "range-v3")
-    (version "0.11.0")
+    (version "0.12.0")
     (source
      (origin
        (method git-fetch)
@@ -195,9 +195,8 @@ development effort.")
              (url "https://github.com/ericniebler/range-v3.git";)
              (commit version)))
        (file-name (git-file-name name version))
-       (patches (search-patches "range-v3-build-with-gcc10.patch"))
        (sha256
-        (base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh"))))
+        (base32 "0r85s5rmp5ixmik2y5y4w760pa38j1sg9hbr1fss2flibzvrf53d"))))
     (build-system cmake-build-system)
     (arguments
      (list
diff --git a/gnu/packages/patches/range-v3-build-with-gcc10.patch 
b/gnu/packages/patches/range-v3-build-with-gcc10.patch
deleted file mode 100644
index a5d5b33523..0000000000
--- a/gnu/packages/patches/range-v3-build-with-gcc10.patch
+++ /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
---- a/include/std/detail/associated_types.hpp
-+++ b/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
---- a/test/CMakeLists.txt
-+++ b/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
-+++ b/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()
-+{
-+}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]