[geos-commits] [SCM] geos branch master updated. 18ad844411880b3b15507ff21c7a452ab8694cc2
git at osgeo.org
git at osgeo.org
Sun Oct 1 12:22:52 PDT 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "geos".
The branch, master has been updated
via 18ad844411880b3b15507ff21c7a452ab8694cc2 (commit)
via 3c6391825ac5f9fbd253995f685c8bcc0f4f9d2a (commit)
from 316c4bc51d9d860b67344e48519ef98fd3c28c16 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 18ad844411880b3b15507ff21c7a452ab8694cc2
Merge: 316c4bc 3c63918
Author: Mateusz Loskot <mateusz at loskot.net>
Date: Sun Oct 1 12:22:51 2017 -0700
Merge branch 'ml/clarify-cpp-api-status' of mloskot/geos into master
commit 3c6391825ac5f9fbd253995f685c8bcc0f4f9d2a
Author: Mateusz Loskot <mateusz at loskot.net>
Date: Sun Oct 1 15:32:17 2017 +0200
Clarify C++ API has not been deprecated
Make it clear it is not a bug for client program
to use the C++ API.
Reverts patch submitted in https://trac.osgeo.org/geos/ticket/553
- merged by mistake, without RFC proposal, without PSC voting and
without public announcement.
Related discussions occurred via the mailing lists
https://lists.osgeo.org/pipermail/postgis-devel/2017-September/026548.html
https://lists.osgeo.org/pipermail/geos-devel/2017-September/008043.html
diff --git a/README.md b/README.md
index 2aa28c1..4b1bc51 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,12 @@ is required:
### Using the C interface (recommended)
+GEOS promises long term stability of C API
+
+The C library uses the C++ interface, but the C library follows
+normal ABI-change-sensitive versioning, so programs that link only
+against the C library should work without relinking when GEOS is upgraded.
+
To compile programs against the C lib (recommended):
CFLAGS += `geos-config --cflags`
@@ -68,16 +74,15 @@ Example usage:
capi/geostest.c contains basic usage examples.
-### Using the C++ interface (discouraged)
+### Using the C++ interface (no stability promise)
+
+Developers who decide to use the C++ interface should be aware GEOS
+does not promise API or ABI stability of C++ API between releases.
+Moreover C++ API/ABI breaking changes may not even be announced
+or include in the NEWS file
-NB: The C++ interface should not be used directly; the GEOS project
-views it as a bug for another program to use the C++ interface or even
-to directly link against the C++ library. The C++ library name will
-change on every minor release because it is too hard to know if there
-have been ABI changes. (The C library uses the C++ interface, but the
-C library follows normal ABI-change-sensitive versioning, so programs
-that link only against the C library should work without relinking
-when GEOS is upgraded.)
+The C++ library name will change on every minor release because
+it is too hard to know if there have been ABI changes.
To compile programs against the C++ lib:
diff --git a/src/Makefile.am b/src/Makefile.am
index cf3b41f..e08ed3e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -24,8 +24,7 @@ lib_LTLIBRARIES = libgeos.la
# libgeos uses -release because it is not feasible to know if the ABI
# has changed between releases; the project chooses not to expend the
-# effort to determine this because depending programs should not be
-# using the C++ library.
+# effort to determine this because GEOS does not promise ABI stability.
libgeos_la_LDFLAGS = \
-release @VERSION_MAJOR at .@VERSION_MINOR at .@VERSION_PATCH@ \
-no-undefined
-----------------------------------------------------------------------
Summary of changes:
README.md | 23 ++++++++++++++---------
src/Makefile.am | 3 +--
2 files changed, 15 insertions(+), 11 deletions(-)
hooks/post-receive
--
geos
More information about the geos-commits
mailing list