Skip to content

Commit a814779

Browse files
committed
release 0.12.0
1 parent 003f42c commit a814779

File tree

9 files changed

+69
-16
lines changed

9 files changed

+69
-16
lines changed

CREDITS.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ In 2013, I published a blog post called ["Out Parameters, Move Semantics, and St
4141

4242
**Standardization**
4343

44-
Around this time, some big thinkers in the C++ community were working to resurrect the effort to add Concepts to C++. They published a paper ([N3351](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3351.pdf)) that would become known as the **"Palo Alto Report"** which detailed the necessary and sufficient language and library support for a concept-checked version of the Standard Template Library. The authors of the paper included Alexander Stepanov, Bjarne Stroustrup, Sean Parent, Andrew Sutton, and more. Andrew Sutton began working in earnest to realize the core language changes, an effort that became known as "Concepts Lite". (It is now the Concepts TS.)
44+
Around this time, some big thinkers in the C++ community were working to resurrect the effort to add Concepts to C++. They published a paper ([N3351](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3351.pdf)) that would become known as the **"Palo Alto Report"** which detailed the necessary and sufficient language and library support for a concept-checked version of the Standard Template Library. The authors of the paper included Alexander Stepanov, Bjarne Stroustrup, Sean Parent, Andrew Sutton, and more. Andrew Sutton began working in earnest to realize the core language changes, an effort that became known as "Concepts Lite". It became the Concepts TS and ultimately C++20's `concept` language feature.
4545

46-
I decided early on that Concepts Lite, or something like it, would become part of Standard C++. Recognizing that C++ would need a concept-ified Standard Library to go with the language feature, I began evolving range-v3 in that direction, eventually submitting ["Ranges for the Standard Library, Revision 1"](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4128.html) to the C++ Standardization Committee, together with Andrew Sutton and Sean Parent. The Committee approved the direction in late 2014, and so it goes...
46+
I realized early on that Concepts Lite, or something like it, would become part of Standard C++. Recognizing that C++ would need a concept-ified Standard Library to go with the language feature, I began evolving range-v3 in that direction, eventually submitting ["Ranges for the Standard Library, Revision 1"](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4128.html) to the C++ Standardization Committee, together with Andrew Sutton and Sean Parent. The Committee approved the direction in late 2014, and so it goes...
4747

48-
Today (2017-03), we are very close to a final Ranges TS and are on target to integrate into Standard C++ in 2020, with *much* more to come. Stay tuned.
48+
As of today (2022-06), C++20 has shipped with modest ranges support in the `std::ranges` namespace, with *much* more to come in C++23 and beyond. Stay tuned.

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ The code is known to work on the following compilers:
5858
- GCC 6.5 (or later)
5959
- Clang/LLVM 6 (or later) on Windows (older versions may work - we haven't tested.)
6060
- Visual Studio 2019 (or later) on Windows, with some caveats due to range-v3's strict conformance requirements:
61-
- range-v3 needs `/permissive-` and either `/std:c++latest` or `/std:c++17`
61+
- range-v3 needs `/permissive-` and either `/std:c++latest`, `/std:c++20`, or `/std:c++17`
6262

6363
**Development Status:** This code is fairly stable, well-tested, and suitable for casual use, although currently lacking documentation. _In general_, no promise is made about support or long-term stability. This code *will* evolve without regard to backwards compatibility.
6464

@@ -99,7 +99,7 @@ target_link_libraries(${PROJECT_NAME} CONAN_PKG::range-v3)
9999
Create `conanfile.txt` in your source dir:
100100
```
101101
[requires]
102-
range-v3/0.10.0
102+
range-v3/0.12.0
103103
104104
[generators]
105105
cmake

Version.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
# generate a new version.hpp, *AMEND THE MOST RECENT COMMIT*, and git-tag the commit.
44

55
set(RANGE_V3_MAJOR 0)
6-
set(RANGE_V3_MINOR 11)
6+
set(RANGE_V3_MINOR 12)
77
set(RANGE_V3_PATCHLEVEL 0)

conanfile.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
class Rangev3Conan(ConanFile):
1616
name = "range-v3"
17-
version = "0.11.0"
17+
version = "0.12.0"
1818
license = "Boost Software License - Version 1.0 - August 17th, 2003"
1919
url = "https://github.com/ericniebler/range-v3"
20-
description = """Experimental range library for C++11/14/17"""
20+
description = """Experimental range library for C++14/17/20"""
2121
# No settings/options are necessary, this is header only
2222
exports_sources = "include*", "LICENSE.txt", "CMakeLists.txt", "cmake/*", "Version.cmake", "version.hpp.in"
2323
no_copy_source = True

doc/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ The code is known to work on the following compilers:
7373
- clang 5.0
7474
- GCC 6.5
7575
- Clang/LLVM 6 (or later) on Windows
76-
- MSVC VS2019, with `/permissive-` and either `/std:c++latest` or `/std:c++17`
76+
- MSVC VS2019, with `/permissive-` and either `/std:c++latest`, `/std:c++20`, or `/std:c++17`
7777

7878
\section tutorial-quick-start Quick Start
7979

doc/release_notes.md

+57-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,59 @@
11
Release Notes {#release_notes}
22
=============
33

4+
\section v0-12-0 Version 0.12.0 "Dude, Where's My Bored Ape?"
5+
6+
_Released:_ June 19, 2022
7+
8+
> **IMPORTANT:** This release deprecates `views::group_by` which was
9+
> an endless source of confusion. `group_by` is replaced with
10+
> `views::chunk_by` (which, beware, has _subtly_ different semantics,
11+
> see below.)
12+
13+
Changes:
14+
* **NEW:** `views::chunk_by` which, like the old `views::group_by` it replaces,
15+
splits a range into a range-of-ranges, where adjacent elements satisfy a binary
16+
predicate ([\#1648](https://github.com/ericniebler/range-v3/pull/1648)). [_Note:_ Whereas `views::group_by` evaluated the predicate
17+
between the current element and the _first_ element in the chunk, `views::chunk_by`
18+
evaluates the predicate between _adjacent_ elements. -- _end note_]
19+
* **NEW:** `constexpr` all the algorithms that are `constexpr` in C++20's `std::ranges`
20+
([\#1683](https://github.com/ericniebler/range-v3/pull/1683)).
21+
* **NEW:** Fold algorithms from [P2322](http://wg21.link/P2322) ([\#1628](https://github.com/ericniebler/range-v3/pull/1628)), ([\#1668](https://github.com/ericniebler/range-v3/pull/1668)).
22+
* **NEW:** `ranges::unformatted_ostream_iterator` ([\#1586](https://github.com/ericniebler/range-v3/pull/1586)).
23+
* **NEW:** Support for the `build2` build system ([\#1562](https://github.com/ericniebler/range-v3/pull/1562)).
24+
* Implement [P2328](http://wg21.link/P2328): relax the constraint on `ranges::join_view`
25+
to support joining ranges of prvalue non-`view` ranges ([\#1655](https://github.com/ericniebler/range-v3/pull/1655)).
26+
* Improved algorithm for `ranges::linear_distribute` ([\#1679](https://github.com/ericniebler/range-v3/pull/1679)).
27+
* Renamed `safe_subrange_t` to `borrowed_subrange_t` ([\#1542](https://github.com/ericniebler/range-v3/pull/1542)).
28+
* Extend `ranges::to` to support conversion to container-of-containers ([\#1553](https://github.com/ericniebler/range-v3/pull/1553)).
29+
* `views::enumerate` can be a `borrowed_view` ([\#1571](https://github.com/ericniebler/range-v3/pull/1571)).
30+
* `ranges::upper_bound` works in the presence of overloaded `operator&` ([\#1632](https://github.com/ericniebler/range-v3/pull/1632)).
31+
* Input iterators are no longer required to be default-constructible ([\#1652](https://github.com/ericniebler/range-v3/pull/1652)).
32+
33+
Bugs fixed:
34+
* `ranges::to<std::map>(v)` does not work ([\#1700](https://github.com/ericniebler/range-v3/pull/1700))
35+
* `ranges::reverse_iterator` has the wrong `value_type` when reversing a proxy
36+
range ([\#1670](https://github.com/ericniebler/range-v3/pull/1670)).
37+
* A post-increment of a `ranges::counted_iterator` wrapping an input iterator with
38+
a `void`-returning post-increment operator isn't incrementing the count ([\#1664](https://github.com/ericniebler/range-v3/pull/1664)).
39+
* Bad assert in `views::drop_last` ([\#1599](https://github.com/ericniebler/range-v3/pull/1599)).
40+
* Read of uninitialized `bool` in `views::cache1` ([\#1610](https://github.com/ericniebler/range-v3/pull/1610)).
41+
* `ranges::unstable_remove_if` calls predicate on same element twice ([\#1629](https://github.com/ericniebler/range-v3/pull/1629)).
42+
* `ranges::on(f,g)(x...)` should be `f(g(x)...)` instead of `f(g(x...))` ([\#1661](https://github.com/ericniebler/range-v3/pull/1661)).
43+
* Broken qualification of cmake targets ([\#1557](https://github.com/ericniebler/range-v3/pull/1557)).
44+
* Various portability and documentation fixes.
45+
46+
**Credits:** I would like to thank the following people who contributed to this release
47+
(in no particular order): Barry Revzin, @dvirtz, Gonzalo Brito, Johel Ernesto Guerrero
48+
Peña, Joël Lamotte, Doug Roeper, Facundo Tuesca, Vitaly Zaitsev, @23rd, @furkanusta,
49+
Jonathan Haigh, @SmorkalovG, @marehr, Matt Beardsley, Chris Glover, Louis Dionne, Jin
50+
Shang (@js8544), Hui Xie, @huixie90, Robert Maynard, Silver Zachara, @sergegers,
51+
Théo DELRIEU, @LesnyRumcajs, Yehezkel Bernat, Maciej Patro, Klemens Nanni, Thomas
52+
Madlener, and Jason Merrill.
53+
54+
&#127881; Special thanks to Barry Revzin for stepping up to be part-time co-maintainer of
55+
range-v3. &#127881;
56+
457
\section v0-11-0 Version 0.11.0 "Thanks, ISO"
558

659
_Released:_ August 6, 2020
@@ -54,18 +107,18 @@ Changes:
54107
* Better conformance with C++20's use of the _`boolean-testable`_ concept.
55108
* Support C++20 coroutines.
56109
* Honor CMake's `CMAKE_CXX_STANDARD` variable.
57-
* A fix for the cardinality of `views::zip[_with]` (#1486).
110+
* A fix for the cardinality of `views::zip[_with]` ([\#1486](https://github.com/ericniebler/range-v3/pull/1486)).
58111
* Add `view_interface::data()` member function.
59112
* Add necessary specializations for `std::basic_common_reference` and
60113
`std::common_type`.
61114
* Numerous workarounds for MSVC.
62115
* Various CMake fixes and improvements.
63116
* `drop_while_view` is not a `sized_range`.
64117
* Added support for Wind River Systems.
65-
* Bug fixes to `views::group_by` (#1393).
118+
* Bug fixes to `views::group_by` ([\#1393](https://github.com/ericniebler/range-v3/pull/1393)).
66119
* `common_[reference|type]` of `common_[tuple|pair]` now yields a `common_[tuple|pair]`
67-
instead of a `std::[tuple|pair]` (#1422).
68-
* Avoid UB when currying an lvalue in some views and actions (#1320).
120+
instead of a `std::[tuple|pair]` ([\#1422](https://github.com/ericniebler/range-v3/pull/1422)).
121+
* Avoid UB when currying an lvalue in some views and actions ([\#1320](https://github.com/ericniebler/range-v3/pull/1320)).
69122
70123
**Credits:** I would like to thank the following people who contributed to this release
71124
(in no particular order): Christopher Di Bella, @marehr, Casey Carter, Dvir Yitzchaki,

include/range/v3/version.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#define RANGES_V3_VERSION_HPP
1616

1717
#define RANGE_V3_MAJOR 0
18-
#define RANGE_V3_MINOR 11
18+
#define RANGE_V3_MINOR 12
1919
#define RANGE_V3_PATCHLEVEL 0
2020

2121
#define RANGE_V3_VERSION \

test_package/conanfile.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ def imports(self):
3030

3131
def test(self):
3232
os.chdir("bin")
33-
self.run(".%sexample" % os.sep)
33+
self.run(".%srange-v3-example" % os.sep)

0 commit comments

Comments
 (0)