annotate libcxx/TODO.TXT @ 174:f935e5e0dbe7

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