1 This is meant to be a general place to list things that should be done "someday" 2 3 3.8 Release Goals 4 ================= 5 * LFTS v1 (EricWF, MClow) 6 * Filesystem TS (EricWF) 7 * ASIO TS (MClow) 8 * <regex> Improvements (MClow) 9 * Setup ABI Versioning policy (EricWF) 10 * Fix PR19302 - Fix UB in list and __tree. 11 12 13 ABI Related Tasks 14 ================= 15 * Explicitly manage and verify symbols exported from the dylib. 16 * Explore using namespaces for managing symbol visibility. 17 * Introduce and document ABI versioning/evolution policy. 18 19 CXX Runtime Library Tasks 20 ========================= 21 * Cleanup #ifdef hell in sources files that supports the different ABI libraries. 22 * Fix that CMake always link to /usr/lib/libc++abi.dylib on OS X. 23 * Fix selection of ABI symbol list on OS X. 24 * Have CMake generate linker scripts for libc++.so that it properly links the 25 runtime library. 26 * Look into mirroring libsupc++'s typeinfo vtable layout when libsupc++/libstdc++ 27 is used as the runtime library. 28 * Audit libraries that CMake links into libc++. Are they all required? 29 * Investigate and document interoperability between libc++ and libstdc++ on 30 linux. Do this for every supported c++ runtime library. 31 32 Atomic Related Tasks 33 ==================== 34 * Enable mixing of clang and GCC atomics internally. Currently some 35 parts of libc++ use atomics only when clang provides them. 36 (see memory@5380 for an example) 37 * Audit use of libatomic builtins in <atomic> with GCC. 38 * future should use <atomic> for synchronization. 39 40 Test Suite Tasks 41 ================ 42 * Move all libc++ specific tests from test/std into test/libcxx. 43 * Improve how LIT handles compiler warnings. 44 * Improve the quality and portability of the locale test data. 45 * Convert failure tests to use Clang Verify. 46 47 Misc Tasks 48 ========== 49 * Find all sequences of >2 underscores and eradicate them. 50 * run clang-tidy on libc++ 51 * Document the "conditionally-supported" bits of libc++ 52 * Look at basic_string's move assignment operator, re LWG 2063 and POCMA 53 * libc++ is missing try_emplace 54 * Put a static_assert in std::allocator to deny const/volatile types (LWG 2447) 55 * Document support (or lack of) for C++11 libraries in C++03. 56 * Document supported compilers. 57