Home | History | Annotate | Download | only in libcxx
      1 This is meant to be a general place to list things that should be done "someday"
      2 
      3 CXX Runtime Library Tasks
      4 =========================
      5 * Fix that CMake always link to /usr/lib/libc++abi.dylib on OS X.
      6 * Look into mirroring libsupc++'s typeinfo vtable layout when libsupc++/libstdc++
      7   is used as the runtime library.
      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 ====================
     13 * future should use <atomic> for synchronization.
     14 
     15 Test Suite Tasks
     16 ================
     17 * Improve the quality and portability of the locale test data.
     18 * Convert failure tests to use Clang Verify.
     19 
     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 
     70 Misc Tasks
     71 ==========
     72 * Find all sequences of >2 underscores and eradicate them.
     73 * run clang-tidy on libc++
     74 * Document the "conditionally-supported" bits of libc++
     75 * Look at basic_string's move assignment operator, re LWG 2063 and POCMA
     76 * Put a static_assert in std::allocator to deny const/volatile types (LWG 2447)
     77