Hi all, regarding C, there is no need to modernize the code base because the current C code written for C89 compiles just fine with newer standards which are backwards compatible it seems. The question is if we allow features from a newer C standard, say C99, to be included in the code base. In fact, a few C99 features (supported by gnu89) have already sneaked into the GRASS C code base. I am opting to allow C99 features.
Regarding C++, it's a bit more difficult because apparently C++ standards are not fully backwards compatible. We had corresponding problems with C++ code in GRASS previously and fixed these problems when they arose. Markus M On Thu, Jan 28, 2021 at 3:33 PM Huidae Cho <gras...@gmail.com> wrote: > Nicklas, > > Thanks for your suggestions. As far as I know, C code "is written in > portable ANSI-C and is fully POSIX compliant" [1] (C89 or C90?, rather old > standards, I know, but GRASS itself is old and predates both standards) and > the minimum "recommended" version of Python going forward is 3.5 [2]. I > don't know about C++, but there are not many modules written in it. > Modernizing the current code base to a newer C standard would be great > though. > > Best, > Huidae > > [1] https://old.grass.osgeo.org/screenshots/platforms/ > [2] https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html > > > On Thu, Jan 28, 2021 at 4:28 AM Nicklas Larsson via grass-dev < > grass-dev@lists.osgeo.org> wrote: > >> Dear Devs! >> >> As a relatively new member of the GRASS GIS dev community, I have had to >> search for information on mailing lists, old trac comments etc. regarding >> coding practice and in particular minimum programming language standard >> support. Ending up in not entirely conclusive understanding. Up until now, >> I have been mostly involved in Python development and I’m still not >> absolutely certain, although I assume 3.5 is minimum version. And I’m not >> alone, see e.g. [1]. >> >> Now, I’ve encountered a similar dilemma with C standard support, >> attempting to address compiler warnings [2], in particular with the PR >> #1256 [3]. >> >> I would be great if there were a (one) place where the min support of >> Python version, C (C89, C99, C11, C17…) and C++ (C++03, C++11, C++14 …) >> standard is stated -- loud and clear. Obviously, there has to be a >> consensus in the community on these matters for that to happen. Such a >> statement will also have to be revised now and then. (A related question is >> also whether or not to support 32 bit, which I know have been raised >> recently). >> >> I’d appreciate your opinion is on this issue! >> Let me put up a a suggestion for min. req. for coming GRASS GIS 8 as a >> starting point of discussion: >> - Python 3.7 >> - C11 >> - C++11 >> >> >> Best regards, >> Nicklas >> >> >> >> [1] https://github.com/OSGeo/grass/issues/1241 >> [2] https://github.com/OSGeo/grass/issues/1247 >> [3] https://github.com/OSGeo/grass/pull/1256 >> _______________________________________________ >> grass-dev mailing list >> grass-dev@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/grass-dev >> > > > -- > Huidae Cho, Ph.D., GISP, /hidɛ t͡ɕo/, 조희대, 曺喜大 > GRASS GIS Developer > https://idea.isnew.info > _______________________________________________ > grass-dev mailing list > grass-dev@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/grass-dev >
_______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-dev