ThePhD / future_cxx

Work done today for the glory of tomorrow - or, C and C++ systems programming papers.
https://thephd.dev/portfolio/standard
46 stars 8 forks source link

n3031 - Restartable Functions for Efficient Character Conversions #24

Closed ThePhD closed 2 years ago

ThePhD commented 5 years ago

There are a lot of functions that should be proposed for the C Committee's Unicode support. Specifically, we need:

This is too much to propose at first, and does not include the "single code unit" conversion functions for wchar_t. (Notably, because those are fundamentally broken on Windows and IBM machines).

ThePhD commented 2 years ago

We will find out tomorrow.

h-vetinari commented 2 years ago

[...] but it does sound a lot like "oh, there's someone who spent years working out a solution to a decades-old problem that affects everyone - that's interesting, next."

Easy, there. There were just a lot of wording suggestions made and doing them now might constitute too many changes to make it into C23, delaying it for the next revision.

My point is still that - in the interest of the C standard and its relevance in today's world[^1] - this needs to get into C23. The overall work for this paper is 99.9+% done (and it seems people don't disagree about that), so any small wording updates or tweaks should come in during the review period or editorially, but not delay this for another X years.

[^1]: not least through all the stuff it underlies (almost all of computing), and the humans developing on top of - much less using - that being subjected to constant suffering for lack of these facilities. That this didn't go in 10-20 years ago is a huge process failure, and you are a giant for having found a way to fix it, prove it & shepherd it this far despite all the existing constraints.

ThePhD commented 2 years ago

Procedure and the ability of people in the Committee to read/process homework papers is the limiting factor. If they can't understand it before it's voted in, and it is objected to procedural grounds, we can't get anywhere no matter how sensible/reasonable the desired outcome is.

This is what happens when organizations are under bureaucracy and have bureaucratically-established deadlines inflexible to the needs of the work being done. It's not something I can control without bucking The Process™, but I can't do that because I'm not in charge nor is this a one-person project deal. 🤷‍♀️

h-vetinari commented 2 years ago

Procedure and the ability of people in the Committee to read/process homework papers is the limiting factor

I presume it has been distributed (or at least sent to publication) already, so I'll just shut up and hope for the best.

Thanks again!

h-vetinari commented 2 years ago

We will find out tomorrow.

And? Does this poll (& r10) mean it died for C23?

ThePhD commented 2 years ago

Unless you can give me a Speech 100 character stat in the next 5 minutes, I'm pretty sure it's dead.

h-vetinari commented 2 years ago

What's the change request?

h-vetinari commented 2 years ago

Or what's the speech? To keep it for C23?

ThePhD commented 2 years ago

Yes

ThePhD commented 2 years ago

Speech happening now. Wish me luck.

h-vetinari commented 2 years ago

Dear colleagues,

As we may sometimes forget in detailed technical discussions, the capabilities that end up in the C standard - and more importantly the lack thereof - ends up influencing an overwhelming portion of modern computing, as almost all modern languages are in some way built on top of C, and suffer its defects.

Text processing is a particularly pernicious problem - in stark contrast to 40 years ago, computing and programming has become truly global, and most languages other than English are harrowingly underserved by the current facilities available in C, which ends up in very real pain for both developers and users the world over.

The facilities in n3031 are the bare minimum we can provide to the world to at least have a reliable way to convert between encodings without spectacular - and non-portable - heroics.

It seems we are all agreed that their design is sound, there is an implementation which has proven itself, and any remaining wording issues can surely be worked out during the review phase or editorially.

But I implore you not to let another X years go by in which we don't provide these facilities to users, over comparatively trivial wording changes.

In particular with the 9 month extension requested from ISO, we will have ample time to fix any remaining details.

Thank you

h-vetinari commented 2 years ago

Damn, I was writing this on a phone, sorry I was too slow

ThePhD commented 2 years ago

Vote now....

ThePhD commented 2 years ago

The vote failed. Not enough consensus to continue.

I'm sorry.

h-vetinari commented 2 years ago

Not enough consensus to continue.

For C23 or at all?!

h-vetinari commented 2 years ago

Yegahds

h-vetinari commented 2 years ago

I'm sorry too.

h-vetinari commented 2 years ago

Seriously tough, you should be extremely proud of yourself, so if you aren't, I'll do it for you: You got 10+ papers into the C standard in the span of ~3 years (many of them solving fundamental problems), which is insane in itself, but you did it while also taking over the editor role and working on some gnarly C++ features, implementing ztd::text & cuneicode, and making it through a pandemic. Despite the bitter pill of unicode failing to make it, this is a monumental achievement! ❤️

ThePhD commented 2 years ago

I can see the words you're writing. I can hear them in my head, even. Understand them. Process them.

It just doesn't mean anything to my brain. I'm sorry; it's not your fault.

I'm just broken.

--

Delayed until C???.

h-vetinari commented 2 years ago

I'm really sorry you had to go through that. Time to disengage a bit me thinks. I hope you write about it when the time is ripe - you have a very readable style and it seems like it may even bring some small amount of catharsis (as sharing a struggle almost always helps with processing it).