I apologize for my tardiness in reviewing this patch; it's been a busy
few weeks here.

On Fri, 2024-11-29 at 12:31 -0800, Pete Dietl wrote:
> > Not sure about such inline 'structs'.
> 
> These are called "compound literals" and have been part of C since
> C99.

> More broadly though, what is the newest version of C that I may rely
> on? The use of "_Generic" is a C11 thing. I can remove it if we want
> to rely only on C99.

Until fairly recently we only required C89.  However, now that we make
use of gnulib we are forced to require a minimum of C99.  We shouldn't
go higher than that.

Gnulib does make use of compound literals but none of the code we
import from gnulib uses them (to date) and we don't use them elsewhere
in the GNU Make codebase.  I don't know if any of the compilers used
with GNU Make on other platforms provide sufficient C99 compatibility
while still not supporting them.  I don't think it would be difficult
to avoid them here but I won't insist on it.

As pointed out, GNU Make is part of a system's bootstrap path and we
want to limit its prerequisites and requirements as much as we can to
avoid catch-22's, forcing cross-compilation, and difficult multi-stage
builds.

-- 
Paul D. Smith <psm...@gnu.org>            Find some GNU Make tips at:
https://www.gnu.org                       http://make.mad-scientist.net
"Please remain calm...I may be mad, but I am a professional." --Mad
Scientist




Reply via email to