Re: [PATCH 0/2] Delete CIRCLEQ

2020-10-12 Thread Christos Zoulas
In article ,
Kamil Rytarowski   wrote:
>This removal is a part of a larger synchronization with other BSDs as
>we lack various features in sys/queue.h (like LIST_PREV()).
>
>CIRCLEQ was already deleted from the documentation and disabled in the
>kernel in NetBSD-7. If there are still any unaware users, they are
>certainly long broken.
>
>What's the benefit of keeping it around and having no users and
>documented deprecation plus being prone to miscompilation? The removal
>does not break libc or kernel ABIs. Most 3rd party users of these
>macros deliver a homegrown copy of sys/queue.h anyway.

We should follow suit with the other BSD's and remove it. We should
also look at FreeBSD's header, add the missing functions and the
comments. It is pointless keeping it around. We've already
discouraged its use and there is very little software using it. We
can easily convert whatever it is using it to TAILQ. 

christos



Re: [PATCH 0/2] Delete CIRCLEQ

2020-10-12 Thread Kamil Rytarowski
This removal is a part of a larger synchronization with other BSDs as
we lack various features in sys/queue.h (like LIST_PREV()).

CIRCLEQ was already deleted from the documentation and disabled in the
kernel in NetBSD-7. If there are still any unaware users, they are
certainly long broken.

What's the benefit of keeping it around and having no users and
documented deprecation plus being prone to miscompilation? The removal
does not break libc or kernel ABIs. Most 3rd party users of these
macros deliver a homegrown copy of sys/queue.h anyway.

Kamil Rytarowski
CTO, Moritz Systems
www.moritz.systems

pon., 12 paź 2020 o 13:15 Mouse  napisał(a):
>
> >>> Remove the CIRCLEQ API completely from the system headers and
> >>> document this fact in the QUEUE(3) man-page.
>
> >> why?  queue.h may be used by more than src.
>
> >> i don't see any benefit except forcing working code to be changed,
> >> possibly introducing bugs.
>
> >> please leave it alone.
>
> > It's been deprecated since -7, we can remove it for -10.
>
> So?  I still agree with mrg: I too see no benefit to removing it (or
> for that matter to deprecating it).  What am I missing?  What benefit
> do you see?
>
> /~\ The ASCII Mouse
> \ / Ribbon Campaign
>  X  Against HTMLmo...@rodents-montreal.org
> / \ Email!   7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Re: [PATCH 0/2] Delete CIRCLEQ

2020-10-12 Thread Mouse
>>> Remove the CIRCLEQ API completely from the system headers and
>>> document this fact in the QUEUE(3) man-page.

>> why?  queue.h may be used by more than src.

>> i don't see any benefit except forcing working code to be changed,
>> possibly introducing bugs.

>> please leave it alone.

> It's been deprecated since -7, we can remove it for -10.

So?  I still agree with mrg: I too see no benefit to removing it (or
for that matter to deprecating it).  What am I missing?  What benefit
do you see?

/~\ The ASCII Mouse
\ / Ribbon Campaign
 X  Against HTMLmo...@rodents-montreal.org
/ \ Email!   7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Re: [PATCH 0/2] Delete CIRCLEQ

2020-10-12 Thread Kamil Rytarowski
Everything relatively modern that uses sys/queue.h directly was
already switched a long time ago to TAILQ.

Christos Zoulas changed most users of CIRCLEQ in the src tree 6 years
ago. The last leftover is handled in this patchset.

I was able to find some 3rd projects using CIRCLEQ, but probably all
of them are both: 1. old 2. ship with a  local copy of sys/queue.h.
There is not much working code using CIRCLEQ left and NetBSD is pretty
much the last one to deliver it.

It's also broken for modern compilers and we need to launder pointers
to workaround the pointer aliasing design flaw.

Kamil Rytarowski
CTO, Moritz Systems
www.moritz.systems

pon., 12 paź 2020 o 04:23 matthew green  napisał(a):
>
> Kamil Rytarowski writes:
> > Switch the last user (ypserv) from CIRCLEQ to TAILQ.
> > This is inspired by analogous refactoring from OpenBSD:
> > https://github.com/openbsd/src/commit/d53c0cf4d32fdbd8b42debfba068f1b0efa423dc#diff-8d0a4fbb89658213ebf314ff188581d7
> >
> > Remove the CIRCLEQ API completely from the system headers and document
> > this fact in the QUEUE(3) man-page.
>
> why?  queue.h may be used by more than src.
>
> i don't see any benefit except forcing working code to
> be changed, possibly introducing bugs.
>
> please leave it alone.
>
>
> .mrg.


Re: [PATCH 0/2] Delete CIRCLEQ

2020-10-11 Thread David Holland
On Mon, Oct 12, 2020 at 01:23:15PM +1100, matthew green wrote:
 > > Switch the last user (ypserv) from CIRCLEQ to TAILQ.
 > > This is inspired by analogous refactoring from OpenBSD:
 > > https://github.com/openbsd/src/commit/d53c0cf4d32fdbd8b42debfba068f1b0efa423dc#diff-8d0a4fbb89658213ebf314ff188581d7
 > > 
 > > Remove the CIRCLEQ API completely from the system headers and document
 > > this fact in the QUEUE(3) man-page.
 > 
 > why?  queue.h may be used by more than src.
 > 
 > i don't see any benefit except forcing working code to
 > be changed, possibly introducing bugs.
 > 
 > please leave it alone.

It's been deprecated since -7, we can remove it for -10.

Anyway, please at least do fix ypserv.

-- 
David A. Holland
dholl...@netbsd.org


re: [PATCH 0/2] Delete CIRCLEQ

2020-10-11 Thread matthew green
Kamil Rytarowski writes:
> Switch the last user (ypserv) from CIRCLEQ to TAILQ.
> This is inspired by analogous refactoring from OpenBSD:
> https://github.com/openbsd/src/commit/d53c0cf4d32fdbd8b42debfba068f1b0efa423dc#diff-8d0a4fbb89658213ebf314ff188581d7
> 
> Remove the CIRCLEQ API completely from the system headers and document
> this fact in the QUEUE(3) man-page.

why?  queue.h may be used by more than src.

i don't see any benefit except forcing working code to
be changed, possibly introducing bugs.

please leave it alone.


.mrg.