From 4989f3e9ff2efee1852942bb9328ef121369ba02 Mon Sep 17 00:00:00 2001 From: Eric Niebler Date: Thu, 6 Aug 2020 16:59:46 -0600 Subject: [PATCH] Release v0.11.0 --- Version.cmake | 8 ++-- doc/gh-pages | 2 +- doc/release_notes.md | 71 ++++++++++++++++++++++++++++++++++++ include/range/v3/version.hpp | 2 +- 4 files changed, 78 insertions(+), 5 deletions(-) diff --git a/Version.cmake b/Version.cmake index 5a33349de6..6cb76af003 100644 --- a/Version.cmake +++ b/Version.cmake @@ -1,5 +1,7 @@ -# To update the range-v3 version, from a *CLEAN* working directory, update the version numbers below. -# This makefile will generate a new version.hpp, *AMEND THE MOST RECENT COMMIT*, and git-tag the commit. +# To update the range-v3 version, from a working directory that is clean except for an +# updated doc/release_notes.md file, update the version numbers below. This makefile will +# generate a new version.hpp, *AMEND THE MOST RECENT COMMIT*, and git-tag the commit. + set(RANGE_V3_MAJOR 0) -set(RANGE_V3_MINOR 10) +set(RANGE_V3_MINOR 11) set(RANGE_V3_PATCHLEVEL 0) diff --git a/doc/gh-pages b/doc/gh-pages index 99214788dc..4f981f90e5 160000 --- a/doc/gh-pages +++ b/doc/gh-pages @@ -1 +1 @@ -Subproject commit 99214788dc45a278a2752f22c0a502110f41bc9e +Subproject commit 4f981f90e5b2ba0d11f3a9210e8b4f6756af1b7a diff --git a/doc/release_notes.md b/doc/release_notes.md index d0dfadcbbe..54e8b5e2d3 100644 --- a/doc/release_notes.md +++ b/doc/release_notes.md @@ -1,6 +1,77 @@ Release Notes {#release_notes} ============= +\section v0-11-0 Version 0.11.0 "Thanks, ISO" + +_Released:_ August 6, 2020 + +> **IMPORTANT:** This release removes the heuristic that tries to guess whether a range type +is a "view" (lightweight, non-owning range), in accordance with the C++20. **This is a +potentially source-breaking change.** Code that previously used an rvalue range as the +start of a pipeline could stop compiling if the range library is not explicitly told that +that range type is a view. To override the new default, please specialize the +`ranges::enable_view` Boolean variable template. + +> **IMPORTANT:** This release removes the implicit conversion from views to containers. +To construct a container from an arbitrary range, you must now explicitly use +`ranges::to`. For example, the following code no longer works: +> +> ```c++ +> std::vector is = ranges::views::ints(0, 10); // ERROR: no conversion +> ``` +> +> Instead, please write this as: +> +> ```c++ +> auto is = ranges::views::ints(0, 10) | ranges::to; // OK +> ``` +> +> `ranges::to` lives in header `` + +> **IMPORTANT:** This release drops support for llvm-3.9. + +Changes: +* **NEW:** A new concepts portability layer that short-circuits atomic constraints + in `requires` clauses for better compile times when emulating concepts. +* **NEW:** Restored support for MSVC in `/std:c++17` mode, and for MSVC's default preprocessor. +* Remove the implicit conversion from views to containers. +* Rename the following entities to be consistent with C++20's `std::ranges` support: + * `safe_range` -> `borrowed_range` + * `enable_safe_range` -> `enable_borrowed_range` + * `safe_iterator_t` -> `borrowed_iterator_t` + * `safe_subrange_t` -> `borrowed_subrange_t` + * `readable_traits` -> `indirectly_readable_traits` + * `readable` -> `indirectly_readable` + * `writable` -> `indirectly_writable` +* Added the following to the `ranges::cpp20` namespace: + * Algorithm `for_each_n` + * Algorithm `sample` + * Class `view_base` + * Alias `views::all_t` +* Type `__int128` is recognized as "integer-like". +* Adds concepts `three_way_comparable[_with]` when `<=>` is supported. +* Adds concepts `partially_ordered[_with]`. +* Better conformance with C++20's use of the _`boolean-testable`_ concept. +* Support C++20 coroutines. +* Honor CMake's `CMAKE_CXX_STANDARD` variable. +* A fix for the cardinality of `views::zip[_with]` (#1486). +* Add `view_interface::data()` member function. +* Add necessary specializations for `std::basic_common_reference` and + `std::common_type`. +* Numerous workarounds for MSVC. +* Various CMake fixes and improvements. +* `drop_while_view` is not a `sized_range`. +* Added support for Wind River Systems. +* Bug fixes to `views::group_by` (#1393). +* `common_[reference|type]` of `common_[tuple|pair]` now yields a `common_[tuple|pair]` + instead of a `std::[tuple|pair]` (#1422). +* Avoid UB when currying an lvalue in some views and actions (#1320). + +**Credits:** I would like to thank the following people who contributed to this release +(in no particular order): Christopher Di Bella, @marehr, Casey Carter, Dvir Yitzchaki, +Justin Riddell, Johel Ernesto Guerrero Peña, Barry Revzin, Kamlesh Kumar, and Vincas +Dargis. + \section v0-10-0 Version 0.10.0 "To Err is Human" _Released:_ Dec 6, 2019. diff --git a/include/range/v3/version.hpp b/include/range/v3/version.hpp index 377a5d8c31..29adc700ed 100644 --- a/include/range/v3/version.hpp +++ b/include/range/v3/version.hpp @@ -15,7 +15,7 @@ #define RANGES_V3_VERSION_HPP #define RANGE_V3_MAJOR 0 -#define RANGE_V3_MINOR 10 +#define RANGE_V3_MINOR 11 #define RANGE_V3_PATCHLEVEL 0 #define RANGE_V3_VERSION \