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