| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc++] Enable Clang modules in most of the CI runs (#160251) Enabling modules makes the CI quite a bit faster with basically no downsides. The non-modules build is still tested through the generic-cxxab configurations, but most of the other CI runs on platforms with modules support now use modules. | 9 个月前 | |
[libc++] Optimize num_get integral functions (#121795) --------------------------------------------------- Benchmark old new --------------------------------------------------- BM_num_get<bool> 86.5 ns 32.3 ns BM_num_get<long> 82.1 ns 30.3 ns BM_num_get<long long> 85.2 ns 33.4 ns BM_num_get<unsigned short> 85.3 ns 31.2 ns BM_num_get<unsigned int> 84.2 ns 31.1 ns BM_num_get<unsigned long> 83.6 ns 31.9 ns BM_num_get<unsigned long long> 87.7 ns 31.5 ns BM_num_get<float> 116 ns 114 ns BM_num_get<double> 114 ns 114 ns BM_num_get<long double> 113 ns 114 ns BM_num_get<void*> 151 ns 144 ns This patch applies multiple optimizations: - Stages two and three of do_get are merged and a custom integer parser has been implemented This avoids allocations, removes the need for strto{,u}ll and avoids __stage2_int_loop (avoiding extra writes to memory) - std::find has been replaced with __atoms_offset, which uses vector instructions to look for a character Fixes #158100 Fixes #158102 | 8 个月前 | |
[libc++][string] Applied [[nodiscard]] to non-member functions (#169330) [[nodiscard]] should be applied to functions where discarding the return value is most likely a correctness issue. - https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant | 8 个月前 | |
[libc++] Remove __time_get_storage::{__analyze,init} from the ABI (#158469) These functions have never been used outside the dylib, so there is no point in exporting them. | 10 个月前 | |
[libc++] Implement P2988R12: std::optional<T&> (#155202) Resolves #148131 - Unlock std::optional<T&> implementation - Allow instantiations of optional<T(&)(...)> and optional<T(&)[]> but disables value_or() and optional::iterator + all iterator related functions - Update documentation - Update tests | 8 个月前 | |
| 8 个月前 | ||
[libc++][string] Applied [[nodiscard]] to non-member functions (#169330) [[nodiscard]] should be applied to functions where discarding the return value is most likely a correctness issue. - https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant | 8 个月前 | |
| 8 个月前 | ||
[libc++][hardening] Introduce assertion semantics. (#149459) Assertion semantics closely mimic C++26 Contracts evaluation semantics. This brings our implementation closer in line with C++26 Library Hardening (one particular benefit is that using the observe semantic makes adopting hardening easier for projects). | 11 个月前 | |
[libc++] Diagnose passing null pointers to a bunch of APIs (#148585) | 1 年前 | |
[libc++] Run clang-tidy only once per header (#121436) There doesn't seem to be much of a reason to run clang-tidy twice per headers, and running it only once makes the test a few seconds faster. | 1 年前 | |
[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 年前 | |
[libc++][hardening] Allow setting the assertion semantic via CMake. (#167636) Add a new CMake variable, LIBCXX_ASSERTION_SEMANTIC, that largely mirrors LIBCXX_HARDENING_MODE, except that it also supports a special value hardening_dependent that indicates the semantic will be selected based on the hardening mode in effect: - fast and extensive map to quick_enforce; - debug maps to enforce. | 8 个月前 | |
[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 年前 | |
[libcxx] Add Maintainers.md file | 1 年前 | |
[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 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 6 年前 | ||
| 8 个月前 | ||
| 3 年前 | ||
| 7 年前 | ||
| 1 年前 | ||
| 4 年前 |