Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / filesystem / doc / release_history.html
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=windows-1252">
8 <title>Filesystem Release History</title>
9 <link rel="stylesheet" type="text/css" href="../../../doc/src/minimal.css">
10 </head>
11
12 <body>
13
14 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
15   <tr>
16     <td width="277">
17 <a href="../../../index.htm">
18 <img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="300" height="86" border="0"></a></td>
19     <td align="middle">
20     <font size="7">Filesystem Release History</font>
21     </td>
22   </tr>
23 </table>
24
25 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" bgcolor="#D7EEFF" width="100%">
26   <tr>
27     <td><a href="../../../index.htm">Boost Home</a> &nbsp;&nbsp;
28     <a href="index.htm">Library Home</a> &nbsp;&nbsp; <a href="reference.html">Reference</a> &nbsp;&nbsp;
29     <a href="tutorial.html">Tutorial</a> &nbsp;&nbsp;
30     <a href="faq.htm">FAQ</a> &nbsp;&nbsp;
31     <a href="portability_guide.htm">Portability</a> &nbsp;&nbsp;
32     <a href="v3.html">V3 Intro</a> &nbsp;&nbsp;
33     <a href="v3_design.html">V3 Design</a> &nbsp;&nbsp;
34     <a href="deprecated.html">Deprecated</a> &nbsp;&nbsp;
35     </td>
36   </tr>
37 </table>
38
39 <h2>1.57.0</h2>
40 <ul>
41   <li>Rework class <code>path</code> locale and codecvt implementation for increased reliability. 
42   This change was SVN revision 83021, which should have gone into 1.56.0 but 
43   unfortunately the merge didn't happen until too late.</li>
44   <li>Fix tickets <a href="https://svn.boost.org/trac/boost/ticket/8930">#8930</a>, <a href="https://svn.boost.org/trac/boost/ticket/9054">#9054</a>,
45   <a href="https://svn.boost.org/trac/boost/ticket/9214">#9219</a>,
46   <a href="https://svn.boost.org/trac/boost/ticket/10228">#10228</a>, and
47   <a href="https://svn.boost.org/trac/boost/ticket/10641">#10641</a>, all 
48   related to locales and codecvt facets.</li>
49   <li>The net effect of the above changes and fixes should be to eliminate 
50   spurious &quot;locale::facet::_S_create_c_locale name not valid&quot; errors on Linux 
51   and other non-BSD POSIX-like systems. The error will continue to occur, as it 
52   should, when a path encoding conversion char-to-wchar_t or wchar_t-to-char is 
53   attempted in an environment without a valid C locale (for example, if the LANG 
54   environment variable is invalid or not defined).</li>
55   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/6124">#6124</a>,
56   <a href="https://svn.boost.org/trac/boost/ticket/6779">#6779</a>, and
57   <a href="https://svn.boost.org/trac/boost/ticket/10038">#10038</a> - an 
58   undefined reference that occurred when the library was compiled for C++03 but 
59   the using program was compiled for C++11, or vice versa. The private library 
60   interface has been changed to use a plain-old C++03 enum. This is the fix 
61   suggested by Andy in 6779.</li>
62   <li>The Windows implementation now treats NTFS directory junctions (also known 
63   as junctions, also known as mount points) as symlinks. This has the effect of 
64   treating directory junctions as directories, and thus supporting all 
65   operations suitable for directories. This resolves
66   <a href="https://svn.boost.org/trac/boost/ticket/9016">#9016</a>. Directory 
67   junctions are very similar to symlinks, but may have performance or other 
68   advantages in some situations. They can be created from the command line with 
69   &quot;<code>mklink /j link target</code>&quot;. There is no plan for Boost.Filesystem to 
70   be able to create them directly other than by calling <code>std::system()</code>.</li>
71 </ul>
72
73 <h2>1.56.0</h2>
74 <ul>
75   <li>Reorganize <code>recursive_directory_iterator::increment</code>, adding an 
76   invariant that progress is always made, even if an error is reported by 
77   exception or error_code. Add a manually executed test, <code>
78   test/issues/recurse_dir_iter_5403.cpp</code>. Adjust regular regression tests 
79   as needed. Thanks to Claudio Bley for the
80   <a href="https://github.com/boostorg/filesystem/pull/4">pull request</a> - the 
81   change was incorporated into the reorganized code. Fixes
82   <a href="https://svn.boost.org/trac/boost/ticket/5403">#5403</a> and
83   <a href="https://svn.boost.org/trac/boost/ticket/6821">#6821</a>.</li>
84   <li>Fix <code>canonical()</code> to treat parent of root as root. (Christian 
85   Hammerl) Fixes <a href="https://svn.boost.org/trac/boost/ticket/9683">#9683</a> 
86   and <a href="https://svn.boost.org/trac/boost/ticket/10187">#10187</a>.</li>
87   <li>Added missing test for <code>__sun</code> macro which is defined on 
88   Solaris 10. (Chris Stylianou)</li>
89   <li>Minor fixes and code cleanup.</li>
90   <li>Update IDE projects to Visual Studio 2013.</li>
91   <li>Remove unused <code>const char colon</code> to clear clang warning. (Jürgen 
92   Hunold)</li>
93   <li>Add BOOST_NOEXCEPT to <code>class filesystem_error</code>.</li>
94   <li>Change <code>perms::all_all</code> and <code>perms::perms_mask</code> to 
95   absolute values to quiet intellisense warnings, and conform to C++11.</li>
96 </ul>
97
98 <h2>1.54.0</h2>
99 <ul>
100   <li>Reimplement <code>path::codecvt()</code> and <code>path::imbue()</code> 
101   with portable code that is intended to be much more robust and maintainable. A 
102   section on <a href="reference.html#path-Usage">path usage concerns</a> has 
103   been added to the reference documentation describing several concerns that 
104   arise in the context of multithreading and <code>path::codecvt()</code>.</li>
105 </ul>
106
107 <h2>1.52.0</h2>
108 <ul>
109   <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/7239">#7239</a>, Stack 
110   overflow when calling <code>create_directories(&quot;:D&quot;)</code>. The reported 
111   problem was a symptom of an internal bug that caused <code>path::filename()</code> 
112   and <code>path::parent_path()</code> to fail on Windows for <code>path(&quot;:&quot;)</code>, 
113   and that in turn caused other functions that depend on <code>filename()</code> 
114   or <code>parent_path()</code> to fail, such as <code>create_directories()</code>.</li>
115 </ul>
116
117 <h2>1.51.0</h2>
118 <ul>
119   <li>Add begin() and end() non-member functions for directory_iterator and 
120   recursive_directory_iterator so that C++11 range-based for statements  work. 
121   Suggested by feature requests
122   <a href="https://svn.boost.org/trac/boost/ticket/5896">#5896</a> and
123   <a href="https://svn.boost.org/trac/boost/ticket/6521">#6521</a>, using the
124   <a href="https://svn.boost.org/trac/boost/ticket/5896">#5896</a> approach.</li>
125   <li>Add range_begin() and range_end() non-member functions for directory_iterator and 
126   recursive_directory_iterator so that 
127   <a href="http://www.boost.org/libs/foreach/">BOOST_FOREACH</a> works.</li>
128   <li>Fix a Linux fchmodat problem affecting symlink permissions reported during 
129   discussion of <a href="https://svn.boost.org/trac/boost/ticket/6659">#6659</a>.</li>
130   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/6659">#6659</a> and
131   <a href="https://svn.boost.org/trac/boost/ticket/7051">#7051</a>, fchmodat 
132   supported only on Solaris 11. Fix for both Sun and GCC compilers. </li>
133 </ul>
134
135 <h2>1.50.0</h2>
136 <ul>
137   <li>Remove Filesystem Version 2 from the distribution. Version 3 is now the 
138   only distributed version. Those still using V2 are urged to migrate to V3 as 
139   soon as possible.</li>
140   <li>Add <code>constexpr value_type preferred_separator</code> to class path.</li>
141   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5118">#5118</a>,
142   <code>replace_extension</code> doesn't work as specified in documentation. The 
143   documentation, implementation, and test cases have all had fixes applied. The 
144   documentation had failed to mention that any existing extension is removed. 
145   The behavior for simple cases has been reverted to the Version 2 behavior, but 
146   with corrections so that complex replacements now work. Two test cases from 
147   #5118 have been added.</li>
148   <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/3737">#3737</a>, 
149   Boost.Filesystem does not compile on Windows Mobile. On Windows, &lt;sys/stat.h&gt; 
150   is no longer included.</li>
151   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/4065">#4065</a>, 
152   Boost Filesystem lexicographic path comparison inconsistent. This required 
153   multiple source code bug fixes and code cleanup, correcting problems not 
154   related to lexicographical issues.</li>
155   <li>Add class path member function <code>compare</code> for consistency with 
156   std::string.</li>
157   <li>Tighten BOOST_FILESYSTEM_DYN_LINK and BOOST_FILESYSTEM_STATIC_LINK logic 
158   in filesystem/config.hpp so that one or the other is always defined, and both 
159   being defined is a #error.</li>
160   <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6690">#6690</a> and
161   <a href="http://svn.boost.org/trac/boost/ticket/6737">#6737</a>, resolving 
162   static linking related problems with VC++ 8 through 11. Note that this fix may 
163   reintroduce codecvt thread safety problems
164   <a href="http://svn.boost.org/trac/boost/ticket/4889">#4889</a>,
165   <a href="http://svn.boost.org/trac/boost/ticket/6320">#6320</a>, for these 
166   compilers if static linking is used.</li>
167   <li>Add path::operator+= and concat functions to tack on things like suffixes 
168   or numbers. Suggested by Ed Smith-Rowland and others.</li>
169   <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6809">#6809</a>, 
170   Implementation of filesystem::rename() method for MS Windows is wrong, by 
171   adding MOVEFILE_COPY_ALLOWED to deal with renames across drives, volumes, file 
172   systems. Fix has no effect on non-Windows systems.</li>
173   <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6819">#6819</a>, A path operand with a source that was a one character array was 
174   treated as empty, even if it wasn't empty. Such arrays can occur in unions or 
175   in code using C variable length array idioms.</li>
176   <li>Fix <a href="http://svn.boost.org/trac/boost/ticket/6932">#6932</a>, 
177   create_directories throws exception even if error_code is specified.</li>
178 </ul>
179
180 <h2>1.49.0</h2>
181 <ul>
182   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/3714">#3714</a>, 
183   Added test cases and fixes for class path errors when assignment or append 
184   used self or portion of self as source. </li>
185   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/4889">#4889</a>, 
186   <a href="https://svn.boost.org/trac/boost/ticket/6320">#6320</a>, Locale codecvt_facet not thread safe on Windows. Move 
187   Windows, Mac OS X, locale and codecvt facet back to namespace scope. POSIX 
188   except OS X uses local static initialization (IE lazy) to ensure exceptions 
189   are catchable if environmental variables are misconfigured and to avoid use of 
190   locale(&quot;&quot;) if not actually used.</li>
191   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5652">#5652</a>, 
192   recursive_directory_iterator fails on cyclic symbolic links. Thanks to Daniel 
193   Aarno for the patch.</li>
194   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5653">#5653</a>, 
195   recursive_directory_iterator(error_code) can still throw filesystem_error.</li>
196   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5900">#5900</a>, directory_iterator 
197   access violation on Windows if error is thrown. Thanks to Andreas Eckleder for the patch.</li>
198   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5900#comment:2">#5900 
199   comment 2</a>, a bug in director_iterator construction with error_code argument that 
200   caused increment to be called without the ec argument being passed.</li>
201   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5900">#5989</a> by cleaning up test suite path_test.cpp code even 
202   though the ticket itself was not a defect, and clarifying docs; iteration over a path yields 
203   generic format.</li>
204   <li>Fix <a href="https://svn.boost.org/trac/boost/ticket/5592">#5592</a>, Change Windows codecvt processing from CP_THREAD_ACP to CP_ACP.</li>
205   <li>Operations function fixes for PGI compiler, thanks to Noel Belcourt.</li>
206   <li>Relax permissions test to reflect reality, particularly on the Sandia test 
207   platforms.</li>
208 </ul>
209
210 <h2>1.48.0</h2>
211 <ul>
212   <li>Added operational function <a href="reference.html#canonical">canonical()</a>, 
213   suggested by David Svoboda, who also provided pseudo-code.</li>
214   <li>Added <a href="reference.html#hash_value">hash_value()</a> function for 
215   paths. (Daniel James)</li>
216   <li>Fix path inserter problem (<a href="https://svn.boost.org/trac/boost/ticket/5764">#5764</a>) 
217   reported for QNX6.3.2 host (gcc-3.3.5)</li>
218   <li>Fix problem of locale(&quot;&quot;) exception being thrown before main() starts on 
219   poorly configured (e.g. LANG=&quot;bad name&quot;) POSIX systems. Resolves the most 
220   serious aspect of tickets
221   <a href="https://svn.boost.org/trac/boost/ticket/4688">#4688</a>,
222   <a href="https://svn.boost.org/trac/boost/ticket/5100">#5100</a>,
223   <a href="https://svn.boost.org/trac/boost/ticket/5289">#5289</a>.</li>
224 </ul>
225
226 <h2>1.47.0</h2>
227 <ul>
228   <li>Program file_status.cpp added (V3). See boost-root/libs/filesystem/v3/example. 
229   Useful both as an example and to explore how Boost.Filesystem treats various 
230   status errors.&nbsp; Run &quot;bjam&quot; (NOT &quot;bjam install&quot;) in the example directory 
231   to install in example/bin.</li>
232 </ul>
233
234 <h2>1.46.1</h2>
235
236 <ul>
237   <li>Fix fstream problem for STLPort masquerading as Dinkumware (<a href="https://svn.boost.org/trac/boost/ticket/5217">#5217</a>).</li>
238 </ul>
239
240 <h2>1.46.0</h2>
241 <ul>
242   <li>Version 3 of the library is now the default.</li>
243   <li>IBM vacpp: Workaround for compiler bug affecting iterator_facade. (<a href="https://svn.boost.org/trac/boost/ticket/4912">#4912</a>)</li>
244   <li>Verify, clarify, document that &lt;boost/config/user.hpp&gt; can be used to 
245   specify BOOST_FILESYSTEM_VERSION. (<a href="https://svn.boost.org/trac/boost/ticket/4891">#4891</a>)</li>
246   <li>Replaced C-style assert with BOOST_ASSERT.</li>
247   <li>Undeprecated unique_path(). Instead, add a note mentioning the workaround 
248   for lack of thread safety and possible change to cwd. unique_path() is just 
249   too convenient to deprecate!</li>
250   <li>Cleared several GCC warnings.</li>
251   <li>Changed V2 code to use BOOST_THROW_EXCEPTION.</li>
252   <li>Windows: Fix status() to report non-symlink reparse point correctly.</li>
253   <li>Add <code>symlink_option</code> to <code>recursive_directory_iterator</code>, 
254   allowing control over recursion into directory symlinks. Note that the default 
255   is changed to not recurse into directory symlinks.</li>
256   <li><a href="reference.html">Reference</a> documentation cleanup, including 
257   fixing missing and broken links, and adding missing functions.</li>
258   <li>Miscellaneous implementation code cleanup. </li>
259 </ul>
260 <hr>
261 <p>Revised
262 <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->29 October, 2014<!--webbot bot="Timestamp" endspan i-checksum="38757" --></p>
263 <p>© Copyright Beman Dawes, 2011</p>
264 <p> Use, modification, and distribution are subject to the Boost Software 
265 License, Version 1.0. See <a href="http://www.boost.org/LICENSE_1_0.txt">
266 www.boost.org/LICENSE_1_0.txt</a></p>