1*58b9f456SAndroid Build Coastguard WorkerThis is meant to be a general place to list things that should be done "someday" 2*58b9f456SAndroid Build Coastguard Worker 3*58b9f456SAndroid Build Coastguard WorkerCXX Runtime Library Tasks 4*58b9f456SAndroid Build Coastguard Worker========================= 5*58b9f456SAndroid Build Coastguard Worker* Fix that CMake always link to /usr/lib/libc++abi.dylib on OS X. 6*58b9f456SAndroid Build Coastguard Worker* Look into mirroring libsupc++'s typeinfo vtable layout when libsupc++/libstdc++ 7*58b9f456SAndroid Build Coastguard Worker is used as the runtime library. 8*58b9f456SAndroid Build Coastguard Worker* Investigate and document interoperability between libc++ and libstdc++ on 9*58b9f456SAndroid Build Coastguard Worker linux. Do this for every supported c++ runtime library. 10*58b9f456SAndroid Build Coastguard Worker 11*58b9f456SAndroid Build Coastguard WorkerAtomic Related Tasks 12*58b9f456SAndroid Build Coastguard Worker==================== 13*58b9f456SAndroid Build Coastguard Worker* future should use <atomic> for synchronization. 14*58b9f456SAndroid Build Coastguard Worker 15*58b9f456SAndroid Build Coastguard WorkerTest Suite Tasks 16*58b9f456SAndroid Build Coastguard Worker================ 17*58b9f456SAndroid Build Coastguard Worker* Improve the quality and portability of the locale test data. 18*58b9f456SAndroid Build Coastguard Worker* Convert failure tests to use Clang Verify. 19*58b9f456SAndroid Build Coastguard Worker 20*58b9f456SAndroid Build Coastguard WorkerFilesystem Tasks 21*58b9f456SAndroid Build Coastguard Worker================ 22*58b9f456SAndroid Build Coastguard Worker* P0492r2 - Implement National body comments for Filesystem 23*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 25: has_filename() is equivalent to just !empty() 24*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 31: Everything is defined in terms of one implicit host system 25*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 32: Meaning of 27.10.2.1 unclear 26*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 33: Definition of canonical path problematic 27*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 34: Are there attributes of a file that are not an aspect of the file system? 28*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 35: What synchronization is required to avoid a file system race? 29*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 36: Symbolic links themselves are attached to a directory via (hard) links 30*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 37: The term “redundant current directory (dot) elements” is not defined 31*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 38: Duplicates §17.3.16 32*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 39: Remove note: Dot and dot-dot are not directories 33*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 40: Not all directories have a parent. 34*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 41: The term “parent directory” for a (non-directory) file is unusual 35*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 42: Pathname resolution does not always resolve a symlink 36*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 43: Concerns about encoded character types 37*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 44: Definition of path in terms of a string requires leaky abstraction 38*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 45: Generic format portability compromised by unspecified root-name 39*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 46: filename can be empty so productions for relative-path are redundant 40*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 47: “.” and “..” already match the name production 41*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 48: Multiple separators are often meaningful in a root-name 42*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 49: What does “method of conversion method” mean? 43*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 50: 27.10.8.1 ¶ 1.4 largely redundant with ¶ 1.3 44*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 51: Failing to add / when appending empty string prevents useful apps 45*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 52: remove_filename() postcondition is not by itself a definition 46*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 53: remove_filename()'s name does not correspond to its behavior 47*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 54: remove_filename() is broken 48*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 55: replace_extension()'s use of path as parameter is inappropriate 49*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 56: Remove replace_extension()'s conditional addition of period 50*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 57: On Windows, absolute paths will sort in among relative paths 51*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 58: parent_path() behavior for root paths is useless 52*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 59: filename() returning path for single path components is bizarre 53*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 60: path("/foo/").filename()==path(".") is surprising 54*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 61: Leading dots in filename() should not begin an extension 55*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 62: It is important that stem()+extension()==filename() 56*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 63: lexically_normal() inconsistently treats trailing "/" but not "/.." as directory 57*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 73, CA 2: root-name is effectively implementation defined 58*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 74, CA 3: The term “pathname” is ambiguous in some contexts 59*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 75, CA 4: Extra flag in path constructors is needed 60*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 76, CA 5: root-name definition is over-specified. 61*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 77, CA 6: operator/ and other appends not useful if arg has root-name 62*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 78, CA 7: Member absolute() in 27.10.4.1 is overspecified for non-POSIX-like O/S 63*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 79, CA 8: Some operation functions are overspecified for implementation-defined file types 64*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - US 185: Fold error_code and non-error_code signatures into one signature 65*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - FI 14: directory_entry comparisons are members 66*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - Late 36: permissions() error_code overload should be noexcept 67*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - Late 37: permissions() actions should be separate parameter 68*58b9f456SAndroid Build Coastguard Worker * INCOMPLETE - Late 42: resize_file() Postcondition missing argument 69*58b9f456SAndroid Build Coastguard Worker 70*58b9f456SAndroid Build Coastguard WorkerMisc Tasks 71*58b9f456SAndroid Build Coastguard Worker========== 72*58b9f456SAndroid Build Coastguard Worker* Find all sequences of >2 underscores and eradicate them. 73*58b9f456SAndroid Build Coastguard Worker* run clang-tidy on libc++ 74*58b9f456SAndroid Build Coastguard Worker* Document the "conditionally-supported" bits of libc++ 75*58b9f456SAndroid Build Coastguard Worker* Look at basic_string's move assignment operator, re LWG 2063 and POCMA 76*58b9f456SAndroid Build Coastguard Worker* Put a static_assert in std::allocator to deny const/volatile types (LWG 2447) 77