]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | <html> |
2 | ||
3 | <head> | |
4 | <meta http-equiv="Content-Language" content="en-us"> | |
5 | <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> | |
6 | <meta name="ProgId" content="FrontPage.Editor.Document"> | |
7 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |
8 | <title>Do List</title> | |
9 | <style type="text/css"> | |
10 | body { font-family: sans-serif; margin: 1em; } | |
11 | p, td, li, blockquote { font-size: 10pt; } | |
12 | pre { font-size: 9pt; } | |
13 | </style> | |
14 | </head> | |
15 | ||
16 | <body> | |
17 | ||
18 | <h1>Boost Filesystem Do List<br> | |
19 | <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->24 June 2010<!--webbot bot="Timestamp" endspan i-checksum="17552" --></h1> | |
20 | ||
21 | <h2>Beta 1 comments</h2> | |
22 | <ul> | |
23 | <li dir="ltr"> | |
24 | ||
25 | <p dir="ltr">Zach Laine:</li> | |
26 | </ul> | |
27 | <blockquote> | |
28 | <pre dir="ltr">The descriptions for portable_name() and portable_directory_name() | |
29 | appear to be at odds. | |
30 | ||
31 | portable_name() : ... && (name is "." or "..", and the first character | |
32 | not a period or hyphen) | |
33 | ||
34 | portable_directory_name(): ... && (name is "." or ".." or contains no periods) | |
35 | ||
36 | Should portable_name() be "... && (name is "." or "..", or contains no | |
37 | periods) && (first character not a hyphen)"? Maybe I'm missing | |
38 | something?</pre> | |
39 | </blockquote> | |
40 | <ul> | |
41 | <li dir="ltr"> | |
42 | <p dir="ltr">Scott McMurray - treat as Wish List:</li> | |
43 | </ul> | |
44 | <blockquote> | |
45 | <pre dir="ltr">- uncomplete(p, base) | |
46 | ||
47 | My pet request. It may be useful to simplify other functions as well, | |
48 | since there's no current way to go from an absolute path to a relative | |
49 | one, meaning that most functions need to handle relative ones even | |
50 | when that might not be natural. With this functionality, | |
51 | preconditions requiring absolute paths would be less onerous. | |
52 | ||
53 | Precondition: p.is_absolute() && base.is_absolute() | |
54 | ||
55 | Effects: Extracts a path, rp, from p relative to base such that | |
56 | canonical(p) == complete(rp, base). Any ".." path elements in rp form | |
57 | a prefix. | |
58 | ||
59 | Returns: The extracted path. | |
60 | ||
61 | Postconditions: For the returned path, rp, rp.is_relative() == | |
62 | (p.root_name() == b.root_name()). | |
63 | ||
64 | [Notes: This function simplifies paths by omitting context. It is | |
65 | particularly useful for serializing paths such that it can be usefully | |
66 | moved between hosts where the context may be different, such as inside | |
67 | source control trees. It can also be helpful for display to users, | |
68 | such as in shells where paths are often shown relative to $HOME. | |
69 | ||
70 | In the presence of symlinks, the result of this function may differ | |
71 | between implementations, as some may expand symlinks that others may | |
72 | not. The simplest implementation uses canonical to expand both p and | |
73 | base, then removes the common prefix and prepends the requisite ".." | |
74 | elements. Smarter implementations will avoid expanding symlinks | |
75 | unnecessarily. No implementation is expected to discover new symlinks | |
76 | to return paths with fewer elements.]</pre> | |
77 | </blockquote> | |
78 | <h2 dir="ltr">Docs</h2> | |
79 | <ul> | |
80 | <li>Reorganize files - delete examples that no longer apply.</li> | |
81 | <li>Should minimal.css be changed to used relative font sizes? See | |
82 | <a href="http://www.w3schools.com/CSS/pr_font_font-size.asp/">http://www.w3schools.com/CSS/pr_font_font-size.asp\</a></li> | |
83 | <li>Document behavior of path::replace_extension has change WRT argument w/o a | |
84 | dot.</li> | |
85 | <li style="font-size: 10pt">Document leading //: no longer treated specially. | |
86 | But is that really correct?</li> | |
87 | <li style="font-size: 10pt">Behavior of root_path() has been changed. Change | |
88 | needs to be propagated to trunk?</li> | |
89 | <li style="font-size: 10pt">Regenerate path decomposition table.</li> | |
90 | </ul> | |
91 | ||
92 | <h2>Code</h2> | |
93 | <h3>All</h3> | |
94 | <ul> | |
95 | <li style="font-size: 10pt">Move semantics.</li> | |
96 | <li style="font-size: 10pt">Use BOOST_DELETED, BOOST_DEFAULTED, where | |
97 | appropriate.</li> | |
98 | <li style="font-size: 10pt">Other C++0x features.</li> | |
99 | </ul> | |
100 | <h3>Class path</h3> | |
101 | <ul> | |
102 | <li>Windows, POSIX, conversions for char16_t, char32_t for C++0x compilers.</li> | |
103 | <li>Add Windows Alternate Data Stream test cases. See http://en.wikipedia.org/wiki/NTFS | |
104 | Features.</li> | |
105 | <li>Add test case: relational operators on paths differing only in trailing | |
106 | separator. Rationale?</li> | |
107 | <li>Provide the name check functions for more character types? Templatize? | |
108 | take a path argument?</li> | |
109 | <li style="font-size: 10pt">Add codepage 936/950/etc test cases.</li> | |
110 | <li style="font-size: 10pt">Should UDT's be supported?</li> | |
111 | <li style="font-size: 10pt">Should path iteration to a separator result in:<br> | |
112 | -- the actual separator used<br> | |
113 | -- the preferred separator<br> | |
114 | -- the generic separator <-- makes it easier to write portable code<br> | |
115 | -- a dot</li> | |
116 | </ul> | |
117 | <h3>Operations</h3> | |
118 | <ul> | |
119 | <li>Would complete(), system_complete() be clearer if renamed absolute(), | |
120 | absolute_system() (or absolute_native())?</li> | |
121 | <li>Review all operations.cpp code for race conditions similar to #2925. Fix | |
122 | or document.</li> | |
123 | <li>Enable all BOOST_FILESYSTEM_NO_DEPRECATED code.</li> | |
124 | <li>rename and remove names are problems. If users says "using | |
125 | namespace boost::filesystem"<br> | |
126 | and some header included stdio, there is just too much chance of silent error.</li> | |
127 | <li>create_directories error handling needs work.</li> | |
128 | <li>Fold convenience.hpp into operations.hpp</li> | |
129 | <li>Two argument recursive_directory_iterator ctor isn't recognizing throws(). | |
130 | Would it be better to fold into a single two argument ctor with default?</li> | |
131 | <li>Add the push_directory class from tools/release/required_files.cpp</li> | |
132 | </ul> | |
133 | ||
134 | <h3>Miscellaneous</h3> | |
135 | <ul> | |
136 | <li style="font-size: 10pt"><i>Regular</i> classes need hash functions.</li> | |
137 | </ul> | |
138 | ||
139 | <hr> | |
140 | <p>© Copyright Beman Dawes, 2010</p> | |
141 | <p>Distributed under the Boost Software License, Version 1.0. See | |
142 | <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p> | |
143 | ||
144 | </body> | |
145 | ||
146 | </html> |