History log of /llvm-project/libcxx/include/future (Results 1 – 25 of 179)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init
# 3d08fa25 20-Jan-2025 Louis Dionne <ldionne.2@gmail.com>

[libc++] Another _LIBCPP_NODEBUG fix


# 0fa05456 20-Jan-2025 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Define an internal API for std::invoke and friends (#116637)

Currently we're using quite different internal names for the
`std::invoke` family of type traits. This adds a layer around the
c

[libc++] Define an internal API for std::invoke and friends (#116637)

Currently we're using quite different internal names for the
`std::invoke` family of type traits. This adds a layer around the
current implementation to make it easier to understand when it is used
and makes it easier to define multiple implementations of it.

show more ...


Revision tags: llvmorg-19.1.7
# 019a902a 13-Jan-2025 A. Jiang <de34@live.cn>

[libc++] Deprecate extension `packaged_task::result_type` (#122600)

This extension is questionable and non-conforming. Perhaps we should
deprecate and then remove it.

Towards #112856.


# dab6463e 10-Jan-2025 LoS <kaffedesk@gmail.com>

[libc++] Remove duplicated _LIBCPP_HIDE_FROM_ABI from a few declarations (#122323)


# b9a2658a 21-Dec-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)

This patch implements the forwarding to frozen C++03 headers as
discussed in
https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-

[libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)

This patch implements the forwarding to frozen C++03 headers as
discussed in
https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc. In the
RFC, we initially proposed selecting the right headers from the Clang
driver, however consensus seemed to steer towards handling this in the
library itself. This patch implements that direction.

At a high level, the changes basically amount to making each public
header look like this:

```
// inside <vector>
#ifdef _LIBCPP_CXX03_LANG
# include <__cxx03/vector>
#else
// normal <vector> content
#endif
```

In most cases, public headers are simple umbrella headers so there isn't
much code in the #else branch. In other cases, the #else branch contains
the actual implementation of the header.

show more ...


Revision tags: llvmorg-19.1.6
# 59890c13 17-Dec-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Granularize <new> includes (#119964)


# 9474e094 13-Dec-2024 Louis Dionne <ldionne.2@gmail.com>

[libc++] Granularize the <new> header (#119270)

This disentangles the code which previously had a mix of many #ifdefs, a
non-versioned namespace and a versioned namespace. It also makes it
clearer

[libc++] Granularize the <new> header (#119270)

This disentangles the code which previously had a mix of many #ifdefs, a
non-versioned namespace and a versioned namespace. It also makes it
clearer which parts of <new> are implemented on Windows by including <new.h>.

show more ...


# c166a9c7 10-Dec-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Add #if 0 block to all the top-level headers (#119234)

Including The frozen C++03 headers results in a lot of formatting
changes in the main headers, so this splits these changes into a
sep

[libc++] Add #if 0 block to all the top-level headers (#119234)

Including The frozen C++03 headers results in a lot of formatting
changes in the main headers, so this splits these changes into a
separate commit instead.

This is part of
https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.

show more ...


Revision tags: llvmorg-19.1.5
# 4a8329cd 23-Nov-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Granularize <mutex> includes (#117068)


Revision tags: llvmorg-19.1.4
# 85ef9666 18-Nov-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Avoid including all of <thread> in <future> (#116541)


# 67b81e21 13-Nov-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Split __shared_count out of <__memory/shared_ptr.h> (#115943)

`__shared_count` is used in a few places where `shared_ptr` isn't. This
avoids a bunch of transitive includes needed for the i

[libc++] Split __shared_count out of <__memory/shared_ptr.h> (#115943)

`__shared_count` is used in a few places where `shared_ptr` isn't. This
avoids a bunch of transitive includes needed for the implementation of
`shared_ptr` in these places.

show more ...


# c6f3b7bc 06-Nov-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Refactor the configuration macros to being always defined (#112094)

This is a follow-up to #89178. This updates the `<__config_site>`
macros.


Revision tags: llvmorg-19.1.3
# 8ce0fb86 16-Oct-2024 A. Jiang <de34@live.cn>

[libc++][NFC] Reduce use of `__add_lvalue_reference_t` (#112497)

Currently, the occurrences of `__add_lvalue_reference_t` in
`__split_buffer` and `__assoc_state` are probably meaningless.

* In `

[libc++][NFC] Reduce use of `__add_lvalue_reference_t` (#112497)

Currently, the occurrences of `__add_lvalue_reference_t` in
`__split_buffer` and `__assoc_state` are probably meaningless.

* In `__split_buffer`, the `__alloc_ref` and `__alloc_const_ref` member
typedefs are no longer used.
* In `__assoc_state`, we should simply use `_Rp&`, which must be
well-formed since it's already required that `sizeof(_Rp)` is
well-formed.

This PR removes the meaningless usages. The remaining occurrences in
`shared_ptr`, `unique_ptr`, and several type traits are meaningful.

show more ...


Revision tags: llvmorg-19.1.2
# ba87515f 12-Oct-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++][RFC] Always define internal feature test macros (#89178)

Currently, the library-internal feature test macros are only defined if
the feature is not available, and always have the prefix
`

[libc++][RFC] Always define internal feature test macros (#89178)

Currently, the library-internal feature test macros are only defined if
the feature is not available, and always have the prefix
`_LIBCPP_HAS_NO_`. This patch changes that, so that they are always
defined and have the prefix `_LIBCPP_HAS_` instead. This changes the
canonical use of these macros to `#if _LIBCPP_HAS_FEATURE`, which means
that using an undefined macro (e.g. due to a missing include) is
diagnosed now. While this is rather unlikely currently, a similar change
in `<__configuration/availability.h>` caught a few bugs. This also
improves readability, since it removes the double-negation of `#ifndef
_LIBCPP_HAS_NO_FEATURE`.

The current patch only touches the macros defined in `<__config>`. If
people are happy with this approach, I'll make a follow-up PR to also
change the macros defined in `<__config_site>`.

show more ...


Revision tags: llvmorg-19.1.1, llvmorg-19.1.0
# 09e3a360 16-Sep-2024 Louis Dionne <ldionne.2@gmail.com>

[libc++][modules] Fix missing and incorrect includes (#108850)

This patch adds a large number of missing includes in the libc++ headers
and the test suite. Those were found as part of the effort to

[libc++][modules] Fix missing and incorrect includes (#108850)

This patch adds a large number of missing includes in the libc++ headers
and the test suite. Those were found as part of the effort to move
towards a mostly monolithic top-level std module.

show more ...


# 27c83382 16-Sep-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Replace `__compressed_pair` with `[[no_unique_address]]` (#76756)

This significantly simplifies the code, improves compile times and
improves the object layout of types using `__compressed_

[libc++] Replace `__compressed_pair` with `[[no_unique_address]]` (#76756)

This significantly simplifies the code, improves compile times and
improves the object layout of types using `__compressed_pair` in the
unstable ABI. The only downside is that this is extremely ABI sensitive
and pedantically breaks the ABI for empty final types, since the address
of the subobject may change. The ABI of the whole object should not be
affected.

Fixes #91266
Fixes #93069

show more ...


# 17e0686a 12-Sep-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++][NFC] Use [[__nodiscard__]] unconditionally (#80454)

`__has_cpp_attribute(__nodiscard__)` is always true now, so we might as
well replace `_LIBCPP_NODISCARD`. It's one less macro that can r

[libc++][NFC] Use [[__nodiscard__]] unconditionally (#80454)

`__has_cpp_attribute(__nodiscard__)` is always true now, so we might as
well replace `_LIBCPP_NODISCARD`. It's one less macro that can result in
bad diagnostics.

show more ...


# 3a0ef2a2 11-Sep-2024 A. Jiang <de34@live.cn>

[libc++] Reland LWG2921 and LWG2976 (#107960)

They were originally implemented in d42db7e083ee0 but reverted later in
a2f3c63282330be0.

This PR implement both LWG issues again, guarding the remo

[libc++] Reland LWG2921 and LWG2976 (#107960)

They were originally implemented in d42db7e083ee0 but reverted later in
a2f3c63282330be0.

This PR implement both LWG issues again, guarding the removed functions
with `_LIBCPP_STD_VER <= 14`, because they should be treated as patches
for P0302R1 which was adopted for C++17.

Fixes #103598
Fixes #103755

show more ...


# 748023dc 11-Sep-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++][NFC] Replace _LIBCPP_NORETURN and TEST_NORETURN with [[noreturn]] (#80455)

`[[__noreturn__]]` is now always available, so we can simply use the
attribute directly instead of through a macr

[libc++][NFC] Replace _LIBCPP_NORETURN and TEST_NORETURN with [[noreturn]] (#80455)

`[[__noreturn__]]` is now always available, so we can simply use the
attribute directly instead of through a macro.

show more ...


# eb0f1218 06-Sep-2024 Louis Dionne <ldionne.2@gmail.com>

[libc++][modules] Tweak a few includes (#107467)

Add a few missing includes, remove two unnecessary ones and use
__cstddef/size_t.h instead of <cstddef> in a few places. This is a
collection of mi

[libc++][modules] Tweak a few includes (#107467)

Add a few missing includes, remove two unnecessary ones and use
__cstddef/size_t.h instead of <cstddef> in a few places. This is a
collection of miscellaneous findings that collectively unblock other
modularization patches.

show more ...


Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init
# ef51e617 15-Jul-2024 Louis Dionne <ldionne.2@gmail.com>

[libc++] Handle _LIBCPP_HAS_NO_{THREADS,LOCALIZATION} consistently with other carve-outs (#98319)

Previously, we would issue an #error when using a header that requires
threading support or localiz

[libc++] Handle _LIBCPP_HAS_NO_{THREADS,LOCALIZATION} consistently with other carve-outs (#98319)

Previously, we would issue an #error when using a header that requires
threading support or localization support in a configuration where that
is disabled. This is unlike what we do for all the other carve outs like
no-filesystem, no-wide-characters or no-random-device. Instead of
issuing an #error, we normally just remove the problematic parts of the
header.

This patch makes the handling of no-localization and no-threads
consistent with the other carve-outs. I dislike the fact that users
won't get an explicit error message when trying to use e.g. ios in a
build that doesn't support localization, but I think it is better to
handle things consistently. Note that besides the consistency argument,
the #error approach doesn't really work anyways since it would break
down if we moved towards assuming the C locale only in the
no-localization mode.

show more ...


# 1f98ac09 23-Jun-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++][NFC] Replace _NOEXCEPT and _LIBCPP_CONSTEXPR macros with the keywords in C++11 code (#96387)


# bbe4a806 18-Jun-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Enable modernize-use-equals-delete (#93293)

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


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5
# 83bc7b57 22-Apr-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Remove _LIBCPP_DISABLE_NODISCARD_EXTENSIONS and refactor the tests (#87094)

This also adds a few tests that were missing.


Revision tags: llvmorg-18.1.4, llvmorg-18.1.3
# beeb15b7 02-Apr-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++][NFC] Remove a few unused <__availablity> includes (#86126)


12345678