blob: 513b86377244112108ab1d94948b4749a52c5727 [file] [log] [blame]
Marshall Clow19158f22015-05-20 17:39:54 +00001This is meant to be a general place to list things that should be done "someday"
2
Eric Fiselier97092d62015-05-22 02:23:22 +00003ABI Related Tasks
4=================
5* Explicitly manage and verify symbols exported from the dylib.
6* Explore using namespaces for managing symbol visibility.
7* Introduce and document ABI versioning/evolution policy.
8
9CXX Runtime Library Tasks
10=========================
11* Cleanup #ifdef hell in sources files that supports the different ABI libraries.
12* Fix that CMake always link to /usr/lib/libc++abi.dylib on OS X.
13* Fix selection of ABI symbol list on OS X.
14* Have CMake generate linker scripts for libc++.so that it properly links the
15 runtime library.
16* Look into mirroring libsupc++'s typeinfo vtable layout when libsupc++/libstdc++
17 is used as the runtime library.
18* Audit libraries that CMake links into libc++. Are they all required?
19* Investigate and document interoperability between libc++ and libstdc++ on
20 linux. Do this for every supported c++ runtime library.
21
22Atomic Related Tasks
23====================
Dan Albert1d4a1ed2016-05-25 22:36:09 -070024* Support <atomic> in C++03 (needed for internal use).
Eric Fiselier97092d62015-05-22 02:23:22 +000025* Audit use of libatomic builtins in <atomic> with GCC.
26* future should use <atomic> for synchronization.
Dan Albert1d4a1ed2016-05-25 22:36:09 -070027* call_once should use <atomic> for synchronization.
28* Audit shared_ptr use of <atomic>
Eric Fiselier97092d62015-05-22 02:23:22 +000029
30Test Suite Tasks
31================
Dan Albert1d4a1ed2016-05-25 22:36:09 -070032* Get test suite passing in C++03.
Eric Fiselier97092d62015-05-22 02:23:22 +000033* Move all libc++ specific tests from test/std into test/libcxx.
34* Improve how LIT handles compiler warnings.
35* Improve the quality and portability of the locale test data.
36
37Misc Tasks
38==========
Marshall Clow19158f22015-05-20 17:39:54 +000039* Find all sequences of >2 underscores and eradicate them.
40* run clang-tidy on libc++
Marshall Clow19158f22015-05-20 17:39:54 +000041* Document the "conditionally-supported" bits of libc++
42* Look at basic_string's move assignment operator, re LWG 2063 and POCMA
43* libc++ is missing try_emplace
44* Put a static_assert in std::allocator to deny const/volatile types (LWG 2447)
Dan Albert1d4a1ed2016-05-25 22:36:09 -070045* Investigate the effect of using __decltype instead of __typeof__ to provide
46 decltype in C++03. What code could be broken by this change?
47* Convert failure tests to use Clang Verify.
Eric Fiselierc4324b22015-06-02 01:25:34 +000048* Document support (or lack of) for C++11 libraries in C++03.
49* Document supported compilers.