Re: Patch ping (Re: [wwwdocs] Add __cpp_* feature macros to C++20 entries + other changes that have those in projects/cxx_status.html)
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)
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)
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)
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
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
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
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