Re: Patch ping (Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html)

2019-01-21 Thread Jonathan Wakely

On 21/01/19 17:36 +0100, Jakub Jelinek wrote:

On Mon, Jan 21, 2019 at 04:11:04PM +, Jonathan Wakely wrote:

> I'd like to ping this patch.

For P0941R2 I think we can just say it's supported. For the library
docs I said we support it since GCC 5.1 because that's when we started
defining feature test macros. The point of the paper is to define
macros for the features that are supported, and we've been doing that
for years. If a macro is missing, it's because we don't support the
feature yet, and that's a correct implementation of the macro!


So what about saying it is supported since e.g. 5 when __has_cpp_attribute
support has been added (or 4.9 when first __cpp_* predefined macros were
added)?  Like below.
What about the rest, ok for wwwdocs?


LGTM.



Re: Patch ping (Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html)

2019-01-21 Thread Jakub Jelinek
On Mon, Jan 21, 2019 at 04:11:04PM +, Jonathan Wakely wrote:
> > I'd like to ping this patch.
> 
> For P0941R2 I think we can just say it's supported. For the library
> docs I said we support it since GCC 5.1 because that's when we started
> defining feature test macros. The point of the paper is to define
> macros for the features that are supported, and we've been doing that
> for years. If a macro is missing, it's because we don't support the
> feature yet, and that's a correct implementation of the macro!

So what about saying it is supported since e.g. 5 when __has_cpp_attribute
support has been added (or 4.9 when first __cpp_* predefined macros were
added)?  Like below.
What about the rest, ok for wwwdocs?

--- htdocs/projects/cxx-status.html.jj  2019-01-14 12:18:18.792043123 +0100
+++ htdocs/projects/cxx-status.html 2019-01-21 17:34:41.345489056 +0100
@@ -115,7 +115,7 @@
 
Range-based for statements with initializer 
   http://wg21.link/p0614r1;>P0614R1 
-   9 
+   9 

 
 
@@ -127,28 +127,28 @@
 
ADL and function templates that are not visible 
   http://wg21.link/p0846r0;>P0846R0 
-   9 
+   9 

 
 
const mismatch with defaulted copy constructor 
   http://wg21.link/p0641r2;>P0641R2 
-   9 
+   9 

 
 
Less eager instantiation of constexpr functions 
   http://wg21.link/p0859r0;>P0859R0
-   5.2 (mostly)9 (P0859R0) 
+   5.2 (mostly) 9 (P0859R0) 

 
 
Consistent comparison (operator=) 
   http://wg21.link/p0515r3;>P0515R3
-   http://wg21.link/P0905r1;>P0905R1
+   http://wg21.link/p0905r1;>P0905R1
http://wg21.link/p1120r0;>P1120R0
No 
-   
+   __cpp_impl_three_way_comparison = 201711 
 
 
Access checking on specializations 
@@ -159,19 +159,19 @@
 
Default constructible and assignable stateless lambdas 
   http://wg21.link/p0624r2;>P0624R2
-   9 
+   9 

 
 
Lambdas in unevaluated contexts 
   http://wg21.link/p0315r4;>P0315R4
-   9 
+   9 

 
 
Language support for empty objects 
   http://wg21.link/p0840r2;>P0840R2
-   9 
+   9 

 
 
@@ -195,32 +195,32 @@
 
Down with typename! 
   http://wg21.link/p0634r3;>P0634R3
-   9 
+   9 

 
 
Allow pack expansion in lambda init-capture 
   http://wg21.link/p0780r2;>P0780R2
-   9 
+   9 

 
 
Proposed wording for likely and unlikely attributes 
   http://wg21.link/p0479r5;>P0479R5
-   9 
+   9 

 
 
Deprecate implicit capture of this via [=] 
   http://wg21.link/p0806r2;>P0806R2
-   9 
+   9 

 
 
Class Types in Non-Type Template Parameters 
   http://wg21.link/p0732r2;>P0732R2
-   9 
-   
+   9 
+   __cpp_nontype_template_parameter_class = 201806 
 
 
Atomic Compare-and-Exchange with Padding Bits 
@@ -231,19 +231,19 @@
 
Efficient sized delete for variable sized classes 
   http://wg21.link/p0722r3;>P0722R3
-   9 
-   
+   9 
+   __cpp_impl_destroying_delete = 201806 
 
 
Allowing Virtual Function Calls in Constant Expressions 
   http://wg21.link/p1064r0;>P1064R0
-   9 
+   9 

 
 
Prohibit aggregates with user-declared constructors 
   http://wg21.link/p1008r1;>P1008R1
-   9 
+   9 

 
 
@@ -256,20 +256,20 @@
 
explicit(bool) 
   http://wg21.link/p0892r2;>P0892R2
-   9 
-   
+   9 
+   __cpp_conditional_explicit = 201806 
 
 
Signed integers are two's complement 
   http://wg21.link/p1236r1;>P1236R1
-   9 
+   9 

 
 
char8_t 
   http://wg21.link/p0482r6;>P0482R6
No 
-   
+   __cpp_char8_t = 201811 
 
 
Immediate functions (consteval) 
@@ -280,23 +280,30 @@
 
std::is_constant_evaluated 
   http://wg21.link/p0595r2;>P0595R2
-   9 
+   9 

 
 
Nested inline namespaces 
   http://wg21.link/p1094r2;>P1094R2
-   9 
+   9 

 
 
-   Relaxations of constexpr restrictions
+   Relaxations of constexpr restrictions 
   http://wg21.link/p1002r1;>P1002R1
   http://wg21.link/p1327r1;>P1327R1
   http://wg21.link/p1330r0;>P1330R0
No 

 
+
+   Feature test macros 
+  http://wg21.link/p0941r2;>P0941R2
+   4.9 
(__cpp_ macros) 
+5 
(__has_cpp_attribute) 
+   
+
   
 
   C++17 Support in GCC


Jakub


Re: Patch ping (Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html)

2019-01-21 Thread Jonathan Wakely

On 21/01/19 14:40 +0100, Jakub Jelinek wrote:

Hi!

On Sat, Jan 12, 2019 at 02:08:15PM +0100, Jakub Jelinek wrote:

Here is an updated patch, that in addition to that makes 9 URLs as we now
have #cxx in gcc-9/changes.html and adds missing P0941R2 entry that clang
table has.  For that one I'm not 100% sure what to say, I've copied all the
macros from http://wg21.link/p0941r2 into two source files (attached below),
one for core language features, another one for library and tested those
with -std=c++2a with current trunk.  Compared to what the paper lists, we
have __has_cpp_attribute (carries_dependency) 0, __cpp_guaranteed_copy_elision
and __cpp_nontype_template_parameter_auto not defined.  Is that what we
want?  On the library side, __cpp_lib_any, __cpp_lib_execution,
__cpp_lib_hardware_interference_size, __cpp_lib_null_iterators,
__cpp_lib_parallel_algorithm, __cpp_lib_raw_memory_algorithms,
__cpp_lib_to_chars, __cpp_lib_uncaught_exceptions, __cpp_lib_variant
macros aren't defined (at least not in ) and
__cpp_lib_optional, __cpp_lib_shared_ptr_arrays, __cpp_lib_string_view
have smaller values than those in the P0941R2.
Is that the desirable state given current C++2A implementation status?

Ok for wwwdocs (or do you suggest something different for the P0941R2
imlementation status)?


I'd like to ping this patch.


For P0941R2 I think we can just say it's supported. For the library
docs I said we support it since GCC 5.1 because that's when we started
defining feature test macros. The point of the paper is to define
macros for the features that are supported, and we've been doing that
for years. If a macro is missing, it's because we don't support the
feature yet, and that's a correct implementation of the macro!



Patch ping (Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html)

2019-01-21 Thread Jakub Jelinek
Hi!

On Sat, Jan 12, 2019 at 02:08:15PM +0100, Jakub Jelinek wrote:
> Here is an updated patch, that in addition to that makes 9 URLs as we now
> have #cxx in gcc-9/changes.html and adds missing P0941R2 entry that clang
> table has.  For that one I'm not 100% sure what to say, I've copied all the
> macros from http://wg21.link/p0941r2 into two source files (attached below),
> one for core language features, another one for library and tested those
> with -std=c++2a with current trunk.  Compared to what the paper lists, we
> have __has_cpp_attribute (carries_dependency) 0, __cpp_guaranteed_copy_elision
> and __cpp_nontype_template_parameter_auto not defined.  Is that what we
> want?  On the library side, __cpp_lib_any, __cpp_lib_execution,
> __cpp_lib_hardware_interference_size, __cpp_lib_null_iterators,
> __cpp_lib_parallel_algorithm, __cpp_lib_raw_memory_algorithms,
> __cpp_lib_to_chars, __cpp_lib_uncaught_exceptions, __cpp_lib_variant
> macros aren't defined (at least not in ) and
> __cpp_lib_optional, __cpp_lib_shared_ptr_arrays, __cpp_lib_string_view
> have smaller values than those in the P0941R2.
> Is that the desirable state given current C++2A implementation status?
> 
> Ok for wwwdocs (or do you suggest something different for the P0941R2
> imlementation status)?

I'd like to ping this patch.

Thanks.

Jakub


Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html

2019-01-15 Thread Jonathan Wakely

On 12/01/19 14:08 +0100, Jakub Jelinek wrote:

Hi!

On Fri, Jan 11, 2019 at 04:54:11PM +0100, Jakub Jelinek wrote:

I've noticed we don't have any feature test macros in the table for C++20,
even when a couple of the features have them defined.


Here is an updated patch, that in addition to that makes 9 URLs as we now
have #cxx in gcc-9/changes.html and adds missing P0941R2 entry that clang
table has.  For that one I'm not 100% sure what to say, I've copied all the
macros from http://wg21.link/p0941r2 into two source files (attached below),
one for core language features, another one for library and tested those
with -std=c++2a with current trunk.  Compared to what the paper lists, we
have __has_cpp_attribute (carries_dependency) 0, __cpp_guaranteed_copy_elision
and __cpp_nontype_template_parameter_auto not defined.  Is that what we
want?  On the library side, __cpp_lib_any,


This is missing from  and has the wrong value in .


__cpp_lib_execution,


This is unimplemented (it's part of trodgers' PSTL work).


__cpp_lib_hardware_interference_size,


Unimplemented.


__cpp_lib_null_iterators,


This should be defined except in Debug Mode (and Debug Mode should be
fixed to support it).


__cpp_lib_parallel_algorithm,


Unimplemened (PSTL).


__cpp_lib_raw_memory_algorithms,


Missing from both  and 


__cpp_lib_to_chars,


Not fully implemented.


__cpp_lib_uncaught_exceptions,


Only defined in  for !__STRICT_ANSI__.


__cpp_lib_variant


Missing from  and has wrong value in .


macros aren't defined (at least not in ) and
__cpp_lib_optional,


The value is wrong, we implement the P0032 changes that bumped the
macro to 201606.


__cpp_lib_shared_ptr_arrays, __cpp_lib_string_view


I think the value is wrong for these two.


have smaller values than those in the P0941R2.
Is that the desirable state given current C++2A implementation status?


I'll fix the issues above.



Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html

2019-01-12 Thread Jakub Jelinek
On Sat, Jan 12, 2019 at 04:03:57PM +0100, Gerald Pfeifer wrote:
> On Sat, 12 Jan 2019, Jakub Jelinek wrote:
> > Ok for wwwdocs (or do you suggest something different for the P0941R2
> > imlementation status)?
> 
> I think that was a question to Jason and Jonathan wrt contents?

Yeah.

> Markup-wise this looks fine, and adding those links looks like a 
> good idea.

Thanks.

Jakub


Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html

2019-01-12 Thread Gerald Pfeifer
On Sat, 12 Jan 2019, Jakub Jelinek wrote:
> Ok for wwwdocs (or do you suggest something different for the P0941R2
> imlementation status)?

I think that was a question to Jason and Jonathan wrt contents?

Markup-wise this looks fine, and adding those links looks like a 
good idea.

Gerald