public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [committed] libstdc++: Add missing __cpp_lib_format macro to <version>
@ 2023-03-22 17:50 Jonathan Wakely
  2023-03-22 17:58 ` Daniel Krügler
  0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Wakely @ 2023-03-22 17:50 UTC (permalink / raw)
  To: libstdc++, gcc-patches

Tested powerpc64le-linux, pushed to trunk.

-- >8--

libstdc++-v3/ChangeLog:

	* include/std/version (__cpp_lib_format): Define.
	* testsuite/std/format/functions/format.cc: Check it.
---
 libstdc++-v3/include/std/version                  |  1 +
 .../testsuite/std/format/functions/format.cc      | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index 25ebfc3e512..a19c39c6cdd 100644
--- a/libstdc++-v3/include/std/version
+++ b/libstdc++-v3/include/std/version
@@ -277,6 +277,7 @@
 #define __cpp_lib_constexpr_utility 201811L
 #define __cpp_lib_constexpr_vector 201907L
 #define __cpp_lib_erase_if 202002L
+#define __cpp_lib_format 202106L
 #define __cpp_lib_generic_unordered_lookup 201811L
 #define __cpp_lib_interpolate 201902L
 #ifdef _GLIBCXX_HAS_GTHREADS
diff --git a/libstdc++-v3/testsuite/std/format/functions/format.cc b/libstdc++-v3/testsuite/std/format/functions/format.cc
index 7a155208a48..2a1b1560394 100644
--- a/libstdc++-v3/testsuite/std/format/functions/format.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/format.cc
@@ -2,6 +2,21 @@
 // { dg-do run { target c++20 } }
 
 #include <format>
+
+#ifndef __cpp_lib_format
+# error "Feature test macro for std::format is missing in <format>"
+#elif __cpp_lib_format < 202106L
+# error "Feature test macro for std::format has wrong value in <format>"
+#endif
+
+#undef __cpp_lib_format
+#include <version>
+#ifndef __cpp_lib_format
+# error "Feature test macro for std::format is missing in <version>"
+#elif __cpp_lib_format < 202106L
+# error "Feature test macro for std::format has wrong value in <version>"
+#endif
+
 #include <string>
 #include <limits>
 #include <cstdint>
-- 
2.39.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [committed] libstdc++: Add missing __cpp_lib_format macro to <version>
  2023-03-22 17:50 [committed] libstdc++: Add missing __cpp_lib_format macro to <version> Jonathan Wakely
@ 2023-03-22 17:58 ` Daniel Krügler
  2023-03-22 19:46   ` Jonathan Wakely
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Krügler @ 2023-03-22 17:58 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: libstdc++, gcc-patches

Am Mi., 22. März 2023 um 18:53 Uhr schrieb Jonathan Wakely via
Libstdc++ <libstdc++@gcc.gnu.org>:
>
> Tested powerpc64le-linux, pushed to trunk.
>
> -- >8--
>
> libstdc++-v3/ChangeLog:
>
>         * include/std/version (__cpp_lib_format): Define.
>         * testsuite/std/format/functions/format.cc: Check it.
> ---
>  libstdc++-v3/include/std/version                  |  1 +
>  .../testsuite/std/format/functions/format.cc      | 15 +++++++++++++++
>  2 files changed, 16 insertions(+)
>
> diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
> index 25ebfc3e512..a19c39c6cdd 100644
> --- a/libstdc++-v3/include/std/version
> +++ b/libstdc++-v3/include/std/version
> @@ -277,6 +277,7 @@
>  #define __cpp_lib_constexpr_utility 201811L
>  #define __cpp_lib_constexpr_vector 201907L
>  #define __cpp_lib_erase_if 202002L
> +#define __cpp_lib_format 202106L

Shouldn't the value be 202207L? (This of-course of your conforming completeness)

Thanks,

- Daniel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [committed] libstdc++: Add missing __cpp_lib_format macro to <version>
  2023-03-22 17:58 ` Daniel Krügler
@ 2023-03-22 19:46   ` Jonathan Wakely
  2023-03-22 19:53     ` Jonathan Wakely
  0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Wakely @ 2023-03-22 19:46 UTC (permalink / raw)
  To: Daniel Krügler; +Cc: libstdc++, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1901 bytes --]

On Wed, 22 Mar 2023 at 17:59, Daniel Krügler <daniel.kruegler@gmail.com>
wrote:

> Am Mi., 22. März 2023 um 18:53 Uhr schrieb Jonathan Wakely via
> Libstdc++ <libstdc++@gcc.gnu.org>:
> >
> > Tested powerpc64le-linux, pushed to trunk.
> >
> > -- >8--
> >
> > libstdc++-v3/ChangeLog:
> >
> >         * include/std/version (__cpp_lib_format): Define.
> >         * testsuite/std/format/functions/format.cc: Check it.
> > ---
> >  libstdc++-v3/include/std/version                  |  1 +
> >  .../testsuite/std/format/functions/format.cc      | 15 +++++++++++++++
> >  2 files changed, 16 insertions(+)
> >
> > diff --git a/libstdc++-v3/include/std/version
> b/libstdc++-v3/include/std/version
> > index 25ebfc3e512..a19c39c6cdd 100644
> > --- a/libstdc++-v3/include/std/version
> > +++ b/libstdc++-v3/include/std/version
> > @@ -277,6 +277,7 @@
> >  #define __cpp_lib_constexpr_utility 201811L
> >  #define __cpp_lib_constexpr_vector 201907L
> >  #define __cpp_lib_erase_if 202002L
> > +#define __cpp_lib_format 202106L
>
> Shouldn't the value be 202207L? (This of-course of your conforming
> completeness)
>
>
Well spotted!

The historical values listed in SD-6 are included in a comment in <format>:

// 201907 Text Formatting, Integration of chrono, printf corner cases.
// 202106 std::format improvements.
// 202110 Fixing locale handling in chrono formatters, generator-like types.
// 202207 Encodings in localized formatting of chrono, basic-format-string.
#define __cpp_lib_format 202106L

The libstdc++ support only got as far as 202106 so far :-)

(We actually do implement the support for generator-like types from P2418R2
and the std::basic_format_string change from P2508R1, but can't bump the
value to 202207 until the other changes are supported too.)

I might still find time to finish P2372R3 and P2419R2 for GCC 13, but no
promises.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [committed] libstdc++: Add missing __cpp_lib_format macro to <version>
  2023-03-22 19:46   ` Jonathan Wakely
@ 2023-03-22 19:53     ` Jonathan Wakely
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Wakely @ 2023-03-22 19:53 UTC (permalink / raw)
  To: Daniel Krügler; +Cc: libstdc++, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 2376 bytes --]

On Wed, 22 Mar 2023 at 19:46, Jonathan Wakely <jwakely@redhat.com> wrote:

>
>
> On Wed, 22 Mar 2023 at 17:59, Daniel Krügler <daniel.kruegler@gmail.com>
> wrote:
>
>> Am Mi., 22. März 2023 um 18:53 Uhr schrieb Jonathan Wakely via
>> Libstdc++ <libstdc++@gcc.gnu.org>:
>> >
>> > Tested powerpc64le-linux, pushed to trunk.
>> >
>> > -- >8--
>> >
>> > libstdc++-v3/ChangeLog:
>> >
>> >         * include/std/version (__cpp_lib_format): Define.
>> >         * testsuite/std/format/functions/format.cc: Check it.
>> > ---
>> >  libstdc++-v3/include/std/version                  |  1 +
>> >  .../testsuite/std/format/functions/format.cc      | 15 +++++++++++++++
>> >  2 files changed, 16 insertions(+)
>> >
>> > diff --git a/libstdc++-v3/include/std/version
>> b/libstdc++-v3/include/std/version
>> > index 25ebfc3e512..a19c39c6cdd 100644
>> > --- a/libstdc++-v3/include/std/version
>> > +++ b/libstdc++-v3/include/std/version
>> > @@ -277,6 +277,7 @@
>> >  #define __cpp_lib_constexpr_utility 201811L
>> >  #define __cpp_lib_constexpr_vector 201907L
>> >  #define __cpp_lib_erase_if 202002L
>> > +#define __cpp_lib_format 202106L
>>
>> Shouldn't the value be 202207L? (This of-course of your conforming
>> completeness)
>>
>>
> Well spotted!
>
> The historical values listed in SD-6 are included in a comment in <format>:
>
> // 201907 Text Formatting, Integration of chrono, printf corner cases.
> // 202106 std::format improvements.
> // 202110 Fixing locale handling in chrono formatters, generator-like
> types.
> // 202207 Encodings in localized formatting of chrono, basic-format-string.
> #define __cpp_lib_format 202106L
>
> The libstdc++ support only got as far as 202106 so far :-)
>
> (We actually do implement the support for generator-like types from
> P2418R2 and the std::basic_format_string change from P2508R1, but can't
> bump the value to 202207 until the other changes are supported too.)
>
> I might still find time to finish P2372R3 and P2419R2 for GCC 13, but no
> promises.
>

Hmm, actually maybe I already did all of P2372R3 as part of the <chrono>
formatting, so it should be 202110. And for P2419R2 we could say that the
implementation-defined set of locales is empty ... but that's pretty poor
QoI.

There are also some more changes in C++23 (P2572 and P2675) which aren't
done yet.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-22 19:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-22 17:50 [committed] libstdc++: Add missing __cpp_lib_format macro to <version> Jonathan Wakely
2023-03-22 17:58 ` Daniel Krügler
2023-03-22 19:46   ` Jonathan Wakely
2023-03-22 19:53     ` Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).