<div dir="ltr"><div>Thanks Nicklas for the great summary! That helped a lot.</div><div><br></div><div>I was wondering if we have a list of all supported platforms somewhere? We have official downloads for Linux, Mac, and Windows. Are these three only "officially" supported platforms? I know GRASS is compilable on FreeBSD [1] and maybe (Open|Net)BSD. Is that it? Minix3 supports GDAL 1.11.3, PROJ 4.9.2, GEOS 3.5.0, and GCC 6.2.0 [2]. I know... they are a little behind.<br></div><div><br></div><div>Since we cannot (or will be difficult to) go back once we move to a newer C standard, I think we need to discuss what platforms we want to support officially or unofficially (?) first. Is [3] or [4] (GRASS 6.3) still valid? Has anyone tried all or some of those platforms recently (Sun Solaris (SPARC/Intel), Silicon
Graphics Irix, HP-UX, DEC-Alpha, AIX, BSD, iPAQ/Linux and other UNIX
compliant platforms)? I think at some point this list was removed from a release announcement. Maybe, we are being more realistic because many of these platforms are now irrelevant or we just don't have enough resources or interest to maintain such a list of supported platforms anymore?<br></div><div><br></div><div>Best,</div><div>Huidae<br></div><div><br></div><div>[1] <a href="https://www.freebsd.org/cgi/man.cgi?query=index&section=3" target="_blank">https://www.freebsd.org/cgi/man.cgi?query=index&section=3</a></div><div>[2] <a href="http://www.minix3.org/pkgsrc/distfiles/local/3.4.0-2016Q3/" target="_blank">http://www.minix3.org/pkgsrc/distfiles/local/3.4.0-2016Q3/</a></div><div>[3] <a href="https://old.grass.osgeo.org/screenshots/platforms/" target="_blank">https://old.grass.osgeo.org/screenshots/platforms/</a></div><div>[4] <a href="https://grass.osgeo.org/news/2008_04_23_announce_grass630/" target="_blank">https://grass.osgeo.org/news/2008_04_23_announce_grass630/</a></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 1, 2021 at 4:25 PM Markus Metz <<a href="mailto:markus.metz.giswork@gmail.com" target="_blank">markus.metz.giswork@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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" target="_blank">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" target="_blank">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" target="_blank">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" target="_blank">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" target="_blank">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" target="_blank">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>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr">Huidae Cho, Ph.D., GISP, /hidɛ t͡ɕo/, 조희대, 曺喜大</div><div dir="ltr">GRASS GIS Developer</div><div><a href="https://idea.isnew.info" target="_blank">https://idea.isnew.info</a><br></div></div></span></div></div></div></div></div></div></div></div></div></div>