[geos-devel] RFC 9: Restore C++ API as public API

Sebastiaan Couwenberg sebastic at xs4all.nl
Fri May 17 05:56:48 PDT 2019


On 5/17/19 2:21 PM, Andrew Bell wrote:
> But this seems like a choice for library users. From a packaging
> perspective, why isn't the issue one of API rather than binary
> compatibility?

Both API and ABI compatibility and an issue. API breaks require the
projects to adapt their code which takes time, ABI breaks require
distros to rebuild the packages. ABI breaks without API breaks suck, and
C++ has a tendency for that which C doesn't have. Yay for stable C symbols.

> Are you not rebuilding packages?

Obviously we are. And that's the problem, new GEOS releases tend to
cause build failures for the projects that rely on the C++ API.

Everything that relies on the stable C API doesn't need to be rebuilt
for new GEOS releases.

> On Fri, May 17, 2019, 6:30 AM Sebastiaan Couwenberg <sebastic at xs4all.nl>
> wrote:
> 
>> On 5/17/19 1:14 PM, Andrew Bell wrote:
>>> Why is this? There are many libraries that have C++ interfaces.
>>
>> Which also have difficulty providing a stable ABI. One that doesn't
>> change the symbols it exports with the new compiler releases, etc.
>>
>> Having a stable C ABI is a major plus for any project that uses C++ in
>> its codebase, it makes transitions to new releases much easier. A core
>> library like GEOS have many projects that require it, some are actively
>> maintained and implement changes quicky, others don't. And these make
>> life suck for distributions where all the projects need to be integrated
>> to work with the same version of GEOS.
>>
>>> On Thu, May 16, 2019, 11:37 PM Sebastiaan Couwenberg <sebastic at xs4all.nl
>>>
>>> wrote:
>>>
>>>> On 5/16/19 11:28 PM, Mateusz Loskot wrote:
>>>>> I'd like propose to effectively revert the RFC 6:
>>>>>
>>>>> https://trac.osgeo.org/geos/wiki/RFC9
>>>>
>>>> Please don't. We'll get more projects like OSSIM that break with new
>>>> GEOS releases, this causes significant delays before the new release can
>>>> be included in distributions where lots of projects depend on GEOS
>>>> (which all need to build with the new release).
>>
>> Kind Regards,
>>
>> Bas
>>
>> --
>>  GPG Key ID: 4096R/6750F10AE88D4AF1
>> Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/geos-devel
> 
> 
> _______________________________________________
> geos-devel mailing list
> geos-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/geos-devel
> 


-- 
 GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1


More information about the geos-devel mailing list