[wwwdocs] Re: C++ Concepts available in trunk?

2015-08-13 Thread Jonathan Wakely
On 12 August 2015 at 23:54, Dijk, J. van wrote:
> Thanks for the clarification. I hope the attached patch against current
> wwwdocs will be of use (only the name of the feature test macro is missing
> in the new file cxx1z.html;  did not manage to find that.)

Thanks, I've committed the attached change to the wwwdocs repo.

I'll add the other new C++17 features to it later today.
Index: htdocs/gcc-6/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
retrieving revision 1.19
diff -u -r1.19 changes.html
--- htdocs/gcc-6/changes.html   31 Jul 2015 12:06:47 -  1.19
+++ htdocs/gcc-6/changes.html   13 Aug 2015 08:35:44 -
@@ -68,8 +68,33 @@
 C++
   
 The default mode has been changed to -std=gnu++14.
+C++ Concepts are now supported when compiling with
+-std=gnu++1z or -std=c++1z.
   
 
+Runtime Library (libstdc++)
+  
+ Experimental support for C++17, including the following
+  new features:
+  
+std::uncaught_exceptions function (this is also
+available for -std=gnu++NN modes); 
+new member functions try_emplace and
+insert_or_assign for unique_key maps;
+non-member functions std::size,
+std::empty, and std::data for
+accessing containers and arrays;
+std::shared_mutex;
+std::void_t and std::bool_constant
+utilities. 
+  
+
+An experimental implementation of the File System TS.
+Experimental support for most features of the second version of the
+Library Fundamentals TS.
+  
+
+
 Fortran
   
 The MATMUL intrinsic is now inlined for straightforward
Index: htdocs/projects/cxx1y.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1y.html,v
retrieving revision 1.23
diff -u -r1.23 cxx1y.html
--- htdocs/projects/cxx1y.html  19 Apr 2015 18:21:43 -  1.23
+++ htdocs/projects/cxx1y.html  13 Aug 2015 08:35:44 -
@@ -167,23 +167,9 @@
   C++14 Library Features
 
   The status of the library implementation can be tracked in this
-  https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014";>table
+  https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014";>table.
   
 
-  Development Branches
-
-  C++1z Concepts Branch
-
-Concepts was a major feature planned for the C++11 standard, but it was
-eventually dropped due to concerns about both the description and
-implementability.  Since the publication of C++11, people have been working
-on scaled-down versions of the concepts feature.  One approach to concepts,
-known as http://concepts.axiomatics.org/~ans/";>Concepts Lite,
-has been prototyped in GCC and seems likely to be published as a Technical
-Specification in 2015.  The initial implementation is available from the
-link above, and it is in the process of being cleaned up and moved into
-the c++-concepts branch.
-  
 
 
 
Index: htdocs/projects/cxx1z.html
===
RCS file: htdocs/projects/cxx1z.html
diff -N htdocs/projects/cxx1z.html
--- /dev/null   1 Jan 1970 00:00:00 -
+++ htdocs/projects/cxx1z.html  13 Aug 2015 08:35:44 -
@@ -0,0 +1,66 @@
+
+
+  C++1z Support in GCC
+
+  /*  */
+
+
+
+
+  C++1z Support in GCC
+
+  GCC has experimental support for the next revision of the C++
+  standard, which is expected to be published in 2017.
+
+  C++1z features are available as part of the "mainline" GCC
+compiler in the trunk of
+GCC's Subversion
+  repository and in GCC 4.9 and later. To enable C++1z
+  support, add the command-line parameter -std=c++1z
+  to your g++ command line. Or, to enable GNU
+  extensions in addition to C++1z extensions,
+  add -std=gnu++1z to your g++ command
+  line.
+
+  Important: Because the final ISO C++1z standard is
+  still evolving, GCC's support is experimental. No attempt
+  will be made to maintain backward compatibility with implementations of
+  C++1y features that do not reflect the final standard.
+
+C++1z Language Features
+
+  The following table lists new language features that have been
+  accepted into the C++1z working draft or an ISO TS. The "Proposal" column
+  provides a link to the ISO C++ committee proposal that describes the
+  feature, while the "Available in GCC?" column indicates the first
+  version of GCC that contains an implementation of this feature (if
+  it has been implemented).
+
+  
+
+  Language Feature
+  Proposal
+  Available in GCC?
+  SD-6 Feature Test
+
+
+  C++ concepts
+  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf";>N4377
+  6
+   __cpp_concepts >= 201507 
+
+  
+
+  C++1z

Re: [wwwdocs] Re: C++ Concepts available in trunk?

2015-08-13 Thread Jonathan Wakely
Here's the patch for the rest of the C++17 support.

On 13 August 2015 at 09:58, Jonathan Wakely  wrote:
> On 12 August 2015 at 23:54, Dijk, J. van wrote:
>> Thanks for the clarification. I hope the attached patch against current
>> wwwdocs will be of use (only the name of the feature test macro is missing
>> in the new file cxx1z.html;  did not manage to find that.)
>
> Thanks, I've committed the attached change to the wwwdocs repo.
>
> I'll add the other new C++17 features to it later today.
Index: htdocs/projects/cxx1z.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.1
diff -u -r1.1 cxx1z.html
--- htdocs/projects/cxx1z.html  13 Aug 2015 08:36:07 -  1.1
+++ htdocs/projects/cxx1z.html  13 Aug 2015 09:24:13 -
@@ -19,7 +19,7 @@
   C++1z features are available as part of the "mainline" GCC
 compiler in the trunk of
 GCC's Subversion
-  repository and in GCC 4.9 and later. To enable C++1z
+  repository and in GCC 5 and later. To enable C++1z
   support, add the command-line parameter -std=c++1z
   to your g++ command line. Or, to enable GNU
   extensions in addition to C++1z extensions,
@@ -48,9 +48,58 @@
   SD-6 Feature Test
 
 
+   Removing trigraphs 
+  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html";>N4086
 
+  5.1
+   
+
+
+  u8 character literals 
+  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html";>N4267
 
+   6 
+   __cpp_unicode_characters >= 201411 
+
+
+   Folding expressions
+  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html";>N4295
 
+   6 
+   __cpp_fold_expressions >= 201411
+
+
+   Attributes for namespaces and enumerators 
+  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html";>N4266
 
+  
+4.9 (namespaces)  6 (enumerators)
+  
+  
+__cpp_namespace_attributes >= 201411 
+__cpp_enumerator_attributes >= 201411
+  
+
+
+   Nested namespace definitions
+  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html";>N4230
 
+  No
+   __cpp_nested_namespace_definitions >= 201411
+
+
+   Allow constant evaluation for all non-type template arguments
+  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html";>N4268
 
+  No
+  __cpp_nontype_template_args >= 201411 
+
+
+
   C++ concepts
   http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf";>N4377
-  6
+   6 
__cpp_concepts >= 201507 
 
   


Re: [wwwdocs] Re: C++ Concepts available in trunk?

2015-08-13 Thread Jonathan Wakely
And a small correction.


On 13 August 2015 at 10:24, Jonathan Wakely  wrote:
> Here's the patch for the rest of the C++17 support.
>
> On 13 August 2015 at 09:58, Jonathan Wakely  wrote:
>> On 12 August 2015 at 23:54, Dijk, J. van wrote:
>>> Thanks for the clarification. I hope the attached patch against current
>>> wwwdocs will be of use (only the name of the feature test macro is missing
>>> in the new file cxx1z.html;  did not manage to find that.)
>>
>> Thanks, I've committed the attached change to the wwwdocs repo.
>>
>> I'll add the other new C++17 features to it later today.
Index: htdocs/projects/cxx1z.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.2
diff -u -r1.2 cxx1z.html
--- htdocs/projects/cxx1z.html  13 Aug 2015 09:24:30 -  1.2
+++ htdocs/projects/cxx1z.html  13 Aug 2015 14:31:40 -
@@ -62,7 +62,7 @@
 
Folding expressions
   http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html";>N4295
 
-   6 
+   No 
__cpp_fold_expressions >= 201411
 
 


Re: [wwwdocs] Re: C++ Concepts available in trunk?

2015-09-07 Thread Gerald Pfeifer
Jonathan,

On Thu, 13 Aug 2015, Jonathan Wakely wrote:
> Thanks, I've committed the attached change to the wwwdocs repo.

looking at this I noticed a reference to "Subversion", when in
general we have tried to minimize references to specific version
control systems.

And I noticed we can be a little less verbose later in that
section.

And then I noticed, those two versions actually have been
propagating from cxx0x.html to cxx0y.html to cxx0z.html over
the years, so I made essentially the same set of simplications
to all three of them.

What do you think?  I have not committed this yet.

Gerald

Index: cxx0x.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx0x.html,v
retrieving revision 1.67
diff -u -r1.67 cxx0x.html
--- cxx0x.html  26 Jan 2015 11:12:43 -  1.67
+++ cxx0x.html  7 Sep 2015 10:47:28 -
@@ -18,14 +18,13 @@
   compiler to bring feature-complete C++11 to C++ programmers.
 
   C++11 features are available as part of the "mainline" GCC
-compiler in the trunk of
-GCC's Subversion
-  repository and in GCC 4.3 and later. To enable C++0x
+compiler in the trunk of GCC's repository
+and in GCC 4.3 and later. To enable C++0x
   support, add the command-line parameter -std=c++0x
   to your g++ command line. Or, to enable GNU
-  extensions in addition to C++0x extensions,
-  add -std=gnu++0x to your g++ command
-  line.  GCC 4.7 and later support -std=c++11 and
+extensions in addition to C++0x extensions,
+add -std=gnu++0x.
+  GCC 4.7 and later support -std=c++11 and
   -std=gnu++11 as well.
 
   Important: GCC's support for C++11 is still
Index: cxx1y.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1y.html,v
retrieving revision 1.24
diff -u -r1.24 cxx1y.html
--- cxx1y.html  13 Aug 2015 08:36:07 -  1.24
+++ cxx1y.html  7 Sep 2015 10:47:28 -
@@ -17,14 +17,12 @@
   standard, which was published in 2014.
 
   C++14 features are available as part of the "mainline" GCC
-compiler in the trunk of
-GCC's Subversion
-  repository and in GCC 4.8 and later. To enable C++14
+compiler in the trunk of GCC's repository
+and in GCC 4.8 and later. To enable C++14
   support, add the command-line parameter -std=c++14
   to your g++ command line. Or, to enable GNU
-  extensions in addition to C++14 extensions,
-  add -std=gnu++14 to your g++ command
-  line.
+extensions in addition to C++14 extensions,
+add -std=gnu++14.
 
   Important: Because the final ISO C++14 standard was only
   recently published, GCC's support is experimental.  No 
attempt
Index: cxx1z.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.3
diff -u -r1.3 cxx1z.html
--- cxx1z.html  13 Aug 2015 14:32:10 -  1.3
+++ cxx1z.html  7 Sep 2015 10:47:28 -
@@ -17,14 +17,12 @@
   standard, which is expected to be published in 2017.
 
   C++1z features are available as part of the "mainline" GCC
-compiler in the trunk of
-GCC's Subversion
-  repository and in GCC 5 and later. To enable C++1z
+compiler in the trunk of GCC's repository
+and in GCC 5 and later. To enable C++1z
   support, add the command-line parameter -std=c++1z
   to your g++ command line. Or, to enable GNU
   extensions in addition to C++1z extensions,
-  add -std=gnu++1z to your g++ command
-  line.
+add -std=gnu++1z.
 
   Important: Because the final ISO C++1z standard is
   still evolving, GCC's support is experimental. No attempt


Re: [wwwdocs] Re: C++ Concepts available in trunk?

2015-09-07 Thread Jonathan Wakely
On 7 September 2015 at 11:51, Gerald Pfeifer wrote:
> Jonathan,
>
> On Thu, 13 Aug 2015, Jonathan Wakely wrote:
>> Thanks, I've committed the attached change to the wwwdocs repo.
>
> looking at this I noticed a reference to "Subversion", when in
> general we have tried to minimize references to specific version
> control systems.
>
> And I noticed we can be a little less verbose later in that
> section.
>
> And then I noticed, those two versions actually have been
> propagating from cxx0x.html to cxx0y.html to cxx0z.html over
> the years, so I made essentially the same set of simplications
> to all three of them.
>
> What do you think?  I have not committed this yet.

Nice, I think they are good improvements.


Re: [wwwdocs] Re: C++ Concepts available in trunk?

2015-09-07 Thread Gerald Pfeifer
On Mon, 7 Sep 2015, Jonathan Wakely wrote:
> Nice, I think they are good improvements.

Cool.  I committed this, only to notice another change.

GCC stands for GNU Compiler Collection, to GCC compiler would
expand to GNU Compiler Collection compiler, which feels a bit
redundant. ;-)

I'll wait a bit before committing this in case you or anyone
else has comments.

Gerald

Index: cxx0x.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx0x.html,v
retrieving revision 1.68
diff -u -r1.68 cxx0x.html
--- cxx0x.html  7 Sep 2015 13:09:09 -   1.68
+++ cxx0x.html  7 Sep 2015 20:17:10 -
@@ -17,8 +17,8 @@
   implement new C++11 features in GCC, and made it the first
   compiler to bring feature-complete C++11 to C++ programmers.
 
-  C++11 features are available as part of the "mainline" GCC
-compiler in the trunk of GCC's repository
+  C++11 features are available as part of "mainline" GCC
+in the trunk of GCC's repository
 and in GCC 4.3 and later. To enable C++0x
   support, add the command-line parameter -std=c++0x
   to your g++ command line. Or, to enable GNU
Index: cxx1y.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1y.html,v
retrieving revision 1.25
diff -u -r1.25 cxx1y.html
--- cxx1y.html  7 Sep 2015 13:09:10 -   1.25
+++ cxx1y.html  7 Sep 2015 20:17:10 -
@@ -16,8 +16,8 @@
   GCC has support for the latest revision of the C++
   standard, which was published in 2014.
 
-  C++14 features are available as part of the "mainline" GCC
-compiler in the trunk of GCC's repository
+  C++14 features are available as part of "mainline" GCC
+in the trunk of GCC's repository
 and in GCC 4.8 and later. To enable C++14
   support, add the command-line parameter -std=c++14
   to your g++ command line. Or, to enable GNU
Index: cxx1z.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/cxx1z.html,v
retrieving revision 1.4
diff -u -r1.4 cxx1z.html
--- cxx1z.html  7 Sep 2015 13:09:10 -   1.4
+++ cxx1z.html  7 Sep 2015 20:17:10 -
@@ -16,8 +16,8 @@
   GCC has experimental support for the next revision of the C++
   standard, which is expected to be published in 2017.
 
-  C++1z features are available as part of the "mainline" GCC
-compiler in the trunk of GCC's repository
+  C++1z features are available as part of "mainline" GCC
+in the trunk of GCC's repository
 and in GCC 5 and later. To enable C++1z
   support, add the command-line parameter -std=c++1z
   to your g++ command line. Or, to enable GNU