Boost logo

Boost :

From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2024-05-10 10:59:32


On 10/05/2024 00:23, Ville Voutilainen wrote:
> On Fri, 10 May 2024 at 02:11, Niall Douglas via Boost
> <boost_at_[hidden]> wrote:
>> Maybe you do genuinely believe the current process is optimal and cannot
>> be improved upon.
>
> But since you suggest I'm blind and suggest things like the quoted
> bit, which is just made up and not backed
> by anything I have ever said or done, have you ever considered the
> possibility that your views on such matters might be clouded
> by various proposals of yours not being "just waved through", and that
> somehow being anything but the fault
> of any problems in those proposals?

It is true I have been spectacularly unsuccessful at WG21. I have not
affected one single word of normative text since I began attending
meetings. The entire sum of my words affected would come from the next
merge of the next C standard, where I have been far more effective with
very considerably less work invested. Unsurprisingly, that's where I'll
be moving to after the C 26 IS ships, as I'll have far more effect on
the C++ standard from WG14 than I ever will from WG21.

As to "just waved through" there is a point there. Everybody attending
will have an opinion on the stuff they think was just waved through and
not enough scrutiny was applied, and the stuff which got too much
scrutiny and got dropped through attrition and exhaustion.

I think that concentrates on the wrong thing, because all that is the
result of the process chosen. We could choose a different process, and
change that dynamic entirely.

I definitely think far too much emphasis is placed by WG21 on library
features which tick committee boxes such as "this is immediately
compatible with the abstract machine" rather than what is actually
useful to the ecosystem or end users. Most of my proposals which made no
forward progress were due to demands that I first get improvements to
the abstract machine through EWG to support things like memory mapped
files, or virtual memory, or copy on write memory.

What annoys me there is WG21 has the power to declare library APIs have
magic powers. So just drizzle the magical powers over the APIs, draw a
line under it, ship it. End users get portable memory mapped files with
standardised semantics, the ecosystem benefits, everybody wins.

WG21 wasn't willing to do that here, so I gave up. I have better uses of
my time than fiddling with the abstract machine, for which by the way it
was demanded that I had to fork a production compiler to implement the
new abstract machine. I don't have that kind of free time, sorry.

Of my two papers remaining, one has a pretty good chance of making it
(path_view). The other has been repeatedly and publicly declared by
multiple people as one of the finest library designs in C++ they've ever
seen (std::error) but WG21 can't get over there being virtual functions
in there. After three years of broken promises that WG21 will "do
something" about ABI guarantees in libraries so the virtual functions
can be replaced with something else, they just keep circling the drain
about "virtual functions be bad".

So maybe that will die too, we have three meetings left to find out. I'm
of the opinion that carefully designed virtual functions are nothing
like as bad as vast quantities of templates solidifying ABI. We continue
to standardise vast tracts of new templates repeating the std::regex
mistake. Yet a virtual function - they're somehow _worse_ - and I'm
sorry, I just don't get it. Especially as there really is currently no
better alternative to virtual functions for what they do, whereas most
templates can be designed out entirely and WG21 could impose a "minimum
possible templates" rule going forth if it chose.

I've come to the conclusion that I'm the wrong type of engineer for
WG21. Or, maybe better put, the kind of engineering I do does not fit
what WG21 thinks is good engineering. A culture and fit problem. That's
okay, I'll go where I'm more effective instead.

Niall


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk