Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Feb 2018 22:10:02 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Garrett Wollman <wollman@csail.mit.edu>
Cc:        freebsd-standards@freebsd.org
Subject:   Re: Marking select(2) as restrict
Message-ID:  <20180221201002.GC94212@kib.kiev.ua>
In-Reply-To: <23181.50488.186767.579361@khavrinen.csail.mit.edu>
References:  <CAF6rxg=h_oMiUu7P=GAOQf_OySQM2w31hg6Kas%2B3jeEM3qq_Cg@mail.gmail.com> <CAF6rxgnt9c0n8i-nHQwoKGbZKF2hM5AZqEJnz0CLo26XOO4_sg@mail.gmail.com> <20180221032247.GA81670@ns.kevlo.org> <CAF6rxg=WwqeBnmJzfOZgtwrYesXPfvJFeaVmQwtTa_89_sxaJg@mail.gmail.com> <CANCZdfo46bhfaRpbqOmJjk4%2B=1R2c5kvmrJPENaxNgK==5M4kg@mail.gmail.com> <CAF6rxg=wNVgDUF9o744ngmzPNeHB3hqdrLufy=yS3D4osczxFQ@mail.gmail.com> <20180221104400.GU94212@kib.kiev.ua> <23181.46427.671514.319710@khavrinen.csail.mit.edu> <20180221185920.GA94212@kib.kiev.ua> <23181.50488.186767.579361@khavrinen.csail.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 21, 2018 at 02:15:04PM -0500, Garrett Wollman wrote:
> <<On Wed, 21 Feb 2018 20:59:20 +0200, Konstantin Belousov <kostikbel@gmail.com> said:
> 
> >> [I wrote:]
> >> Compliance with the 2001 POSIX standard (and subsequent versions).
> >> 
> >> After C99, all POSIX interfaces that use pointers were updated to
> >> include the restrict qualifier where applicable.
> 
> > Restrict barely puts any requirements on the implementation, but does on
> > the consumers.  Which is the cause of this discussion.
> 
> I can't speak to this particular case, but my understanding is that
> "restrict" qualifier was only added to arguments if the behavior was
> already unspecified or undefined when the pointers in question were
> aliases (so the consumer was already broken if it did so).  Certainly
> such code has been broken for the better part of two decades.
Undefined != broken, whatever some compiler vendors try to bluff.

> 
> > Also, what incompliance consequences are ?  I am not even sure that the
> > prototype mismatch can be detected by means other than parsing the headers.
> 
> It is permissible for an application to explicitly declare any
> function defined in the standard, so long as it uses the prototype set
> out in the standard.  Also, any vendor wanting POSIX or UNIX
> certification for a derivative system would have to fix it anyway.

For such vendors, backward compatibility with existing software should
have different priorities than for us.  We need a useful software runnable
on the system first, and blue sky stuff like POSIX compliance second.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180221201002.GC94212>