Discussion:
[Proj] Compiling Proj 5.2.0
Roger Oberholtzer
2018-09-17 07:50:30 UTC
Permalink
[ 37s] checking whether g++ supports C++11 features with -h std=c++11... no
[ 37s] configure: error: *** A compiler with support for C++11
Shouldn't the test

-h std=c++1

be

-std=c++11
--
Roger Oberholtzer
Greg Troxel
2018-09-17 18:25:18 UTC
Permalink
Post by Roger Oberholtzer
[ 37s] checking whether g++ supports C++11 features with -h std=c++11... no
[ 37s] configure: error: *** A compiler with support for C++11
Shouldn't the test
-h std=c++1
be
-std=c++11
It's very surprising that a library that has required only c99 for many
years suddenly requires not just c++ but c++11. That's not a problem
in many places, but I suspect is an issue for some enviroments. So if
it's possible to avoid this (different test library?), that would be
nice.
Even Rouault
2018-09-17 18:30:33 UTC
Permalink
Post by Greg Troxel
at a library that has required only c99 for many
years suddenly requires not just c++ but c++11. That's not a problem
in many places, but I suspect is an issue for some enviroments. So if
it's possible to avoid this (different test library?), that would be
nice.
Next major version will require C++11 for new functional code
( https://github.com/OSGeo/proj.4/pull/1040 )

Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
Greg Troxel
2018-09-17 18:32:10 UTC
Permalink
Post by Even Rouault
Post by Greg Troxel
at a library that has required only c99 for many
years suddenly requires not just c++ but c++11. That's not a problem
in many places, but I suspect is an issue for some enviroments. So if
it's possible to avoid this (different test library?), that would be
nice.
Next major version will require C++11 for new functional code
( https://github.com/OSGeo/proj.4/pull/1040 )
Thanks - that's IMHO unfortunate, but it makes the current discussion
moot.
Howard Butler
2018-09-18 01:56:53 UTC
Permalink
Post by Greg Troxel
It's very surprising that a library that has required only c99 for many
years suddenly requires not just c++ but c++11. That's not a problem
in many places, but I suspect is an issue for some enviroments. So if
it's possible to avoid this (different test library?), that would be
nice.
Greg,

It's time to move forward. New fangled C++11 is already 7+ years old :)

There have been some very vocal mailing list members who have complained vociferously about the people doing the development of PROJ not doing the things that they want. C99 compatibility in perpetuity has an opportunity cost. Those who wish to preserve C99 compatibility for PROJ for all of Even's WKT efforts did not step forward to take the work on. Those who can only use C99 can continue to use the older versions of the software. If we need to open some maintenance branches to preserve their continued patches and improvements of those branches, they can start making pull requests against the relevant release tags.

WKT going into PROJ (and its C++11 requirement) is a recognition of PROJ's role in a constellation of software. The inability to speak definitions of coordinate systems in the language that the rest of the industry can consume hurts interoperability of PROJ and all of the software pieces that depend upon it. Through the gdalbarn.com <http://gdalbarn.com/> effort, Even is leading a significant reinvestment in the infrastructure of these software tools and their relationships to each other. This effort has a incremental roadmap that isn't too disruptive to PROJ.

The different test library makes it more efficient to write tests more easily. A refactor of all of the tests to a different framework is a big lift for little gain. Again, someone must step forward to take on the development of these nice-to-haves.

Howard
Roger Oberholtzer
2018-09-18 06:17:02 UTC
Permalink
Post by Howard Butler
There have been some very vocal mailing list members who have complained vociferously about the people doing the development of PROJ not doing the things that they want. C99 compatibility in perpetuity has an opportunity cost. Those who wish to preserve C99 compatibility for PROJ for all of Even's WKT efforts did not step forward to take the work on. Those who can only use C99 can continue to use the older versions of the software. If we need to open some maintenance branches to preserve their continued patches and improvements of those branches, they can start making pull requests against the relevant release tags.
Just to be sure:

Do you mean that there will not be a C interface to the new PROJ? Or
you are meaning that PROJ itself will be c++11, but with a C API for
client programs to use. I am guessing/hoping the later.
--
Roger Oberholtzer
Even Rouault
2018-09-18 06:27:58 UTC
Permalink
Post by Roger Oberholtzer
Post by Howard Butler
There have been some very vocal mailing list members who have complained
vociferously about the people doing the development of PROJ not doing the
things that they want. C99 compatibility in perpetuity has an opportunity
cost. Those who wish to preserve C99 compatibility for PROJ for all of
Even's WKT efforts did not step forward to take the work on. Those who
can only use C99 can continue to use the older versions of the software.
If we need to open some maintenance branches to preserve their continued
patches and improvements of those branches, they can start making pull
requests against the relevant release tags.
Do you mean that there will not be a C interface to the new PROJ? Or
you are meaning that PROJ itself will be c++11, but with a C API for
client programs to use. I am guessing/hoping the later.
Was discussed in
http://lists.maptools.org/pipermail/proj/2018-May/008214.html
and related thread

Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
Roger Oberholtzer
2018-09-18 10:32:40 UTC
Permalink
Post by Even Rouault
Post by Roger Oberholtzer
Do you mean that there will not be a C interface to the new PROJ? Or
you are meaning that PROJ itself will be c++11, but with a C API for
client programs to use. I am guessing/hoping the later.
Was discussed in
http://lists.maptools.org/pipermail/proj/2018-May/008214.html
and related thread
Point 3:

- Part of that C++ externally accessible API *might* also be exposed
through new
C API

So I am guegsing that whatever can currently be done in the C API will
continue. New things available via the c++ interface are undecided.
--
Roger Oberholtzer
Even Rouault
2018-09-18 10:42:42 UTC
Permalink
Post by Roger Oberholtzer
So I am guegsing that whatever can currently be done in the C API will
continue.
Yes, that was point 4: "existing proj C API still available through the plans
exposed in the past."
And the deprecation plans for the previous generations of C API are exposed
in:
https://proj4.org/development/index.html
--
Spatialys - Geospatial professional services
http://www.spatialys.com
Loading...