I feel very strongly that we should be able to leverage language features that 
have existed for longer than college graduates have been alive and should 
remove warnings designed to ensure we maintain compatibility with compilers 
that existed when pinball machines were all the rage.

I'd even go farther and say that we should allow code that requires C11.

On the point of style, I really prefer declaring variables later (eg: where 
they're computed).  I find it cleaner, and it also has the technical benefit of 
avoiding uninitialized variables that might be unexpectedly used if someone 
happens to re-order some code and doesn't realize that they introduced a read 
before initialization.  Yes, that can be caught with static analysis, but 
still... don't rely on complex solutions when simpler solutions are available.

> On Jul 28, 2024, at 17:48, Alan Coopersmith <alan.coopersm...@oracle.com> 
> wrote:
> 
> Back when we first added a default set of compiler warning flags to our
> xorg-macros.m4 for autoconf in 2008, we included -Wdeclaration-after-statement
> since not all the compilers at the time supported this C99 feature (most
> notably some OpenBSD ports that used gcc 2.95, but also MSVC versions before
> 2013).
> 
> Since then we've widely adopted other C99 features such as struct initializers
> and declaring variables in for loops ("for (int i = 0; ....)"), but last
> time we discussed this warning in 2013, decided to leave it in place as
> a style choice, not a technical constraint - see the thread starting at:
> https://lists.freedesktop.org/archives/xorg-devel/2013-September/037735.html
> 
> But we didn't carry that flag over in our meson conversions - apparently
> intentionally so in the case of the X server code base:
> https://gitlab.freedesktop.org/xorg/xserver/-/commit/db465bae533f85e7f900deb96efecc831c9d550b
> so people patching the X server don't get told that we don't like that style,
> and so now Enrico has submitted a number of merge requests that use it to
> simplify some of our previous code, such as:
> https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1601
> 
> Do we want to keep insisting on this as part of our style, or have people
> gotten used to it from other languages/projects now and are willing to
> accept it in X.Org code?
> 
> Is it time to re-apply
> https://gitlab.freedesktop.org/xorg/util/macros/-/commit/689ea0ec5d8b7594ba2fa9e27b2458cea8a58724
> to util-macros?
> 
> -- 
>        -Alan Coopersmith-                 alan.coopersm...@oracle.com
>         Oracle Solaris Engineering - https://blogs.oracle.com/solaris

Reply via email to