xref: /minix3/external/bsd/libc++/dist/libcxx/TODO.TXT (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel SambucThis is meant to be a general place to list things that should be done "someday"
2*0a6a1f1dSLionel Sambuc
3*0a6a1f1dSLionel SambucABI Related Tasks
4*0a6a1f1dSLionel Sambuc=================
5*0a6a1f1dSLionel Sambuc* Explicitly manage and verify symbols exported from the dylib.
6*0a6a1f1dSLionel Sambuc* Explore using namespaces for managing symbol visibility.
7*0a6a1f1dSLionel Sambuc* Introduce and document ABI versioning/evolution policy.
8*0a6a1f1dSLionel Sambuc
9*0a6a1f1dSLionel SambucCXX Runtime Library Tasks
10*0a6a1f1dSLionel Sambuc=========================
11*0a6a1f1dSLionel Sambuc* Cleanup #ifdef hell in sources files that supports the different ABI libraries.
12*0a6a1f1dSLionel Sambuc* Fix that CMake always link to /usr/lib/libc++abi.dylib on OS X.
13*0a6a1f1dSLionel Sambuc* Fix selection of ABI symbol list on OS X.
14*0a6a1f1dSLionel Sambuc* Have CMake generate linker scripts for libc++.so that it properly links the
15*0a6a1f1dSLionel Sambuc  runtime library.
16*0a6a1f1dSLionel Sambuc* Look into mirroring libsupc++'s typeinfo vtable layout when libsupc++/libstdc++
17*0a6a1f1dSLionel Sambuc  is used as the runtime library.
18*0a6a1f1dSLionel Sambuc* Audit libraries that CMake links into libc++. Are they all required?
19*0a6a1f1dSLionel Sambuc* Investigate and document interoperability between libc++ and libstdc++ on
20*0a6a1f1dSLionel Sambuc  linux. Do this for every supported c++ runtime library.
21*0a6a1f1dSLionel Sambuc
22*0a6a1f1dSLionel SambucAtomic Related Tasks
23*0a6a1f1dSLionel Sambuc====================
24*0a6a1f1dSLionel Sambuc* Support <atomic> in C++03 (needed for internal use).
25*0a6a1f1dSLionel Sambuc* Audit use of libatomic builtins in <atomic> with GCC.
26*0a6a1f1dSLionel Sambuc* future should use <atomic> for synchronization.
27*0a6a1f1dSLionel Sambuc* call_once should use <atomic> for synchronization.
28*0a6a1f1dSLionel Sambuc* Audit shared_ptr use of <atomic>
29*0a6a1f1dSLionel Sambuc
30*0a6a1f1dSLionel SambucTest Suite Tasks
31*0a6a1f1dSLionel Sambuc================
32*0a6a1f1dSLionel Sambuc* Get test suite passing in C++03.
33*0a6a1f1dSLionel Sambuc* Move all libc++ specific tests from test/std into test/libcxx.
34*0a6a1f1dSLionel Sambuc* Improve how LIT handles compiler warnings.
35*0a6a1f1dSLionel Sambuc* Improve the quality and portability of the locale test data.
36*0a6a1f1dSLionel Sambuc
37*0a6a1f1dSLionel SambucMisc Tasks
38*0a6a1f1dSLionel Sambuc==========
39*0a6a1f1dSLionel Sambuc* Find all sequences of >2 underscores and eradicate them.
40*0a6a1f1dSLionel Sambuc* run clang-tidy on libc++
41*0a6a1f1dSLionel Sambuc* Document the "conditionally-supported" bits of libc++
42*0a6a1f1dSLionel Sambuc* Look at basic_string's move assignment operator, re LWG 2063 and POCMA
43*0a6a1f1dSLionel Sambuc* libc++ is missing try_emplace
44*0a6a1f1dSLionel Sambuc* Put a static_assert in std::allocator to deny const/volatile types (LWG 2447)
45*0a6a1f1dSLionel Sambuc* Investigate the effect of using __decltype instead of __typeof__ to provide
46*0a6a1f1dSLionel Sambuc  decltype in C++03. What code could be broken by this change?
47*0a6a1f1dSLionel Sambuc* Convert failure tests to use Clang Verify.
48*0a6a1f1dSLionel Sambuc* Document support (or lack of) for C++11 libraries in C++03.
49*0a6a1f1dSLionel Sambuc* Document supported compilers.
50