Markus, I think we have to think about what benefits it would bring to us by modernizing C code. Probably, not much at all. Personally, I would keep it as is because the minimum set of anything (e.g., ANSI C with no new features) would probably be more portable, I believe. In other words, what are we missing from C99?
Regards, Huidae On Thu, Jan 28, 2021 at 12:19 PM Markus Metz <[email protected]> wrote: > 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 <[email protected]> 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 < >> [email protected]> 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 >>> [email protected] >>> 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 >> [email protected] >> 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 [email protected] https://lists.osgeo.org/mailman/listinfo/grass-dev
