diff mbox series

doc: reflect the publication of C++20 in invoke.texi and standards.texi

Message ID 20201216183644.GJ3788@tucnak
State New
Headers show
Series doc: reflect the publication of C++20 in invoke.texi and standards.texi | expand

Commit Message

Jakub Jelinek Dec. 16, 2020, 6:36 p.m. UTC
Hi!

Jonathan mentioned on IRC that ISO/IEC 14882:2020 has been published
yesterday (and indeed it appears on www.iso.org for sale).
I think we should reflect that in our documentation and in cxx-status.html,
patches attached.
I understand we want to keep C++20 support experimental even in GCC 11,
though not sure if we should still talk about "almost certainly change in
incompatible ways" rather than that it might change in incompatible ways.

If the library is feature complete for C++17, we need to adjust the wording
slightly too.

2020-12-16  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (-std=c++20): Adjust for the publication of
	ISO 14882:2020 standard.
	* standards.texi: Likewise.


	Jakub
diff --git a/htdocs/projects/cxx-status.html b/htdocs/projects/cxx-status.html
index 403d6740..3d3ed0fe 100644
--- a/htdocs/projects/cxx-status.html
+++ b/htdocs/projects/cxx-status.html
@@ -33,8 +33,8 @@
 
   <h2 id="cxx20">C++20 Support in GCC</h2>
 
-  <p>GCC has experimental support for the next revision of the C++
-  standard, which is expected to be published in 2020.</p>
+  <p>GCC has experimental support for the latest revision of the C++
+  standard, which was published in 2020.</p>
 
   <p>C++20 features are available since GCC 8. To enable C++20
       support, add the command-line parameter <code>-std=c++20</code>
@@ -44,9 +44,7 @@
     add <code>-std=gnu++20</code>.</p>
 
   <p><strong>Important</strong>: Because the ISO C++20 standard is
-  still evolving, GCC's support is <strong>experimental</strong>. No attempt
-  will be made to maintain backward compatibility with implementations of
-  C++20 features that do not reflect the final standard.</p>
+  very recent, GCC's support is <strong>experimental</strong>.</p>
 
   <h2>C++20 Language Features</h2>
 
@@ -575,7 +573,7 @@
 
   <h2 id="cxx17">C++17 Support in GCC</h2>
 
-  <p>GCC has almost full support for the latest revision of the C++
+  <p>GCC has almost full support for the previous revision of the C++
   standard, which was published in 2017.
   Some library features are missing or incomplete, as described in
   <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2017">the library documentation</a>.
@@ -902,8 +900,7 @@
 
   <h2 id="cxx14">C++14 Support in GCC</h2>
 
-  <p>GCC has full support for the previous revision of the C++
-  standard, which was published in 2014.</p>
+  <p>GCC has full support for the of the 2014 C++ standard.</p>
 
   <p>This mode is the default in GCC 6.1 up until GCC 10 (including); it can
   be explicitly selected with the <code>-std=c++14</code> command-line flag,

Comments

Jonathan Wakely Dec. 16, 2020, 7:21 p.m. UTC | #1
On 16/12/20 19:36 +0100, Jakub Jelinek wrote:
>Hi!
>
>Jonathan mentioned on IRC that ISO/IEC 14882:2020 has been published
>yesterday (and indeed it appears on www.iso.org for sale).
>I think we should reflect that in our documentation and in cxx-status.html,
>patches attached.
>I understand we want to keep C++20 support experimental even in GCC 11,
>though not sure if we should still talk about "almost certainly change in
>incompatible ways" rather than that it might change in incompatible ways.
>
>If the library is feature complete for C++17, we need to adjust the wording
>slightly too.

It isn't. I still need to finished reviewing Patrick's std::to_chars
patch.
diff mbox series

Patch

--- gcc/doc/invoke.texi.jj	2020-12-16 13:05:58.996994744 +0100
+++ gcc/doc/invoke.texi	2020-12-16 19:12:07.794336129 +0100
@@ -2418,8 +2418,8 @@  The name @samp{gnu++1z} is deprecated.
 
 @item c++20
 @itemx c++2a
-The next revision of the ISO C++ standard, planned for
-2020.  Support is highly experimental, and will almost certainly
+The 2020 ISO C++ standard plus amendments.
+Support is highly experimental, and will almost certainly
 change in incompatible ways in future releases.
 
 @item gnu++20
--- gcc/doc/standards.texi.jj	2020-07-28 15:39:09.874758070 +0200
+++ gcc/doc/standards.texi	2020-12-16 19:18:28.421078276 +0100
@@ -221,11 +221,18 @@  To select this standard in GCC, use the
 
 The C++ language was further revised in 2017 and ISO/IEC 14882:2017 was
 published.  This is referred to as C++17, and before publication was
-often referred to as C++1z.  GCC supports all the changes in the new
+often referred to as C++1z.  GCC supports all the changes in that
 specification.  For further details see
-@uref{https://gcc.gnu.org/projects/@/cxx-status.html#cxx1z}.  Use the option
+@uref{https://gcc.gnu.org/projects/@/cxx-status.html#cxx17}.  Use the option
 @option{-std=c++17} to select this variant of C++.
 
+Another revised ISO C++ standard was published in 2020 as ISO/IEC
+14882:2020, and is referred to as C++20; before its publication it was
+sometimes referred to as C++2a.  GCC supports most of the changes in the
+new specification.  For further details see
+@uref{https://gcc.gnu.org/projects/@/cxx-status.html@cxx20}.
+To select this standard in GCC, use the option @option{-std=c++20}.
+
 More information about the C++ standards is available on the ISO C++
 committee's web site at @uref{http://www.open-std.org/@/jtc1/@/sc22/@/wg21/}.
 
@@ -243,7 +250,8 @@  select an extended version of the C++ la
 @option{-std=gnu++98} (for C++98 with GNU extensions), or
 @option{-std=gnu++11} (for C++11 with GNU extensions), or
 @option{-std=gnu++14} (for C++14 with GNU extensions), or
-@option{-std=gnu++17} (for C++17 with GNU extensions).  
+@option{-std=gnu++17} (for C++17 with GNU extensions), or
+@option{-std=gnu++20} (for C++20 with GNU extensions).
 
 The default, if
 no C++ language dialect options are given, is @option{-std=gnu++17}.