<div dir="ltr"><br>On Wed, Feb 3, 2021 at 6:30 AM Huidae Cho <<a href="mailto:grass4u@gmail.com">grass4u@gmail.com</a>> wrote:<br>><br>> Thanks Nicklas for the great summary! That helped a lot.<br>><br>> 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><br></div><div>I think it is a bit more complicated, e.g. there is not one single Linux version. We need to make a decision not only about platforms, but also about platform versions. Traditionally, GRASS aims to be compatible with all currently supported platform versions. For RHEL, this would mean support for RHEL 7 (ignoring the extended support for RHEL 6 until 2024). For Debian, this would mean support for Stretch (Debian 9). For FreeBSD, this would mean support for FreeBSD 11.x. For Solaris, this would mean support for Solaris 11 (ignoring the extended support for Solaris 10 until 2024). I have previously tested GRASS on all these platforms, but not on all supported versions of these platforms. IMHO, it is ok if the current GRASS version is running on the current version of these OSs (RHEL, Debian, FreeBSD, Solaris) which are often used in production environments.<br></div><div><br></div><div>The derived and often more up-to-date OSs like Fedora, Ubuntu, etc. do not seem to be a problem.</div><div><br></div><div>Markus M</div><div><br> </div><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>><br>> Best,<br>> Huidae<br>><br>> [1] <a href="https://www.freebsd.org/cgi/man.cgi?query=index&section=3">https://www.freebsd.org/cgi/man.cgi?query=index&section=3</a><br>> [2] <a href="http://www.minix3.org/pkgsrc/distfiles/local/3.4.0-2016Q3/">http://www.minix3.org/pkgsrc/distfiles/local/3.4.0-2016Q3/</a><br>> [3] <a href="https://old.grass.osgeo.org/screenshots/platforms/">https://old.grass.osgeo.org/screenshots/platforms/</a><br>> [4] <a href="https://grass.osgeo.org/news/2008_04_23_announce_grass630/">https://grass.osgeo.org/news/2008_04_23_announce_grass630/</a><br>><br>><br>> On Mon, Feb 1, 2021 at 4:25 PM Markus Metz <<a href="mailto:markus.metz.giswork@gmail.com">markus.metz.giswork@gmail.com</a>> wrote:<br>>><br>>> 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>>> 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!<br>>><br>>> 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>>><br>>> +1 from me, as long as all stock compilers on all supported platforms support C11 <br>>><br>>> Markus M<br>>><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<br>><br>><br>><br>> --<br>> Huidae Cho, Ph.D., GISP, /hidɛ t͡ɕo/, 조희대, 曺喜大<br>> GRASS GIS Developer<br>> <a href="https://idea.isnew.info">https://idea.isnew.info</a></div>