TTobias HietaBump version to 19.1.7
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc++] Speed up set_intersection() by fast-forwarding over ranges of non-matching elements with one-sided binary search. (#75230) One-sided binary search, aka meta binary search, has been in the public domain for decades, and has the general advantage of being constant time in the best case, with the downside of executing at most 2*log(N) comparisons vs classic binary search's exact log(N). There are two scenarios in which it really shines: the first one is when operating over non-random-access iterators, because the classic algorithm requires knowing the container's size upfront, which adds N iterator increments to the complexity. The second one is when traversing the container in order, trying to fast-forward to the next value: in that case the classic algorithm requires at least O(N*log(N)) comparisons and, for non-random-access iterators, O(N^2) iterator increments, whereas the one-sided version will yield O(N) operations on both counts, with a best-case of O(log(N)) comparisons which is very common in practice. | 2 年前 | |
[libc++] Fix broken configuration system-libcxxabi on Apple (#110920) On Apple platforms, using system-libcxxabi as an ABI library wouldn't work because we'd try to re-export symbols from libc++abi that the system libc++abi.dylib might not have. Instead, only re-export those symbols when we're using the in-tree libc++abi. This does mean that libc++.dylib won't re-export any libc++abi symbols when building against the system libc++abi, which could be fixed in various ways. However, the best solution really depends on the intended use case, so this patch doesn't try to solve that problem. As a drive-by, also improve the diagnostic message when the user forgets to set the LIBCXX_CXX_ABI_INCLUDE_PATHS variable, which would previously lead to a confusing error. Closes #104672 (cherry picked from commit 21da4e7f51c7adfd0b1c5defc8bd0d16ea1ce759) | 1 年前 | |
[libc++] Adjust the version of __cpp_lib_ranges in C++20 mode This is a (very partial) cherry-pick of #101715 to fix this oversight in the LLVM 19 release. | 1 年前 | |
Bump version to 19.1.7 | 1 年前 | |
[libc++] Avoid re-exporting a few specific symbols from libc++abi (#109054) In 6a884a9aef39, I synchronized the export list of libc++abi to the export list of libc++. From the linker's perspective, this caused these symbols to be taken from libc++.dylib instead of libc++abi.dylib. However, that can be problematic when back-deploying. Indeed, this means that the linker will encode an undefined reference to be fullfilled by libc++.dylib, but when backdeploying against an older system, that symbol might only be available in libc++abi.dylib. Most of the symbols that started being re-exported after 6a884a9aef39 turn out to be implementation details of libc++abi, so nobody really depends on them and this back-deployment issue is inconsequential. However, we ran into issues with a few of these symbols while testing LLVM 19, which led to this patch. This slipped between the cracks and that is why the patch is coming so long after the original patch landed. In the future, a follow-up cleanup would be to stop exporting most of the _cxxabiv1_foo_type_infoE symbols from both libc++abi and libc++ since they are implementation details that nobody should be relying on. rdar://131984512 (cherry picked from commit 677e8cd6ff51e178bcb4669104763f71a2de106c) | 1 年前 | |
[libc++][math] Mathematical Special Functions: Hermite Polynomial (#89982) Implementing the Hermite polynomials which are part of C++17's mathematical special functions. The goal is to get early feedback which will make implementing the other functions easier. Integration of functions in chunks (e.g. std::hermite at first, then std::laguerre, etc.) might make sense as well (also see note on boost.math below). I started out from this abandoned merge request: https://reviews.llvm.org/D58876 . The C++23 standard defines them in-terms of /* floating-point type */ arguments. I have not looked into that. Note, there is still an ongoing discussion on discourse whether importing boost.math is an option. | 1 年前 | |
[libc++] Fix broken configuration system-libcxxabi on Apple (#110920) On Apple platforms, using system-libcxxabi as an ABI library wouldn't work because we'd try to re-export symbols from libc++abi that the system libc++abi.dylib might not have. Instead, only re-export those symbols when we're using the in-tree libc++abi. This does mean that libc++.dylib won't re-export any libc++abi symbols when building against the system libc++abi, which could be fixed in various ways. However, the best solution really depends on the intended use case, so this patch doesn't try to solve that problem. As a drive-by, also improve the diagnostic message when the user forgets to set the LIBCXX_CXX_ABI_INCLUDE_PATHS variable, which would previously lead to a confusing error. Closes #104672 (cherry picked from commit 21da4e7f51c7adfd0b1c5defc8bd0d16ea1ce759) | 1 年前 | |
[libc++] Adjust the version of __cpp_lib_ranges in C++20 mode This is a (very partial) cherry-pick of #101715 to fix this oversight in the LLVM 19 release. | 1 年前 | |
[libc++] Adjust the version of __cpp_lib_ranges in C++20 mode This is a (very partial) cherry-pick of #101715 to fix this oversight in the LLVM 19 release. | 1 年前 | |
[libc++] Fix AppleClang version number when checking for __builtin_verbose_trap support (#110161) We should have been checking against 1700, not 17000, which was a typo. (cherry picked from commit 1eba87904b0cbaaee82cfdb835528b85d99320ef) | 1 年前 | |
[libc++] Remove _LIBCPP_DISABLE_NODISCARD_EXTENSIONS and refactor the tests (#87094) This also adds a few tests that were missing. | 2 年前 | |
[libc++] Enable modernize-use-equals-delete (#93293) Differential Revision: https://reviews.llvm.org/D121213 | 2 年前 | |
[libcxx] Fix .gitignore to not exclude test directories We have several test directories whose names end in .spec. Ensure we don't accidentally ignore them by removing a section of the .gitignore that's irrelevant for libc++. Differential Revision: https://reviews.llvm.org/D69195 | 6 年前 | |
| 1 年前 | ||
[libcxx] Add mdspan/extents This patch adds std::extents. extents is one of the core classes used by std::mdspan. It describes a multi-dimensional index space with a mix of compile time and runtime sizes. Furthermore, it is templated on the index type used to describe the multi-dimensional index space. The class is designed to be highly optimizable in performance critical code sections, and is fully useable in constant expressions contexts. Testing of this class tends to be somewhat combinatorical, due to the large number of possible corner cases involved in situations where we have both runtime and compile time extents. To add to this, the class is designed to be interoperable (in particular constructible) from arguments which only need to be convertible to the index_type, but are otherwise arbitrary user types. For a larger discussion on the design of this class refer to: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0009r18.html Co-authored-by: Damien L-G <dalg24@gmail.com> Reviewed By: ldionne, #libc Spies: libcxx-commits, H-G-Hristov, tschuett, philnik, arichardson, Mordante, crtrott Differential Revision: https://reviews.llvm.org/D148067 | 3 年前 | |
Fix typos throughout the license files that somehow I and my reviewers all missed! Thanks to Alex Bradbury for pointing this out, and the fact that I never added the intended legacy anchor to the developer policy. Add that anchor too. With hope, this will cause the links to all resolve successfully. llvm-svn: 351731 | 7 年前 | |
[libc++] Disallow volatile types in std::allocator LWG 2447 is marked as Complete, but there is no static_assert to reject volatile types in std::allocator. See the discussion at https://reviews.llvm.org/D108856. Add static_assert in std::allocator to disallow volatile types. Since this is an implementation choice, mark the binding test as libc++ only. Remove tests that use containers backed by std::allocator that test the container when used with a volatile type. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D109056 | 4 年前 | |
Attempt to upgrade compiler used by appveyor builds llvm-svn: 357632 | 7 年前 | |
Remove lit's --summary flag from buildbots. The summary flag causes a progress bar to appear and be rewritten using a curses like interface. This works great for interactive sessions, but produces line after line of garbage in the logs. This should cause the logs to be much smaller and more readable. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D159120 | 2 年前 |