On 12/12/23 1:20 AM, Corentin Jabot wrote:
Yup, the high bit is getting support for u8 strings in format/print. More generally, making sure the standard library works with u8 strings at a basic level 

I would be content if we only supported u8 arguments as a first iteration. IE, convert a u8 argument to the encoding of the format strings, whatever that might be.
Beyond that, a facility to transcode between execution/utf-8 is critical, work on that seems to have slowed down.

I agree.

You made a very good choice with P1885 (Naming Text Encodings to Demystify Them) to separately expose the literal, environment, and locale encodings; we need to be able to provide conversion between all of them. WG14 N3095 (Restartable and Non-Restartable Functions for Efficient Character Conversions) only provides conversions from/to the current locale encoding as affected by calls to setlocale(), so it doesn't provide a basis for conversion between all the encodings that the standard recognizes. We're going to need P1629 (Transcoding the 🌐 - Standard Text Encoding) or similar to make good progress here.


On a personal note, I'd like to make progress on P2626, let me know how we can make that happen.

Yes, that has been right near the top of my list to schedule for a meeting. I'm happy to schedule this for the 2024-01-10 SG16 meeting if that works for you.

Do we still want to work on unicode properties?

I think so, eventually. I lean towards getting support for the Unicode algorithms in place first and then consider what makes sense to expose.

Tom.


On Tue, Dec 12, 2023 at 12:49 AM Tom Honermann via SG16 <sg16@lists.isocpp.org> wrote:

As we head into the end of year holidays, it is a good time to start thinking about our collective wishes for the next year. Please share your thoughts on what you would most like to see SG16 focus on and/or accomplish next year. Don't be afraid to dream big!

I think it is worth noting that C++23 makes it possible, for the first time, to write a proper version of hello world in C++. The following is now standard, portable, C++! https://godbolt.org/z/PYr184q6v

#include <print>
int main() {
  std::println("👋 🌍");
}

With a little luck, that Compiler Explorer link will demonstrate a working implementation for gcc in the not too distant future! Perhaps 2024 will also bring back the ability to execute code compiled by the Microsoft compiler on godbolt.org (I said to dream big!) I did verify locally that the Microsoft implementation behaves as expected (when the resulting executable is run inside Microsoft's new terminal).

When SG16 was first formed back in 2018, I was asked to contribute a brief bio to add to the WG21 committee members hosted on isocpp.org. A request for a favorite code fragment was included and I decided to go with the following forward looking example.

#include <program_arguments>
#include <environment>
#include <print>
int main() {
  std::print(u8"👋 🌍\n"); // Hello world in the universal language of emoji!
  std::print(u8"Hello {}!\n", environment["USER"].as_u8string());
  std::print(u8"This program is {}\n", program_arguments[0].as_path());
}

We're making progress! My personal wish list for 2024 includes getting the rest of this (or something quite like it) working as standard C++.

Thank you all for the contributions you bring to SG16 and WG21!

Tom.

--
SG16 mailing list
SG16@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg16