Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

p1629 - Standard Text Encoding for C++29 #19

Open
ThePhD opened this issue Jun 20, 2019 · 9 comments
Open

p1629 - Standard Text Encoding for C++29 #19

ThePhD opened this issue Jun 20, 2019 · 9 comments
Assignees
Labels
librarians [design.sg16] Someone has to make it so everyone else can read the books on these bookshelves, damnit!
Milestone

Comments

@ThePhD
Copy link
Owner

ThePhD commented Jun 20, 2019

Submitted for SG16, Köln, Germany 2019 for inclusion in C++23.

@ThePhD ThePhD added the librarians [design.sg16] Someone has to make it so everyone else can read the books on these bookshelves, damnit! label Jun 20, 2019
@ThePhD ThePhD added this to the C++23 milestone Jun 20, 2019
@ThePhD ThePhD self-assigned this Jun 20, 2019
@ThePhD
Copy link
Owner Author

ThePhD commented Jun 26, 2019

SG16 met and talked about the paper. They are okay with the design, but there is a crucial "middle" road for performance that also needs to be considered by this paper:

  • Low-level, object-based: encoding objects (okay, maybe try to make it a bit simpler if possible)
  • Mid-level, iterators: transcoding iterators / std::text / std::text_view (specifically transcoding, and how to make those faster and not round-trip through UTF32)
  • High-level, fast: fast eager functions for encode/decode/transcode (also just fine the way they are)

Low-level and high-level are covered. The paper needs to explicitly talk more about the high-level functionality in detail with extension points.

The mid-level also needs to be explicitly addressed, to allow someone to make fast transcoding iterators and have that plug into the general framework without an insane amount of work. This might work by letting someone write (partial) specializations of std::text::transcoding_iterator<FromEncoding, ToEncoding, ErrorHandler>.

Flesh this out for the Cologne meeting...

@ThePhD
Copy link
Owner Author

ThePhD commented Jul 17, 2019

Köln Feedback:

  • Have Tony Tables
  • std::text::encoding concept
  • std::text::encoding_trait type to expose
  • specify minimum range requirements
  • think about transcode_view
  • need to specify all of encode, decode, and transcode
  • add simplification for error handling (too generic, too overgeneralized?)

@ThePhD
Copy link
Owner Author

ThePhD commented Jul 25, 2019

@meastp
Copy link

meastp commented Feb 2, 2021

What's the status of this paper? I find it very valuable and the issue over at cplusplus/papers#420 mentions that it needs a revision...? :)

@ThePhD
Copy link
Owner Author

ThePhD commented Feb 2, 2021

A library is going to be released soon:

https://twitter.com/__phantomderp/status/1355565481416159234/photo/1
Documentation screenshot.

I doubt it'll make it into C++23. But we don't really need the Standard to make the library work; it would just be nice if we could stop doing ad-hoc transformations in the Standard itself for dealing with this and just specified it in terms of this, but alas.

@meastp
Copy link

meastp commented Feb 4, 2021

Great - I'll have a look when you publish it, especially if it's available through vcpkg ;) I hope this doesn't mean that your standardisation effort of p1629 is abandoned?

@ThePhD
Copy link
Owner Author

ThePhD commented Feb 4, 2021

It just means it'll take more time. I don't think the Standards Committee will be ready to review a paper that large by C++23, honestly.

@npuichigo
Copy link

Kindly ask what's the current status. Deferred to C++26?

@ThePhD
Copy link
Owner Author

ThePhD commented Jul 13, 2022

@npuichigo Deferred to C++26 or C++29. I have to rewrite P1629 still, but the library implementation (for both the C and C++-style versions of this) are alive and well:

https://github.com/soasis/text
https://github.com/soasis/cuneicode

@ThePhD ThePhD changed the title p1629 - Standard Text Encoding p1629 - Standard Text Encoding for C++29 Jul 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
librarians [design.sg16] Someone has to make it so everyone else can read the books on these bookshelves, damnit!
Projects
None yet
Development

No branches or pull requests

3 participants