[GRASS-dev] Min. req. of programming language standard support, GRASS GIS 8

Markus Metz markus.metz.giswork at gmail.com
Thu Jan 28 09:19:13 PST 2021

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 <grass4u at 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 at 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 at 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 at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20210128/69c324ea/attachment.html>

More information about the grass-dev mailing list