<div dir="ltr"><div>A pity that Nicklas did not answer in this thread, see his answer in <a href="https://lists.osgeo.org/pipermail/grass-dev/2021-February/094913.html">https://lists.osgeo.org/pipermail/grass-dev/2021-February/094913.html</a><br><br></div><div>I have not studied the different C standards and the state of their implementation in different compilers and their different versions in depth, and thus appreciate very much the summary of Nicklas!</div><div><br></div><div>IIUC, Nicklas recommends to allow C11 standard features in GRASS C code, with no need to change the current code base, and all compilers in all supported platforms apparently support C11.<br></div><div><br></div><div>+1 from me, as long as all stock compilers on all supported platforms support C11  <br></div><div><br></div><div>Markus M<br></div><div><br><br>On Mon, Feb 1, 2021 at 8:56 AM Moritz Lennert <<a href="mailto:mlennert@club.worldonline.be">mlennert@club.worldonline.be</a>> wrote:<br>><br>><br>><br>> Am 31. Januar 2021 22:15:53 MEZ schrieb Markus Metz <<a href="mailto:markus.metz.giswork@gmail.com">markus.metz.giswork@gmail.com</a>>:<br>> >On Fri, Jan 29, 2021 at 11:19 PM Moritz Lennert <<br>> ><a href="mailto:mlennert@club.worldonline.be">mlennert@club.worldonline.be</a>> wrote:<br>> >><br>> >><br>> >><br>> >> Am 29. Januar 2021 20:54:06 GMT+00:00 schrieb Markus Metz <<br>> ><a href="mailto:markus.metz.giswork@gmail.com">markus.metz.giswork@gmail.com</a>>:<br>> >> >Hi Huidae,<br>> >> ><br>> >> >On Thu, Jan 28, 2021 at 6:30 PM Huidae Cho <<a href="mailto:grass4u@gmail.com">grass4u@gmail.com</a>> wrote:<br>> >> >><br>> >> >> Markus,<br>> >> >><br>> >> >> I think we have to think about what benefits it would bring to us by<br>> >> >modernizing C code. Probably, not much at all. Personally, I would keep<br>> >it<br>> >> >as is because the minimum set of anything (e.g., ANSI C with no new<br>> >> >features) would probably be more portable, I believe. In other words,<br>> >what<br>> >> >are we missing from C99?<br>> >> ><br>> >> >as I mentioned, there is no need to modernize the GRASS C code. The<br>> >> >question is if we officially allow C99 features.<br>> >> ><br>> >> >For example a number of useful math-related functions and macros are only<br>> >> >available with C99. See /usr/include/math.h on your system and search for<br>> >> >C99. Also a number of features related to data types, particularly for<br>> >> >various int datatypes (stdint.h), become available with C99. And the<br>> >> >geographic lib in PROJ with src/geodesic.c wants C99. For new PROJ<br>> >> >versions, C99 is a requirement.<br>> >><br>> >><br>> >> If proj requires it, doesn't it automatically become a requirement for<br>> >GRASS as well ?<br>> ><br>> >No, because the code base of other libs might have completely different<br>> >compile requirements. A software can use functions and libs of other<br>> >software packages, but does not need to follow the compile standards of<br>> >those other software packages, because they are compiled independently.<br>> ><br>><br>> Thanks for the clarification.<br>><br>> In light of that I agree that we should choose the oldest standard possible, unless we _really_ need something only present in a more recent version.<br>><br>> @those who want to use more recent standards: what are your reasons for that ?<br>><br>> Moritz</div></div>