* doc/xml/manual/status_cxx2017.xml: Update C++17 status.
* doc/html/*: Regenerate.
From-SVN: r266559
+2018-11-28 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
+ * doc/html/*: Regenerate.
+
2018-11-27 Jonathan Wakely <jwakely@redhat.com>
* testsuite/27_io/filesystem/operations/canonical.cc: Remove
use <code class="option">OPTION=gcc4-compatible</code> to set it to
<code class="literal">0</code>.
This option does not change the library ABI.
- </p></dd><dt><span class="term"><code class="code">--enable-vtable-verify</code>[default]</span></dt><dd><p>Use <code class="code">-fvtable-verify=std</code> to compile the C++
+ </p></dd><dt><span class="term"><code class="code">--with-libstdcxx-lock-policy=OPTION</code></span></dt><dd><p>Sets the lock policy that controls how
+ <code class="classname">shared_ptr</code> reference counting is
+ synchronized.
+ The choice OPTION=atomic enables use of atomics for updates to
+ <code class="classname">shared_ptr</code> reference counts.
+ The choice OPTION=mutex enables use of a mutex to synchronize updates
+ to <code class="classname">shared_ptr</code> reference counts.
+ If the compiler's thread model is "single" then this option has no
+ effect, as no synchronization is used for the reference counts.
+ The default is OPTION=auto, which checks for the availability of
+ compiler built-ins for 2-byte and 4-byte atomic compare-and-swap,
+ and uses OPTION=atomic if they're available, OPTION=mutex otherwise.
+ This option can change the library ABI.
+ If the library is configured to use atomics and user programs are
+ compiled using a target that doesn't natively support the atomic
+ operations (e.g. the library is configured for armv7 and then code
+ is compiled with <code class="option">-march=armv5t</code>) then the program
+ might rely on support in libgcc to provide the atomics.
+ </p></dd><dt><span class="term"><code class="code">--enable-vtable-verify</code>[default]</span></dt><dd><p>Use <code class="code">-fvtable-verify=std</code> to compile the C++
runtime with instrumentation for vtable verification. All virtual
functions in the standard library will be verified at runtime.
Types impacted include <code class="classname">locale</code> and
The Hoard Memory Allocator
</a>
</em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.5"></a><p><span class="title"><em>
- <a class="link" href="http://people.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">
+ <a class="link" href="https://people.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">
Reconsidering Custom Memory Allocation
</a>
</em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.6"></a><p><span class="title"><em>
</td><td align="center"> 7.1 </td><td align="left"> <code class="code">__has_include(<string_view>)</code>,
<code class="code">__cpp_lib_string_view >= 201603</code>
(since 7.3, see Note 1)
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Library Fundamentals V1 TS Components: <code class="code">memory_resource</code> </td><td align="left">
+ </td></tr><tr><td align="left"> Library Fundamentals V1 TS Components: <code class="code">memory_resource</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target="_top">
P0220R1
</a>
- </td><td align="center"> No </td><td align="left"> <code class="code">__has_include(<memory_resource>)</code>,
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__has_include(<memory_resource>)</code>,
<code class="code">__cpp_lib_memory_resource >= 201603</code>
</td></tr><tr><td align="left"> Library Fundamentals V1 TS Components: <code class="code">apply</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" target="_top">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0426r1.html" target="_top">
P0426R1
</a>
- </td><td align="center"> 8 </td><td align="left"><code class="code"> __cpp_lib_constexpr_char_traits >= 201611 </code></td></tr><tr><td align="left"> Integrating <code class="code">std::string_view</code> and <code class="code">std::string</code> </td><td align="left">
+ </td><td align="center"> 8.1 </td><td align="left"><code class="code"> __cpp_lib_constexpr_char_traits >= 201611 </code></td></tr><tr><td align="left"> Integrating <code class="code">std::string_view</code> and <code class="code">std::string</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf" target="_top">
P0254R2
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html" target="_top">
P0218R1
</a>
- </td><td align="center"> 8 </td><td align="left"><code class="code"> __has_include(<filesystem>) </code>,
+ </td><td align="center"> 8.1 </td><td align="left"><code class="code"> __has_include(<filesystem>) </code>,
<code class="code"> __cpp_lib_filesystem >= 201603 </code>
(requires linking with <code class="code">-lstdc++fs</code>)
</td></tr><tr><td align="left"> Relative Paths for Filesystem</td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0219r1.html" target="_top">
P0219R1
</a>
- </td><td align="center"> 8 </td><td align="left"><code class="code"> __cpp_lib_filesystem >= 201606 </code></td></tr><tr><td align="left"> Adapting string_view by filesystem paths </td><td align="left">
+ </td><td align="center"> 8.1 </td><td align="left"><code class="code"> __cpp_lib_filesystem >= 201606 </code></td></tr><tr><td align="left"> Adapting string_view by filesystem paths </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0392r0.pdf" target="_top">
P0392R0
</a>
- </td><td align="center"> 8 </td><td align="left"><code class="code"> __cpp_lib_filesystem >= 201606 </code></td></tr><tr><td align="left"> Directory Entry Caching for Filesystem </td><td align="left">
+ </td><td align="center"> 8.1 </td><td align="left"><code class="code"> __cpp_lib_filesystem >= 201606 </code></td></tr><tr><td align="left"> Directory Entry Caching for Filesystem </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0317r1.html" target="_top">
P0317R1
</a>
- </td><td align="center"> 8 </td><td align="left"><code class="code"> __cpp_lib_filesystem >= 201703 </code></td></tr><tr><td align="left"> constexpr <code class="code">atomic<T>::is_always_lock_free</code> </td><td align="left">
+ </td><td align="center"> 8.1 </td><td align="left"><code class="code"> __cpp_lib_filesystem >= 201703 </code></td></tr><tr><td align="left"> constexpr <code class="code">atomic<T>::is_always_lock_free</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0152r1.html" target="_top">
P0152R1
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html" target="_top">
P0067R5
</a>
- </td><td align="center"> 8 (only integral types supported) </td><td align="left"><code class="code"> __has_include(<charconv>) </code>
+ </td><td align="center"> 8.1 (only integral types supported) </td><td align="left"><code class="code"> __has_include(<charconv>) </code>
<code class="code"> __cpp_lib_to_chars >= 201611 </code></td></tr></tbody></table></div></div><br class="table-break" /><p>
Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the
<code class="code">__cpp_lib</code> macro is not defined, and compilation will fail if the
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4521.html" target="_top">
N4521
</a>
- </td><td align="left"> Merge Fundamentals V1 into V2 </td><td align="left">N</td><td align="left">Library Fundamentals 2 TS</td></tr><tr><td align="left">
+ </td><td align="left"> Merge Fundamentals V1 into V2 </td><td align="left">
+ N (components from V1 are still in namespace
+ <code class="code">fundamentals_v1</code>)
+ </td><td align="left">Library Fundamentals 2 TS</td></tr><tr><td align="left">
<a class="link" href="http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/p0013r1.html" target="_top">
P0013R1
</a>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Library Fundamentals V1 TS Components: <code>memory_resource</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html">
P0220R1
</link>
</entry>
- <entry align="center"> No </entry>
+ <entry align="center"> 9.1 </entry>
<entry> <code>__has_include(<memory_resource>)</code>,
<code>__cpp_lib_memory_resource >= 201603</code>
</entry>
P0426R1
</link>
</entry>
- <entry align="center"> 8 </entry>
+ <entry align="center"> 8.1 </entry>
<entry><code> __cpp_lib_constexpr_char_traits >= 201611 </code></entry>
</row>
P0218R1
</link>
</entry>
- <entry align="center"> 8 </entry>
+ <entry align="center"> 8.1 </entry>
<entry><code> __has_include(<filesystem>) </code>,
<code> __cpp_lib_filesystem >= 201603 </code>
(requires linking with <code>-lstdc++fs</code>)
P0219R1
</link>
</entry>
- <entry align="center"> 8 </entry>
+ <entry align="center"> 8.1 </entry>
<entry><code> __cpp_lib_filesystem >= 201606 </code></entry>
</row>
P0392R0
</link>
</entry>
- <entry align="center"> 8 </entry>
+ <entry align="center"> 8.1 </entry>
<entry><code> __cpp_lib_filesystem >= 201606 </code></entry>
</row>
P0317R1
</link>
</entry>
- <entry align="center"> 8 </entry>
+ <entry align="center"> 8.1 </entry>
<entry><code> __cpp_lib_filesystem >= 201703 </code></entry>
</row>
P0067R5
</link>
</entry>
- <entry align="center"> 8 (only integral types supported) </entry>
+ <entry align="center"> 8.1 (only integral types supported) </entry>
<entry><code> __has_include(<charconv>) </code>
<code> __cpp_lib_to_chars >= 201611 </code></entry>
</row>
</link>
</entry>
<entry> Merge Fundamentals V1 into V2 </entry>
- <entry>N</entry>
+ <entry>
+ N (components from V1 are still in namespace
+ <code>fundamentals_v1</code>)
+ </entry>
<entry>Library Fundamentals 2 TS</entry>
</row>