|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, 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, 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, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
b48c5010 |
| 08-Jul-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Make parameter names consistent and enforce the naming style using readability-identifier-naming
Ensure that parameter names have the style `__lower_case`
Reviewed By: ldionne, #libc
Spie
[libc++] Make parameter names consistent and enforce the naming style using readability-identifier-naming
Ensure that parameter names have the style `__lower_case`
Reviewed By: ldionne, #libc
Spies: aheejin, sstefan1, libcxx-commits, miyuki
Differential Revision: https://reviews.llvm.org/D129051
show more ...
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
cc82a1b0 |
| 23-Mar-2022 |
Louis Dionne <[email protected]> |
[libc++][NFC] Fix include guards and add a missing license header
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
368faaca |
| 28-Feb-2022 |
Louis Dionne <[email protected]> |
[libc++] Revert "Protect users from relying on detail headers" & related changes
This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit).
[libc++] Revert "Protect users from relying on detail headers" & related changes
This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710.
Differential Revision: https://reviews.llvm.org/D120683
show more ...
|
| #
5aaefa51 |
| 25-Feb-2022 |
Christopher Di Bella <[email protected]> |
[libcxx][modules] protects users from relying on detail headers
libc++ has started splicing standard library headers into much more fine-grained content for maintainability. It's very likely that ou
[libcxx][modules] protects users from relying on detail headers
libc++ has started splicing standard library headers into much more fine-grained content for maintainability. It's very likely that outdated and naive tooling (some of which is outside of LLVM's scope) will suggest users include things such as <__ranges/access.h> instead of <ranges>, and Hyrum's law suggests that users will eventually begin to rely on this without the help of tooling. As such, this commit intends to protect users from themselves, by making it a hard error for anyone outside of the standard library to include libc++ detail headers.
Differential Revision: https://reviews.llvm.org/D106124
show more ...
|
| #
489637e6 |
| 23-Feb-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Granularize chrono includes
Reviewed By: Quuxplusone, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D120141
|
| #
c74b1924 |
| 10-Feb-2022 |
Louis Dionne <[email protected]> |
[libc++] Revert the addition of _LIBCPP_HIDE_FROM_ABI and inline in __threading_support
This reverts commit 2722ac65. As explained in D115906, this was actually unnecessary and it broke the external
[libc++] Revert the addition of _LIBCPP_HIDE_FROM_ABI and inline in __threading_support
This reverts commit 2722ac65. As explained in D115906, this was actually unnecessary and it broke the external threading configuration.
Differential Revision: https://reviews.llvm.org/D119484
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
fa6b9e40 |
| 02-Feb-2022 |
Arthur O'Dwyer <[email protected]> |
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.
Now we'll notice if a header forgets to include this magic phrase.
Differential Revision: https://reviews.llvm.org/D1188
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.
Now we'll notice if a header forgets to include this magic phrase.
Differential Revision: https://reviews.llvm.org/D118800
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
df51be85 |
| 10-Jan-2022 |
Louis Dionne <[email protected]> |
[libc++] Split a few utilities out of __threading_support
This change is the basis for a further refactoring where I'm going to split up the various implementations we have in __threading_support to
[libc++] Split a few utilities out of __threading_support
This change is the basis for a further refactoring where I'm going to split up the various implementations we have in __threading_support to make that code easier to understand.
Note that I had to make __convert_to_timespec a template to break circular dependencies. Concretely, we never seem to use it with anything other than ::timespec, but I am wary of hardcoding that assumption as part of this change, since I suspect there's a reason for going through these hoops in the first place.
Differential Revision: https://reviews.llvm.org/D116944
show more ...
|
| #
2722ac65 |
| 16-Dec-2021 |
Louis Dionne <[email protected]> |
[libc++] Add a bunch of missing inline and _LIBCPP_HIDE_FROM_ABI in __threading_support
The inline keyword is required on those functions because they are defined in the headers, so we need them to
[libc++] Add a bunch of missing inline and _LIBCPP_HIDE_FROM_ABI in __threading_support
The inline keyword is required on those functions because they are defined in the headers, so we need them to be inline to avoid ODR violations. While we're at it, slap _LIBCPP_HIDE_FROM_ABI on them because they are implementation details and we don't want them to be part of our ABI under any circumstances.
Differential Revision: https://reviews.llvm.org/D115906
show more ...
|
| #
d2b0df35 |
| 02-Dec-2021 |
Nikolas Klauser <[email protected]> |
[libc++][NFC] Update namespace comments in include/
update the namspace comments in include/
Reviewed By: ldionne, #libc
Spies: smeenai, libcxx-commits
Differential Revision: https://reviews.llvm
[libc++][NFC] Update namespace comments in include/
update the namspace comments in include/
Reviewed By: ldionne, #libc
Spies: smeenai, libcxx-commits
Differential Revision: https://reviews.llvm.org/D114947
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
92832e48 |
| 17-Nov-2021 |
Louis Dionne <[email protected]> |
[libc++] Enable <atomic> when threads are disabled
std::atomic is, for the most part, just a thin veneer on top of compiler builtins. Hence, it should be available even when threads are not availabl
[libc++] Enable <atomic> when threads are disabled
std::atomic is, for the most part, just a thin veneer on top of compiler builtins. Hence, it should be available even when threads are not available on the system, and in fact there has been requests for such support.
This patch: - Moves __libcpp_thread_poll_with_backoff to its own header so it can be used in <atomic> when threads are disabled. - Adds a dummy backoff policy for atomic polling that doesn't know about threads. - Adjusts the <atomic> feature-test macros so they are provided even when threads are disabled. - Runs the <atomic> tests when threads are disabled.
rdar://77873569
Differential Revision: https://reviews.llvm.org/D114109
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
d0eaf753 |
| 20-Sep-2021 |
Arthur O'Dwyer <[email protected]> |
[libc++] Remove non-atomic "platform" semaphore implementations.
These can't be made constexpr-constructible (constinit'able), so they aren't C++20-conforming. Also, the platform versions are going
[libc++] Remove non-atomic "platform" semaphore implementations.
These can't be made constexpr-constructible (constinit'able), so they aren't C++20-conforming. Also, the platform versions are going to be bigger than the atomic/futex version, so we'd have the awkward situation that `semaphore<42>` could be bigger than `semaphore<43>`, and that's just silly.
Differential Revision: https://reviews.llvm.org/D110110
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
| #
db757ba7 |
| 03-Jun-2021 |
Louis Dionne <[email protected]> |
[libc++] Define _LIBCPP_NO_NATIVE_SEMAPHORES even outside of pthread
<semaphore> needs to know about whether native semaphores are supported or not, even if we're not using the pthread API.
|
|
Revision tags: llvmorg-12.0.1-rc1 |
|
| #
bfbd73f8 |
| 19-May-2021 |
Arthur O'Dwyer <[email protected]> |
[libc++] Alphabetize and include-what-you-use. NFCI.
Differential Revision: https://reviews.llvm.org/D102781
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3 |
|
| #
1773eec6 |
| 25-Feb-2021 |
Martin Storsjö <[email protected]> |
[libcxx] Implement semaphores for windows
Also add WIN32_LEAN_AND_MEAN before including windows.h, for consistency with other sources.
Differential Revision: https://reviews.llvm.org/D97539
|
|
Revision tags: llvmorg-12.0.0-rc2 |
|
| #
48fcce1a |
| 12-Feb-2021 |
Zbigniew Sarbinowski <[email protected]> |
[SystemZ][ZOS] Fix __libcpp_thrad_isnull()
Previous pthread revision https://reviews.llvm.org/D91875 missed a small change for `__libcpp_thrad_isnull()` required for z/OS.
Reviewed By: zibi
Differ
[SystemZ][ZOS] Fix __libcpp_thrad_isnull()
Previous pthread revision https://reviews.llvm.org/D91875 missed a small change for `__libcpp_thrad_isnull()` required for z/OS.
Reviewed By: zibi
Differential Revision: https://reviews.llvm.org/D96302
show more ...
|
| #
ebfadd82 |
| 10-Feb-2021 |
Colin Finck <[email protected]> |
[libc++] Fix copy-paste mistake in __threading_support
Differential Revision: https://reviews.llvm.org/D96115
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3 |
|
| #
b5175681 |
| 02-Feb-2021 |
Louis Dionne <[email protected]> |
[libc++] Rename include/support to include/__support
We do ship those headers, so the directory name should not be something that can potentially conflict with user-defined directories.
Differentia
[libc++] Rename include/support to include/__support
We do ship those headers, so the directory name should not be something that can potentially conflict with user-defined directories.
Differential Revision: https://reviews.llvm.org/D95956
show more ...
|
|
Revision tags: llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
| #
e6c89a49 |
| 05-Dec-2020 |
Zbigniew Sarbinowski <[email protected]> |
[SystemZ][ZOS] Fix the usage of pthread_t within libc++
This is the the minimal change introduced in [[ https://reviews.llvm.org/D88599 | D88599 ]] to unblock the controversial change and discussio
[SystemZ][ZOS] Fix the usage of pthread_t within libc++
This is the the minimal change introduced in [[ https://reviews.llvm.org/D88599 | D88599 ]] to unblock the controversial change and discussion of proper separation between thread from thread id which will continue in D88599.
This patch will address the differences of definition of pthread_t on z/OS vs. Linux and other OS. Main trick to make the code work on z/OS relies on redefining libcpp_thread_id type and _LIBCPP_NULL_THREAD macro. This is necessary to separate initialization of libcxx_thread_id from the one of __libcxx_thread_t;
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D91875
show more ...
|
|
Revision tags: llvmorg-11.0.1-rc1 |
|
| #
527a7fdf |
| 24-Nov-2020 |
Bruce Mitchener <[email protected]> |
[libc++] Replace several uses of 0 by nullptr
Differential Revision: https://reviews.llvm.org/D43159
|
| #
d2acf229 |
| 15-Nov-2020 |
Marek Kurdej <[email protected]> |
[gcc] Fix -Wempty-body warning. NFC.
|
| #
6a8099e0 |
| 12-Nov-2020 |
Zbigniew Sarbinowski <[email protected]> |
[libc++] Port the time functions to z/OS
This patch adds a shim for missing time functions on z/OS, and adds a layer of indirection to account for differences in the timespec struct on different sys
[libc++] Port the time functions to z/OS
This patch adds a shim for missing time functions on z/OS, and adds a layer of indirection to account for differences in the timespec struct on different systems.
This was originally committed as 173b51169b83 and reverted in 777ca48c9f08 because the original commit also checked-in unrelated changes.
Differential Revision: https://reviews.llvm.org/D87940
show more ...
|
| #
777ca48c |
| 12-Nov-2020 |
Louis Dionne <[email protected]> |
Revert "[SystemZ][ZOS] Porting the time functions within libc++ to z/OS"
This reverts commit 173b51169b838. That commit was applied incorrectly, and undid previous changes. That was clearly not inte
Revert "[SystemZ][ZOS] Porting the time functions within libc++ to z/OS"
This reverts commit 173b51169b838. That commit was applied incorrectly, and undid previous changes. That was clearly not intended.
show more ...
|
| #
173b5116 |
| 12-Nov-2020 |
Zbigniew Sarbinowski <[email protected]> |
[SystemZ][ZOS] Porting the time functions within libc++ to z/OS
This patch is one part of many steps required to build libc++ and libc++abi libraries on z/OS. This particular deals with time relate
[SystemZ][ZOS] Porting the time functions within libc++ to z/OS
This patch is one part of many steps required to build libc++ and libc++abi libraries on z/OS. This particular deals with time related functions and consists of the following 3 parts.
1) Initialization of :timeval within libc++ library need to be adjusted to work on z/OS. The following is z/OS definition from time.h which includes additional aggregate member. typedef signed int suseconds_t; struct timeval { time_t tv_sec; char tv_usec_pad[4]; suseconds_t tv_usec; };
In contracts the following is definition from time.h on Linux.
typedef long int __suseconds_t; struct timeval { __time_t tv_sec; __suseconds_t tv_usec; };
2) In addition, retrieving ::timespec within libc++ library needs to be adjusted to compensate the difference of some of the members of ::stat depending of the target host. Here are the 2 members in conflict on z/OS extracted from stat.h. struct stat { ... time_t st_atime; time_t st_mtime; ... }; In contract here is Linux equivalent from stat.h. struct stat { ... struct timespec st_atim; struct timespec st_mtim; ... };
3) On Linux both members are of type timespec whereas on z/OS an object of type timespec need to be constructed first before retrieving it within libc++ library.
The libc++ header file __threading_support calls nanosleep, which is not available on z/OS. The equivalent functionality will be implemented by using both sleep() and usleep().
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D87940
show more ...
|
| #
2eadbc86 |
| 04-Nov-2020 |
Louis Dionne <[email protected]> |
[libc++] Rework the whole availability markup implementation
Currently, vendor-specific availability markup is enabled by default. This means that even when building against trunk libc++, the header
[libc++] Rework the whole availability markup implementation
Currently, vendor-specific availability markup is enabled by default. This means that even when building against trunk libc++, the headers will by default prevent you from using some features that were not released in the dylib on your target platform. This is a source of frustration since people building libc++ from sources are usually not trying to use some vendor's released dylib.
For that reason, I've been thinking for a long time that availability annotations should be off by default, which is the primary change that this commit enables.
In addition, it reworks the implementation to make it easier for new vendors to add availability annotations for their platform, and it refreshes the documentation to reflect the current state of the codebase.
Finally, a CMake configuration option is added to control whether availability annotations should be turned on for the flavor of libc++ being created. The intent is for vendors like Apple to turn it on, and for the upstream libc++ to leave it off (the default).
Differential Revision: https://reviews.llvm.org/D90843
show more ...
|