Skip to content

Commit

Permalink
0.10.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ericniebler committed Dec 6, 2019
1 parent 46b148f commit 4d6a463
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 7 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/include/range/v3/version.hpp RANGE_V3_N
# If the new version.hpp is materially different from the one in the source
# directory, update it, commit, and tag.
if(NOT RANGE_V3_NEW_VERSION_HPP STREQUAL RANGE_V3_OLD_VERSION_HPP)
# Check that README.md and Version.cmake are the only changed file:
# Check that doc/release_notes.md and Version.cmake are the only changed file:
execute_process(
COMMAND ${GIT_EXECUTABLE} -C "${CMAKE_CURRENT_SOURCE_DIR}" status --porcelain -uno
OUTPUT_VARIABLE RANGE_V3_GIT_STATUS
Expand Down
4 changes: 2 additions & 2 deletions Version.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# 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.
set(RANGE_V3_MAJOR 0)
set(RANGE_V3_MINOR 9)
set(RANGE_V3_PATCHLEVEL 1)
set(RANGE_V3_MINOR 10)
set(RANGE_V3_PATCHLEVEL 0)
2 changes: 1 addition & 1 deletion conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

class Rangev3Conan(ConanFile):
name = "range-v3"
version = "0.9.1"
version = "0.10.0"
license = "Boost Software License - Version 1.0 - August 17th, 2003"
url = "https://github.com/ericniebler/range-v3"
description = """Experimental range library for C++11/14/17"""
Expand Down
65 changes: 64 additions & 1 deletion doc/release_notes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,69 @@
Release Notes {#release_notes}
=============

\section v0-10-0 Version 0.10.0 "To Err is Human"

_Released:_ Dec 6, 2019.

**IMPORTANT:** Before upgrading, please note that several older compiler versions
and build configurations are no longer supported! In particular, MSVC now needs
`/std:c++latest`.

**ALSO:** When taking a dependency on the `range-v3`, `meta`, or `concepts`
libraries via CMake, please now use the namespace qualified target names:
- `range-v3::range-v3`
- `range-v3::meta`
- `range-v3::concepts`

Changes:
* **NEW:** Rewritten concepts portability layer with simpler macros for better
diagnostics.
* **NEW:** The `views::cache1` view caches the most recent value in the
range. This can help avoid reevaluation of transformations in complex view
pipelines.
* **NEW:** `ranges::contains` algorithm.
* **NEW:** `enable_safe_range` trait for opting in to the _forwarding-range_
concept. These are ranges whose iterators remain valid even after the
range itself has been destroyed; _e.g._, `std::string_view` and
`ranges::subrange`.
* The `readable` concept has changed such that types that are not _indirectly_
readable with `operator*` (_e.g., `std::optional`) no longer satisfy that
concept.
* Using `views::join` to join a range of xvalue ranges works again.
* The following range access primitives no longer accept temporary containers
(_i.e._, they refuse to return references known to be dangling):
- `range::front`
- `range::back`
- `range::at`
- `range::index`
* `views::concat` with a single argument now simply returns its argument.
* `ranges::ostream_iterator<T>` now coerces arguments to `T` before inserting
them into the wrapped ostream.
* Smaller iterators for `views::transform` and `views::take_while`.
* `actions::split` and `actions::split_when` now support partial application and
pipelining ([\#1085](https://github.com/ericniebler/range-v3/issues/1085)).
* `views::group_by` and its iterator both get a `.base()` member to access the
underlying range and iterator, respectively.
* Improved diagnostics with clang.
* Assorted bug fixes and compiler work-arounds:
[\#284](https://github.com/ericniebler/range-v3/issues/284),
[\#491](https://github.com/ericniebler/range-v3/issues/491),
[\#499](https://github.com/ericniebler/range-v3/issues/499),
[\#871](https://github.com/ericniebler/range-v3/issues/871),
[\#1022](https://github.com/ericniebler/range-v3/issues/1022),
[\#1043](https://github.com/ericniebler/range-v3/issues/1043),
[\#1081](https://github.com/ericniebler/range-v3/issues/1081),
[\#1085](https://github.com/ericniebler/range-v3/issues/1085),
[\#1101](https://github.com/ericniebler/range-v3/issues/1101),
[\#1116](https://github.com/ericniebler/range-v3/issues/1116),
[\#1296](https://github.com/ericniebler/range-v3/issues/1296),
[\#1305](https://github.com/ericniebler/range-v3/issues/1305), and
[\#1335](https://github.com/ericniebler/range-v3/issues/1335).

Many thanks to GitHub users @CaseyCarter, @morinmorin, @h-2, @MichaelWJung,
@johelegp, @marehr, @alkino, @xuning97, @BRevzin, and @mpusz for their
contributions.

\section v0-9-1 Version 0.9.1

_Released:_ Sept 1, 2019.
Expand All @@ -13,7 +76,7 @@ _Released:_ Aug 26, 2019.

Bring many interfaces into sync with the C++20 draft.

* **NEW:** An improved concepts portability layer with macros that use C++20
* **NEW:** An improved concepts portability layer with macros that use C++20
concepts when the compiler supports them.
* **NEW:** An improved directory structure that keeps disjoint parts of the
library -- iterators, ranges, algorithms, actions, views, functional
Expand Down
4 changes: 2 additions & 2 deletions include/range/v3/version.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
#define RANGES_V3_VERSION_HPP

#define RANGE_V3_MAJOR 0
#define RANGE_V3_MINOR 9
#define RANGE_V3_PATCHLEVEL 1
#define RANGE_V3_MINOR 10
#define RANGE_V3_PATCHLEVEL 0

#define RANGE_V3_VERSION \
(RANGE_V3_MAJOR * 10000 + RANGE_V3_MINOR * 100 + RANGE_V3_PATCHLEVEL)
Expand Down

0 comments on commit 4d6a463

Please sign in to comment.