Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3
# cf09b7de 20-Mar-2024 Xiaoyang Liu <siujoeng.lau@gmail.com>

[libc++][ranges] LWG3715: `view_interface::empty` is overconstrained (#85004)

## Abstract

This pull request implements LWG3715: `view_interface::empty` is
overconstrained. Here is an example sim

[libc++][ranges] LWG3715: `view_interface::empty` is overconstrained (#85004)

## Abstract

This pull request implements LWG3715: `view_interface::empty` is
overconstrained. Here is an example similar to those described in the
report, which compiles with `-stdlib=libstdc++` but failed to compile
with `-stdlib=libc++`:

```cpp
// https://godbolt.org/z/EWEoTzah3
std::istringstream input("1 2 3 4 5");
auto i = std::views::istream<int>(input);
auto r = std::views::counted(i.begin(), 4) | std::views::take(2);
assert(!r.empty());
```

## Reference

- [Draft C++ Standard:
[view.interface.general]](https://eel.is/c++draft/view.interface.general)
- [LWG3715](https://wg21.link/LWG3715)

show more ...


Revision tags: llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0
# fb855eb9 14-Mar-2023 Mark de Wever <koraq@xs4all.nl>

[libc++] Qualifies size_t.

This has been done using the following command

find libcxx/test -type f -exec perl -pi -e 's|^([^/]+?)((?<!::)size_t)|\1std::\2|' \{} \;

And manually removed some fals

[libc++] Qualifies size_t.

This has been done using the following command

find libcxx/test -type f -exec perl -pi -e 's|^([^/]+?)((?<!::)size_t)|\1std::\2|' \{} \;

And manually removed some false positives in std/depr/depr.c.headers.

The `std` module doesn't export `::size_t`, this is a preparation for that module.

Reviewed By: ldionne, #libc, EricWF, philnik

Differential Revision: https://reviews.llvm.org/D146088

show more ...


Revision tags: llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7
# 17e6bd80 12-Jan-2023 Konstantin Varlamov <varconst@apple.com>

[libc++][ranges] Fix incorrect integer type in `view_interface` tests.

`ForwardIter() - ForwardIter()` returns `ptrdiff_t`, and converting it
to an unsigned type isn't guaranteed to produce the same

[libc++][ranges] Fix incorrect integer type in `view_interface` tests.

`ForwardIter() - ForwardIter()` returns `ptrdiff_t`, and converting it
to an unsigned type isn't guaranteed to produce the same type as
`size_t`.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D141456

show more ...


# c45f382a 13-Dec-2022 Igor Zhukov <fsb4000@yandex.ru>

Implement LWG-3646 std::ranges::view_interface::size returns a signed type

Reviewed By: Mordante, philnik, #libc

Differential Revision: https://reviews.llvm.org/D139791


Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3
# b8cb1dc9 18-Aug-2022 Louis Dionne <ldionne.2@gmail.com>

[libc++] Make <ranges> non-experimental

When we ship LLVM 16, <ranges> won't be considered experimental anymore.
We might as well do this sooner rather than later.

Differential Revision: https://re

[libc++] Make <ranges> non-experimental

When we ship LLVM 16, <ranges> won't be considered experimental anymore.
We might as well do this sooner rather than later.

Differential Revision: https://reviews.llvm.org/D132151

show more ...


Revision tags: llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0
# d2baefae 12-Mar-2022 Joe Loser <joeloser93@gmail.com>

[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI.

All supported compilers that support C++20 now support concepts. So, remove
`_LIB_LIBCPP_HAS_NO_CONCEPTS` in favor of `_LIBC

[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI.

All supported compilers that support C++20 now support concepts. So, remove
`_LIB_LIBCPP_HAS_NO_CONCEPTS` in favor of `_LIBCPP_STD_VER > 17`. Similarly in
the tests, remove `// UNSUPPORTED: libcpp-no-concepts`.

Differential Revision: https://reviews.llvm.org/D121528

show more ...


Revision tags: llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2
# 5f26d863 01-Mar-2022 Mark de Wever <koraq@xs4all.nl>

[libc++] Removes base member from tests.

Change the tests to use the base friend function instead of members.
Also changed some types to have a base friends instead of members.

Reviewed By: #libc,

[libc++] Removes base member from tests.

Change the tests to use the base friend function instead of members.
Also changed some types to have a base friends instead of members.

Reviewed By: #libc, ldionne, Quuxplusone

Differential Revision: https://reviews.llvm.org/D120742

show more ...


# 7bdf4165 09-Feb-2022 Arthur O'Dwyer <arthur.j.odwyer@gmail.com>

[libc++] Remove conditional noexcepts from view_interface.

As suggested in D117966.
These conditional noexcepts are *permitted* by the Standard (as long
as there were no mistakes in them, I guess);

[libc++] Remove conditional noexcepts from view_interface.

As suggested in D117966.
These conditional noexcepts are *permitted* by the Standard (as long
as there were no mistakes in them, I guess); but not *mandated*.
The Standard doesn't put any noexcept-specifications on these member functions.
The same logic would apply to `transform_view::iterator::operator*`
and `transform_view::iterator::operator[]`, but the Standard mandates
conditional noexcept on `iter_move(transform_view::iterator)`, and
I think it doesn't make much sense to say "moving from this iterator
is conditionally noexcept but not-moving from it is noexcept(false),"
so I'm leaving transform_view alone for now.

Differential Revision: https://reviews.llvm.org/D119374

show more ...


Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init
# c93a531c 22-Jan-2022 Casey Carter <Casey@Carter.net>

[libcxx][test] tests for strengthened `noexcept` are non-portable

Differential Revision: https://reviews.llvm.org/D117966


Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3
# 2513b790 19-Jan-2022 Joe Loser <joeloser93@gmail.com>

[libc++] Implement LWG3549: view_interface need not inherit from view_base

Implement LWG3549 by making `view_interface` not inherit from `view_base`. Types
are still views if they have a public and

[libc++] Implement LWG3549: view_interface need not inherit from view_base

Implement LWG3549 by making `view_interface` not inherit from `view_base`. Types
are still views if they have a public and unambiguous derivation from
`view_interface`, so adjust the `enable_view` machinery as such to account for
that.

Differential Revision: https://reviews.llvm.org/D117714

show more ...


Revision tags: llvmorg-13.0.1-rc2
# b8d38e8b 29-Dec-2021 Casey Carter <Casey@Carter.net>

[libcxx][test] view_interface need not derive from view_base

... after LWG-3549.

Differential Revision: https://reviews.llvm.org/D117608


Revision tags: llvmorg-13.0.1-rc1
# c3cd5f5b 27-Oct-2021 Joe Loser <joeloser93@gmail.com>

[libc++][test] Fix invalid test for views::view_interface

The type `MoveOnlyForwardRange` violates the precondition stated in
`view.interface.general`. Specifically, the type passed to
`view_interfa

[libc++][test] Fix invalid test for views::view_interface

The type `MoveOnlyForwardRange` violates the precondition stated in
`view.interface.general`. Specifically, the type passed to
`view_interface` shall model the `view` concept. In turn, this requires the
type to satisfy `movable` concept (and others), but this type
`MoveOnlyForwardRange` does not satisfy the `movable` concept.

Add a move assignment operator so that `MoveOnlyForwardRange` satisfies the
`movable` concept. While we're here, ensure the neighboring types that inherit
from `view_interface` also satisfy the `view` concept to avoid similar issues.

Fixes https://bugs.llvm.org/show_bug.cgi?id=50720

Reviewed By: Quuxplusone, Mordante, #libc

Differential Revision: https://reviews.llvm.org/D112631

show more ...


Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2
# 6900df37 09-Aug-2021 Louis Dionne <ldionne.2@gmail.com>

[libc++] Remove Lit annotations for unsupported GCC versions from the test suite

Since we officially don't support several older compilers now, we can
drop a lot of the markup in the test suite. Thi

[libc++] Remove Lit annotations for unsupported GCC versions from the test suite

Since we officially don't support several older compilers now, we can
drop a lot of the markup in the test suite. This helps keep the test
suite simple and makes sure that UNSUPPORTED annotations don't rot.

This is the first patch of a series that will remove annotations for
compilers that are now unsupported.

Differential Revision: https://reviews.llvm.org/D107787

show more ...


Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init
# 71909de3 25-Jul-2021 Mark de Wever <koraq@xs4all.nl>

[libc++] Disable incomplete library features.

Adds a new CMake option to disable the usage of incomplete headers.
These incomplete headers are not guaranteed to be ABI stable. This
option is intende

[libc++] Disable incomplete library features.

Adds a new CMake option to disable the usage of incomplete headers.
These incomplete headers are not guaranteed to be ABI stable. This
option is intended to be used by vendors so they can avoid their users
from code that's not ready for production usage.

The option is enabled by default.

Differential Revision: https://reviews.llvm.org/D106763

show more ...


Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2
# 389e749c 14-Jun-2021 Arthur O'Dwyer <arthur.j.odwyer@gmail.com>

[libc++] [test] Fix some GCC 11 errors/warnings in these tests. NFCI.

Differential Revision: https://reviews.llvm.org/D104228


Revision tags: llvmorg-12.0.1-rc1
# 5671ff20 30-Apr-2021 zoecarver <z.zoelec2@gmail.com>

[libcxx] Implement view.interface.

This will unblock work on ranges::view. Based on D101396.

Refs http://eel.is/c++draft/view.interface.

Differential Revision: https://reviews.llvm.org/D101737