1 This is meant to be a general place to list things that should be done "someday" 2 3 ABI 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 9 CXX 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 22 Atomic Related Tasks 23 ==================== 24 * Support <atomic> in C++03 (needed for internal use). 25 * Audit use of libatomic builtins in <atomic> with GCC. 26 * future should use <atomic> for synchronization. 27 * call_once should use <atomic> for synchronization. 28 * Audit shared_ptr use of <atomic> 29 30 Test Suite Tasks 31 ================ 32 * Get test suite passing in C++03. 33 * 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 37 Misc Tasks 38 ========== 39 * Find all sequences of >2 underscores and eradicate them. 40 * run clang-tidy on libc++ 41 * 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) 45 * 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. 48 * Document support (or lack of) for C++11 libraries in C++03. 49 * Document supported compilers. 50