svn commit: r286170 - head/share/man/man9

Hans Petter Selasky hps at selasky.org
Fri Aug 21 06:16:32 UTC 2015


On 08/04/15 19:10, John-Mark Gurney wrote:
> Hans Petter Selasky wrote this message on Tue, Aug 04, 2015 at 12:48 +0200:
>> My gut feeling is it's good practice to have those wrapper macros
>> because they isolate the compiler into a consistent and coherent API.
>
> Except that we now have a consistent and coherent API w/
> _Static_assert...  We emulate this function on all compilers (or at least
> try to, see bde's other email about issues w/ the ifdef mess), and
> is available to both userland and kernel...  It will also be available
> on other platforms, as opposed to having to port our CTASSERT macros
> to other platforms and introduce #ifdef's to make it compatible...
>
>> Wouldn't the argument be the same for queue.3 . Once C-compilers finally
>> decide to compile time support queues, we should throw queue.3 aswell?
>> I'd say it is better to stay independent of what the compiler guys will
>> come up with next, reminding me how hard it was to upgrade a machine
>> recently from 9- to 10- because of C++11 ....
>
> Last I checked, they don't change their API's ever revision of the
> langauge...
>
> Comparing this to C++11?  Just wow, see above how this is properly
> covered by the ifdef mess in sys/cdefs.h for all compilers, this won't
> introduce any complications like the C++11...
>

Hi,

Here is one more argument against using "_Static_assert()":

According to "http://en.cppreference.com/w/c/language/_Static_assert" 
_Static_assert is C11 syntax only, and we compile the kernel using 
"-std=iso9899:1999" according to "conf/kern.mk:CFLAGS" in -current. So 
technically it shouldn't work, and it throws up compile errors with 
certain other C tools I'm using at work which are more strict than clang.

Any comments?

--HPS


More information about the svn-src-all mailing list