[libc++] Revert "Protect users from relying on detail headers" & related changesThis 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 changesThis commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,which were related to the original commit). As landed, 5aaefa51 hadunintended consequences on some downstream bots and didn't have propercoverage upstream due to a few subtle things. Implementing this issomething we should do in libc++, however we'll first need to addressa few issues listed in https://reviews.llvm.org/D106124#3349710.Differential Revision: https://reviews.llvm.org/D120683
show more ...
[libcxx][modules] protects users from relying on detail headerslibc++ has started splicing standard library headers into much morefine-grained content for maintainability. It's very likely that ou
[libcxx][modules] protects users from relying on detail headerslibc++ has started splicing standard library headers into much morefine-grained content for maintainability. It's very likely that outdatedand naive tooling (some of which is outside of LLVM's scope) willsuggest users include things such as <__ranges/access.h> instead of<ranges>, and Hyrum's law suggests that users will eventually begin torely on this without the help of tooling. As such, this commitintends to protect users from themselves, by making it a hard error foranyone outside of the standard library to include libc++ detail headers.Differential Revision: https://reviews.llvm.org/D106124
[libc++] Granularize chrono includesReviewed By: Quuxplusone, #libcSpies: libcxx-commitsDifferential Revision: https://reviews.llvm.org/D120141
[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
[libc++] Split a few utilities out of __threading_supportThis change is the basis for a further refactoring where I'm going tosplit up the various implementations we have in __threading_support to
[libc++] Split a few utilities out of __threading_supportThis change is the basis for a further refactoring where I'm going tosplit up the various implementations we have in __threading_support tomake that code easier to understand.Note that I had to make __convert_to_timespec a template to breakcircular dependencies. Concretely, we never seem to use it with anythingother than ::timespec, but I am wary of hardcoding that assumption aspart of this change, since I suspect there's a reason for going throughthese hoops in the first place.Differential Revision: https://reviews.llvm.org/D116944
[libc++] Modularize <chrono>I didn't split the calendar bits more than this because there was littlebenefit to doing it, and I know our calendar support is incomplete.Whoever picks up the missing
[libc++] Modularize <chrono>I didn't split the calendar bits more than this because there was littlebenefit to doing it, and I know our calendar support is incomplete.Whoever picks up the missing calendar bits can organize these headersat their leisure.Differential Revision: https://reviews.llvm.org/D116965
[libc++] Enable <atomic> when threads are disabledstd::atomic is, for the most part, just a thin veneer on top of compilerbuiltins. Hence, it should be available even when threads are not availabl
[libc++] Enable <atomic> when threads are disabledstd::atomic is, for the most part, just a thin veneer on top of compilerbuiltins. Hence, it should be available even when threads are not availableon 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://77873569Differential Revision: https://reviews.llvm.org/D114109