Re: git: a7469c9c0a50 - main - libc: bsort_s() requires both __BSD_VISIBLE and __EXT1_VISIBLE

From: Brooks Davis <brooks_at_freebsd.org>
Date: Wed, 19 Apr 2023 23:43:13 UTC
On Wed, Apr 19, 2023 at 11:35:56PM +0200, Hans Petter Selasky wrote:
> On 4/19/23 22:29, Brooks Davis wrote:
> > This is a formal request to revert all commits related to bsort.  It
> > should not have been committed without much broader discussion and IMO
> > does not belong in the tree.  It certainly should not be in the tree
> > under such a generic name.
> > 
> > -- Brooks
> 
> Hi Brooks,
> 
> I don't have an issue reverting my bsort() patch series, but please 
> clarify your statement first. Who are "we" this time, representing this 
> formal request for revert?

This is my request.

I see some review and the thread below, but adding
non-standard symbols that are likely to collide with other software[0] to
libc should be subject to a higher bar than a few people helping you
improve your patch of saying "that's neat".

New things added to libc should be in a standard or aligned with one
(e.g., strlcpy, etc) and anything not from a standard should have
immediate uses where it improves things in the rest of the system.
Critically I don't see plans or prototype conversions and I don't see
benchmarks of real systems (which could easily be done with LD_PRELOAD.

> Regarding "broader discussion" - what do you mean?
> 
> The initial discussion was started last September:
> 
> https://lists.freebsd.org/archives/freebsd-arch/2022-September/000225.html

More pushback here probably would be been good, sorry.  A heads up
before the actual commit might have been a good idea. I personally
find your answer to the question, "why not improve qsort instead?"
unsatisfactory.  It might be that importing your implementation makes
sense, but I don't think making is a public symbol we're stuck with
forever if we ship it in 14 is a good way to go.

> And several people have been asked for review and comments. Please 
> elaborate what "broader discussion" means? Do you mean like getting 
> something into ANSI first? I don't get it.

I'd like more "I'd use it for X" and less "that's neat".

-- Brooks

[0] Debian code search finds fewer collisions than I'd feared, but not
zero: https://codesearch.debian.net/search?q=%5B%5Ea-z%5Dbsort%5C%28&literal=0