summaryrefslogtreecommitdiffstats
path: root/libcxx/www/cxx1z_status.html
Commit message (Collapse)AuthorAgeFilesLines
* [libc++] Take 2: Implement LWG 2510Louis Dionne2019-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Summary: LWG2510 makes tag types like allocator_arg_t explicitly default constructible instead of implicitly default constructible. It also makes the constructors for std::pair and std::tuple conditionally explicit based on the explicit-ness of the default constructibility for the pair/tuple's elements. This was previously committed as r372777 and reverted in r372832 due to the commit breaking LLVM's build in C++14 mode. This issue has now been addressed. Reviewers: mclow.lists Subscribers: christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D65161 llvm-svn: 372983
* Revert r372777: [libc++] Implement LWG 2510 and its follow-upsIlya Biryukov2019-09-251-1/+1
| | | | | | | | | | | | This also reverts: - r372778: [libc++] Implement LWG 3158 - r372782: [libc++] Try fixing tests that fail on GCC 5 and older - r372787: Purge mentions of GCC 4 from the test suite Reason: the change breaks compilation of LLVM with libc++, for details see http://lists.llvm.org/pipermail/libcxx-dev/2019-September/000599.html llvm-svn: 372832
* [libc++] Implement LWG 2510Louis Dionne2019-09-241-1/+1
| | | | | | | | | | | | | | | | | | | Summary: LWG2510 makes tag types like allocator_arg_t explicitly default constructible instead of implicitly default constructible. It also makes the constructors for std::pair and std::tuple conditionally explicit based on the explicit-ness of the default constructibility for the pair/tuple's elements. Reviewers: mclow.lists, EricWF Subscribers: christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D65161 llvm-svn: 372777
* [libc++] Mark issue 2587 resolved by issue 2567Zoe Carver2019-09-121-1/+1
| | | | | | Updates status. NFC. llvm-svn: 371763
* [libc++] std::abs should not return doubleZoe Carver2019-08-201-1/+1
| | | | | | | | Implement LWG Issue 2735 by adding std::abs tests for several types and checking their return value. NFC. llvm-svn: 369394
* Add tests for regex_match ambiguity (aka LWG2273). NFC. Reviewed as ↵Marshall Clow2019-07-031-2/+2
| | | | | | https://reviews.llvm.org/D63051 llvm-svn: 365080
* Implement LWG2221: 'Formatted output for nullptr_t' Reviewed as: ↵Marshall Clow2019-07-011-1/+1
| | | | | | https://reviews.llvm.org/D63053 llvm-svn: 364802
* Update issue statuses. Reviewed as https://reviews.llvm.org/D62932Marshall Clow2019-06-051-3/+3
| | | | llvm-svn: 362659
* Fix implementation of ::abs and std::abs LWG 2192.Eric Fiselier2019-04-231-1/+1
| | | | | | | | | | | | | | | | | | | Summary: All overloads of `::abs` and `std::abs` must be present in both `<cmath>` and `<cstdlib>`. This is problematic to implement because C defines `fabs` in `math.h` and `labs` in `stdlib.h`. This introduces a circular dependency between the two headers. This patch implements that requirement by moving `abs` into `math.h` and making `stdlib.h` include `math.h`. In order to get the underlying C declarations from the "real" `stdlib.h` inside our `math.h` we need some trickery. Specifically we need to make `stdlib.h` include next itself. Suggestions for a cleaner implementation are welcome. Reviewers: mclow.lists, ldionne Reviewed By: ldionne Subscribers: krytarowski, fedor.sergeev, dexonsmith, jdoerfert, jsji, libcxx-commits Differential Revision: https://reviews.llvm.org/D60097 llvm-svn: 359020
* [libc++] Use std::is_nothrow_callable for std::invoke according to LWG 2807Louis Dionne2019-04-031-1/+1
| | | | | | | Thanks to Zoe Carver for the patch. Differential Revision: https://reviews.llvm.org/D58097 llvm-svn: 357616
* Mark several issues (and one paper) as complete. Reviewed as D58099; but I ↵Marshall Clow2019-02-261-3/+3
| | | | | | added LWG3101 and LWG3144 and P1357R1 as well. llvm-svn: 354898
* Adjust documentation for git migration.James Y Knight2019-01-291-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes most references to the paths: llvm.org/svn/ llvm.org/git/ llvm.org/viewvc/ github.com/llvm-mirror/ github.com/llvm-project/ reviews.llvm.org/diffusion/ to instead point to https://github.com/llvm/llvm-project. This is *not* a trivial substitution, because additionally, all the checkout instructions had to be migrated to instruct users on how to use the monorepo layout, setting LLVM_ENABLE_PROJECTS instead of checking out various projects into various subdirectories. I've attempted to not change any scripts here, only documentation. The scripts will have to be addressed separately. Additionally, I've deleted one document which appeared to be outdated and unneeded: lldb/docs/building-with-debug-llvm.txt Differential Revision: https://reviews.llvm.org/D57330 llvm-svn: 352514
* [NFC] Replace C++1y and C++1z by C++14 and C++17, respectivelyLouis Dionne2018-10-311-3/+3
| | | | llvm-svn: 345762
* [NFC] Mark "Splicing Maps and Sets" as done in LLVM 8.0Louis Dionne2018-10-311-1/+1
| | | | llvm-svn: 345759
* Revert "Implement LWG 2221 - No formatted output operator for nullptr."Volodymyr Sapsai2018-09-191-2/+2
| | | | | | | | | This reverts r342566 as it causes on bots linker errors like > Undefined symbols for architecture i386: > "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(std::nullptr_t)", referenced from: llvm-svn: 342599
* Implement LWG 2221 - No formatted output operator for nullptr. Reviewed as ↵Marshall Clow2018-09-191-2/+2
| | | | | | https://reviews.llvm.org/D44263 llvm-svn: 342566
* Mark LWG#2260 as complete. We already did the right thing, so I just added ↵Marshall Clow2018-08-031-2/+2
| | | | | | tests to ensure that we continue to DTRT. llvm-svn: 338936
* Final bit of P0063 - make sure that aligned_alloc is available when the ↵Marshall Clow2018-07-311-4/+4
| | | | | | underlying C library supports it llvm-svn: 338457
* Correctly mark the Filesystem status as complete.Eric Fiselier2018-07-271-2/+2
| | | | llvm-svn: 338094
* Implement <filesystem>Eric Fiselier2018-07-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements the <filesystem> header and uses that to provide <experimental/filesystem>. Unlike other standard headers, the symbols needed for <filesystem> have not yet been placed in libc++.so. Instead they live in the new libc++fs.a library. Users of filesystem are required to link this library. (Also note that libc++experimental no longer contains the definition of <experimental/filesystem>, which now requires linking libc++fs). The reason for keeping <filesystem> out of the dylib for now is that it's still somewhat experimental, and the possibility of requiring an ABI breaking change is very real. In the future the symbols will likely be moved into the dylib, or the dylib will be made to link libc++fs automagically). Note that moving the symbols out of libc++experimental may break user builds until they update to -lc++fs. This should be OK, because the experimental library provides no stability guarantees. However, I plan on looking into ways we can force libc++experimental to automagically link libc++fs. In order to use a single implementation and set of tests for <filesystem>, it has been placed in a special `__fs` namespace. This namespace is inline in C++17 onward, but not before that. As such implementation is available in C++11 onward, but no filesystem namespace is present "directly", and as such name conflicts shouldn't occur in C++11 or C++14. llvm-svn: 338093
* [libc++] Implement Directory Entry Caching -- Sort of.Eric Fiselier2018-07-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch implements directory_entry caching *almost* as specified in P0317r1. However, I explicitly chose to deviate from the standard as I'll explain below. The approach I decided to take is a fully caching one. When `refresh()` is called, the cache is populated by calls to `stat` and `lstat` as needed. During directory iteration the cache is only populated with the `file_type` as reported by `readdir`. The cache can be in the following states: * `_Empty`: There is nothing in the cache (likely due to an error) * `_IterSymlink`: Created by directory iteration when we walk onto a symlink only the symlink file type is known. * `_IterNonSymlink`: Created by directory iteration when we walk onto a non-symlink. Both the regular file type and symlink file type are known. * `_RefreshSymlink` and `_RefreshNonSymlink`: A full cache created by `refresh()`. This case includes dead symlinks. * `_RefreshSymlinkUnresolved`: A partial cache created by refresh when we fail to resolve the file pointed to by a symlink (likely due to permissions). Symlink attributes are cached, but attributes about the linked entity are not. As mentioned, this implementation purposefully deviates from the standard. According to some readings of the specification, and the Windows filesystem implementation, the constructors and modifiers which don't pass an `error_code` must throw when the `directory_entry` points to a entity which doesn't exist. or when attribute resolution fails for another reason. @BillyONeal has proposed a more reasonable set of requirements, where modifiers other than refresh ignore errors. This is the behavior libc++ currently implements, with the expectation some form of the new language will be accepted into the standard. Some additional semantics which differ from the Windows implementation: 1. `refresh` will not throw when the entry doesn't exist. In this case we can still meet the functions specification, so we don't treat it as an error. 2. We don't clear the path name when a constructor fails via refresh (this will hopefully be changed in the standard as well). It should be noted that libstdc++'s current implementation has the same behavior as libc++, except for point (2). If the changes to the specification don't get accepted, we'll be able to make the changes later. [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0317r1.html Reviewers: mclow.lists, gromer, ldionne, aaron.ballman Subscribers: BillyONeal, christof, cfe-commits Differential Revision: https://reviews.llvm.org/D49530 llvm-svn: 337516
* Mark more bits of P0433 as complete.Marshall Clow2018-05-231-2/+2
| | | | llvm-svn: 333058
* Implement P0430R2 - File system library on non-POSIX systems.Eric Fiselier2018-04-021-1/+1
| | | | | | | | | | | This patch implements P0430R2, who's largest change is adding the path::format enumeration for supporting path format conversions in path constructors. However, since libc++'s filesystem only really supports POSIX like systems, there are no real changes needed. This patch simply adds the format enum and then ignores it when it's passed to constructors. llvm-svn: 329031
* Implement filesystem NB comments, relative paths, and related issues.Eric Fiselier2018-04-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a fairly large patch that implements all of the filesystem NB comments and the relative paths changes (ex. adding weakly_canonical). These issues and papers are all interrelated so their implementation couldn't be split up nicely. This patch upgrades <experimental/filesystem> to match the C++17 spec and not the published experimental TS spec. Some of the changes in this patch are both API and ABI breaking, however libc++ makes no guarantee about stability for experimental implementations. The major changes in this patch are: * Implement NB comments for filesystem (P0492R2), including: * Implement `perm_options` enum as part of NB comments, and update the `permissions` function to match. * Implement changes to `remove_filename` and `replace_filename` * Implement changes to `path::stem()` and `path::extension()` which support splitting examples like `.profile`. * Change path iteration to return an empty path instead of '.' for trailing separators. * Change `operator/=` to handle absolute paths on the RHS. * Change `absolute` to no longer accept a current path argument. * Implement relative paths according to NB comments (P0219r1) * Combine `path.cpp` and `operations.cpp` since some path functions require access to the operations internals, and some fs operations require access to the path parser. llvm-svn: 329028
* Implement LWG#2518 - Non-member swap for propagate_const should call member swapMarshall Clow2018-03-081-2/+2
| | | | llvm-svn: 327005
* Implement LWG 2835 - fix <tgmath.h>Marshall Clow2018-02-121-1/+1
| | | | llvm-svn: 324923
* Implement LWG#2908 - The less-than operator for shared pointers could do ↵Marshall Clow2018-02-121-3/+3
| | | | | | more, and mark 2878 as complete as well (we already do that) llvm-svn: 324911
* Implement deduction guide for basic_string as described in P0433Marshall Clow2018-02-081-2/+3
| | | | llvm-svn: 324569
* Mark 2903 as complete; we already do thisMarshall Clow2018-01-251-2/+2
| | | | llvm-svn: 323479
* Mark LWG2824 as complete. We already did it, but I added a test to be sureMarshall Clow2018-01-031-2/+2
| | | | llvm-svn: 321689
* Mark issue #2866 as "nothing to do"Marshall Clow2018-01-031-2/+2
| | | | llvm-svn: 321687
* Implement p0258r2: has_unique_object_representationsMarshall Clow2018-01-031-2/+2
| | | | llvm-svn: 321685
* A couple more inlined variables that I missed the first timeMarshall Clow2018-01-021-1/+1
| | | | llvm-svn: 321661
* Implement most of P0607: Inline Variables for the Standard Library. This ↵Marshall Clow2018-01-021-1/+3
| | | | | | involved marking a lot of variables as inline (but only for C++17 and later). llvm-svn: 321658
* Add issue 2587, which was missedMarshall Clow2017-12-051-0/+1
| | | | llvm-svn: 319734
* Implement LWG#2921 and LWG#2976 - removing allocator support from packaged_task.Marshall Clow2017-11-271-1/+1
| | | | llvm-svn: 319080
* Implement p0137r1 - std::launder. Reviewed as https://reviews.llvm.org/D40144Marshall Clow2017-11-221-0/+1
| | | | llvm-svn: 318864
* [libcxx] [www] Manually change http links to https.Stephan T. Lavavej2017-08-311-6/+6
| | | | | | Fixes D37318. llvm-svn: 312260
* [libcxx] [www] Semi-manually change http://www.open-std.org and ↵Stephan T. Lavavej2017-08-311-24/+24
| | | | | | | | http://isocpp.org papers to https://wg21.link . Fixes D37318. llvm-svn: 312259
* [libcxx] [www] Change http://wg21.link to https://wg21.link .Stephan T. Lavavej2017-08-311-390/+390
| | | | | | Fixes D37318. llvm-svn: 312257
* Implement P0739R0: 'Some improvements to class template argument deduction ↵Marshall Clow2017-07-271-2/+4
| | | | | | integration into the standard library' This is an API change (not ABI change) due to a late change in the c++17 standard llvm-svn: 309296
* Update libc++ status pages with results of the Toronto Meeting - and for C++2aMarshall Clow2017-07-161-0/+8
| | | | llvm-svn: 308153
* Mark LWG 2904 as complete.Michael Park2017-06-071-2/+2
| | | | llvm-svn: 304893
* Mark LWG#2900 as complete - we already do this, and I checked the tests in a ↵Marshall Clow2017-05-251-2/+2
| | | | | | couple days ago (r303268 & r303824) llvm-svn: 303876
* Fix broken links on C++1z status pageEric Fiselier2017-05-251-5/+5
| | | | llvm-svn: 303835
* Implement LWG#2790: Remove istreambuf_iterator::operator->. It never did ↵Marshall Clow2017-05-231-2/+2
| | | | | | anything useful. llvm-svn: 303675
* Mark LWG#2782 as complete. No functionality change; we already do this. Just ↵Marshall Clow2017-05-111-1/+1
| | | | | | added a few more tests. llvm-svn: 302802
* Mark LWG#2850 as complete. No functionality change; we had tests that ↵Marshall Clow2017-05-111-1/+1
| | | | | | covered it already. Just added comments to the tests. Thanks to K-ballo for the heads up. llvm-svn: 302799
* Mark LWG#2796 as complete. No functionality change; we had tests that ↵Marshall Clow2017-05-111-2/+2
| | | | | | covered it already. Just added comments to the tests llvm-svn: 302798
* Implement LWG 2591 - Patch from K-BalloEric Fiselier2017-05-101-1/+1
| | | | llvm-svn: 302724
OpenPOWER on IntegriCloud