diff --git a/libcxx/TODO.TXT b/libcxx/TODO.TXT index d99b1d442e63..c67138169a0a 100644 --- a/libcxx/TODO.TXT +++ b/libcxx/TODO.TXT @@ -1,10 +1,45 @@ This is meant to be a general place to list things that should be done "someday" +ABI Related Tasks +================= +* Explicitly manage and verify symbols exported from the dylib. +* Explore using namespaces for managing symbol visibility. +* Introduce and document ABI versioning/evolution policy. + +CXX Runtime Library Tasks +========================= +* Cleanup #ifdef hell in sources files that supports the different ABI libraries. +* Fix that CMake always link to /usr/lib/libc++abi.dylib on OS X. +* Fix selection of ABI symbol list on OS X. +* Have CMake generate linker scripts for libc++.so that it properly links the + runtime library. +* Look into mirroring libsupc++'s typeinfo vtable layout when libsupc++/libstdc++ + is used as the runtime library. +* Audit libraries that CMake links into libc++. Are they all required? +* Investigate and document interoperability between libc++ and libstdc++ on + linux. Do this for every supported c++ runtime library. + +Atomic Related Tasks +==================== +* Support in C++03 (needed for internal use). +* Audit use of libatomic builtins in with GCC. +* future should use for synchronization. +* call_once should use for synchronization. +* Audit shared_ptr use of + +Test Suite Tasks +================ +* Get test suite passing in C++03. +* Move all libc++ specific tests from test/std into test/libcxx. +* Improve how LIT handles compiler warnings. +* Improve the quality and portability of the locale test data. + +Misc Tasks +========== * Find all sequences of >2 underscores and eradicate them. * run clang-tidy on libc++ -* future should use for synchronization. -* Audit shared_ptr use of -* Look at test/std/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp; why are the tests duplicated? +* Look at test/std/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp; + why are the tests duplicated? * Document the "conditionally-supported" bits of libc++ * Look at basic_string's move assignment operator, re LWG 2063 and POCMA * libc++ is missing try_emplace