wwwdocs: Clarify experimental status of C++17 prior to GCC 9

Message ID 20230322104230.343644-1-jwakely@redhat.com
State Committed
Headers
Series wwwdocs: Clarify experimental status of C++17 prior to GCC 9 |

Commit Message

Jonathan Wakely March 22, 2023, 10:42 a.m. UTC
  We don't currently have a single page where you can find out when
support for a given standard became non-experimental (you have to look
through all the gcc-X/changes.html pages to find it). I think we should
have that info on the cxx-status.html page. This adds it for C++17, and
we can do the same for C++20 when we declare that stable.

OK for wwwdocs?

-- >8 --

Also link to library docs for C++20 and add a cxx2a anchor which is used
by some old links.
---
 htdocs/projects/cxx-status.html | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)
  

Comments

Jason Merrill March 22, 2023, 3:05 p.m. UTC | #1
On 3/22/23 06:42, Jonathan Wakely wrote:
> We don't currently have a single page where you can find out when
> support for a given standard became non-experimental (you have to look
> through all the gcc-X/changes.html pages to find it). I think we should
> have that info on the cxx-status.html page. This adds it for C++17, and
> we can do the same for C++20 when we declare that stable.
> 
> OK for wwwdocs?

OK.

> -- >8 --
> 
> Also link to library docs for C++20 and add a cxx2a anchor which is used
> by some old links.
> ---
>   htdocs/projects/cxx-status.html | 20 ++++++++++++--------
>   1 file changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/htdocs/projects/cxx-status.html b/htdocs/projects/cxx-status.html
> index b5362bba..7f59e5a2 100644
> --- a/htdocs/projects/cxx-status.html
> +++ b/htdocs/projects/cxx-status.html
> @@ -402,10 +402,12 @@
>       -->
>     </table>
>   
> -  <h2 id="cxx20">C++20 Support in GCC</h2>
> +  <h2 id="cxx20"><a id="cxx2a">C++20 Support in GCC</h2>
>   
>     <p>GCC has experimental support for the latest revision of the C++
> -  standard, which was published in 2020.</p>
> +  standard, which was published in 2020.
> +  The status of C++20 library features is described in
> +  <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2020">the library documentation</a>.</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>
> @@ -988,14 +990,16 @@
>   
>     <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
> +  The status of C++17 library features is described in
>     <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2017">the library documentation</a>.
>     </p>
>   
> -  <p>C++17 features are available since GCC 5.  This mode is the default
> -  in GCC 11; it can be explicitly selected with the <code>-std=c++17</code>
> -  command-line flag, or <code>-std=gnu++17</code> to enable GNU extensions
> -  as well.</p>
> +  <p>C++17 mode is the default since GCC 11; it can be explicitly selected
> +  with the <code>-std=c++17</code> command-line flag, or
> +  <code>-std=gnu++17</code> to enable GNU extensions as well.
> +  Some C++17 features are available since GCC 5, but support was experimental
> +  and the ABI of C++17 features was not stable until GCC 9.
> +  </p>
>   
>     <h2>C++17 Language Features</h2>
>   
> @@ -1315,7 +1319,7 @@
>   
>     <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
> +  <p>This mode is the default in GCC 6.1 up until GCC 10 (inclusive); it can
>     be explicitly selected with the <code>-std=c++14</code> command-line flag,
>     or <code>-std=gnu++14</code> to enable GNU extensions as well.</p>
>
  
Gerald Pfeifer May 11, 2023, 8:38 p.m. UTC | #2
On Wed, 22 Mar 2023, Jonathan Wakely via Gcc-patches wrote:
> We don't currently have a single page where you can find out when
> support for a given standard became non-experimental (you have to look
> through all the gcc-X/changes.html pages to find it). I think we should
> have that info on the cxx-status.html page. This adds it for C++17, and
> we can do the same for C++20 when we declare that stable.

I'm not sure why I only noticed this today. Just a little technicality
to fix this page. 

Pushed.

Gerald


Commit a09e584729 introduced an <a id="..."> without corresponding </a>.
---
 htdocs/projects/cxx-status.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/projects/cxx-status.html b/htdocs/projects/cxx-status.html
index 7f59e5a2..675fbcd0 100644
--- a/htdocs/projects/cxx-status.html
+++ b/htdocs/projects/cxx-status.html
@@ -402,7 +402,7 @@
     -->
   </table>
 
-  <h2 id="cxx20"><a id="cxx2a">C++20 Support in GCC</h2>
+  <h2 id="cxx20"><a id="cxx2a">C++20 Support in GCC</a></h2>
 
   <p>GCC has experimental support for the latest revision of the C++
   standard, which was published in 2020.
  

Patch

diff --git a/htdocs/projects/cxx-status.html b/htdocs/projects/cxx-status.html
index b5362bba..7f59e5a2 100644
--- a/htdocs/projects/cxx-status.html
+++ b/htdocs/projects/cxx-status.html
@@ -402,10 +402,12 @@ 
     -->
   </table>
 
-  <h2 id="cxx20">C++20 Support in GCC</h2>
+  <h2 id="cxx20"><a id="cxx2a">C++20 Support in GCC</h2>
 
   <p>GCC has experimental support for the latest revision of the C++
-  standard, which was published in 2020.</p>
+  standard, which was published in 2020.
+  The status of C++20 library features is described in
+  <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2020">the library documentation</a>.</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>
@@ -988,14 +990,16 @@ 
 
   <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
+  The status of C++17 library features is described in
   <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2017">the library documentation</a>.
   </p>
 
-  <p>C++17 features are available since GCC 5.  This mode is the default
-  in GCC 11; it can be explicitly selected with the <code>-std=c++17</code>
-  command-line flag, or <code>-std=gnu++17</code> to enable GNU extensions
-  as well.</p>
+  <p>C++17 mode is the default since GCC 11; it can be explicitly selected
+  with the <code>-std=c++17</code> command-line flag, or
+  <code>-std=gnu++17</code> to enable GNU extensions as well.
+  Some C++17 features are available since GCC 5, but support was experimental
+  and the ABI of C++17 features was not stable until GCC 9.
+  </p>
 
   <h2>C++17 Language Features</h2>
 
@@ -1315,7 +1319,7 @@ 
 
   <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
+  <p>This mode is the default in GCC 6.1 up until GCC 10 (inclusive); it can
   be explicitly selected with the <code>-std=c++14</code> command-line flag,
   or <code>-std=gnu++14</code> to enable GNU extensions as well.</p>