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

Huidae Cho grass4u at gmail.com
Tue Feb 2 21:29:58 PST 2021


Thanks Nicklas for the great summary! That helped a lot.

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.

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?

Best,
Huidae

[1] https://www.freebsd.org/cgi/man.cgi?query=index&section=3
[2] http://www.minix3.org/pkgsrc/distfiles/local/3.4.0-2016Q3/
[3] https://old.grass.osgeo.org/screenshots/platforms/
[4] https://grass.osgeo.org/news/2008_04_23_announce_grass630/


On Mon, Feb 1, 2021 at 4:25 PM Markus Metz <markus.metz.giswork at gmail.com>
wrote:

> A pity that Nicklas did not answer in this thread, see his answer in
> https://lists.osgeo.org/pipermail/grass-dev/2021-February/094913.html
>
> 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!
>
> 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.
>
> +1 from me, as long as all stock compilers on all supported platforms
> support C11
>
> Markus M
>
>
> On Mon, Feb 1, 2021 at 8:56 AM Moritz Lennert <
> mlennert at club.worldonline.be> wrote:
> >
> >
> >
> > Am 31. Januar 2021 22:15:53 MEZ schrieb Markus Metz <
> markus.metz.giswork at gmail.com>:
> > >On Fri, Jan 29, 2021 at 11:19 PM Moritz Lennert <
> > >mlennert at club.worldonline.be> wrote:
> > >>
> > >>
> > >>
> > >> Am 29. Januar 2021 20:54:06 GMT+00:00 schrieb Markus Metz <
> > >markus.metz.giswork at gmail.com>:
> > >> >Hi Huidae,
> > >> >
> > >> >On Thu, Jan 28, 2021 at 6:30 PM Huidae Cho <grass4u at gmail.com>
> wrote:
> > >> >>
> > >> >> 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?
> > >> >
> > >> >as I mentioned, there is no need to modernize the GRASS C code. The
> > >> >question is if we officially allow C99 features.
> > >> >
> > >> >For example a number of useful math-related functions and macros are
> only
> > >> >available with C99. See /usr/include/math.h on your system and
> search for
> > >> >C99. Also a number of features related to data types, particularly
> for
> > >> >various int datatypes (stdint.h), become available with C99. And the
> > >> >geographic lib in PROJ with src/geodesic.c wants C99. For new PROJ
> > >> >versions, C99 is a requirement.
> > >>
> > >>
> > >> If proj requires it, doesn't it automatically become a requirement for
> > >GRASS as well ?
> > >
> > >No, because the code base of other libs might have completely different
> > >compile requirements. A software can use functions and libs of other
> > >software packages, but does not need to follow the compile standards of
> > >those other software packages, because they are compiled independently.
> > >
> >
> > Thanks for the clarification.
> >
> > 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.
> >
> > @those who want to use more recent standards: what are your reasons for
> that ?
> >
> > Moritz
>


-- 
Huidae Cho, Ph.D., GISP, /hidɛ t͡ɕo/, 조희대, 曺喜大
GRASS GIS Developer
https://idea.isnew.info
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20210203/b50e53f0/attachment-0001.html>


More information about the grass-dev mailing list