[GiNaC-devel] unintended? abi change in ginac 1.7.3

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Sun Feb 18 21:06:04 CET 2018


[I'm one of the maintainers of ginac in Fedora]

Hi,

in recent release, GiNaC::matrix::inverse() const was inlined, which
changes the ABI, and there were some other backwards-incompatible
changes. See the abi diff report [1], and the bug report where this
was discussed [2]. Was this intentional?

> ================ changes of 'libginac.so.6.0.2'===============
>  10 Removed functions:
>     'method void GiNaC::make_flat_inserter::combine_indices(const GiNaC::exvector&)'    {_ZN5GiNaC18make_flat_inserter15combine_indicesERKSt6vectorINS_2exESaIS2_EE}
>     'method GiNaC::matrix GiNaC::matrix::inverse() const'    {_ZNK5GiNaC6matrix7inverseEv}
>     'function GiNaC::function GiNaC::psi<GiNaC::ex>(const GiNaC::ex&)'    {_ZN5GiNaC3psiINS_2exEEENS_8functionERKT_}
>     'method cln::cl_I& cln::cl_I::operator=(const cln::cl_I&)'    {_ZN3cln4cl_IaSERKS0_}
>     'method cln::cl_N& cln::cl_N::operator=(const cln::cl_N&)'    {_ZN3cln4cl_NaSERKS0_}
>     'method cln::cl_R& cln::cl_R::operator=(const cln::cl_R&)'    {_ZN3cln4cl_RaSERKS0_}
>     'method const cln::cl_MI cln::cl_heap_modint_ring::canonhom(const cln::cl_I&)'    {_ZN3cln19cl_heap_modint_ring8canonhomERKNS_4cl_IE}
>     'method bool cln::cl_heap_modint_ring::equal(const cln::cl_MI&, const cln::cl_MI&)'    {_ZN3cln19cl_heap_modint_ring5equalERKNS_5cl_MIES3_}
>     'method const cln::cl_MI cln::cl_heap_modint_ring::uminus(const cln::cl_MI&)'    {_ZN3cln19cl_heap_modint_ring6uminusERKNS_5cl_MIE}
>     'method bool cln::cl_heap_modint_ring::zerop(const cln::cl_MI&)'    {_ZN3cln19cl_heap_modint_ring5zeropERKNS_5cl_MIE}

This is unfortunate, because the interface change requires a rebuild
of all dependent packages, but what's worse, the fact that the so
version was not changed means that dependent programs might crash
instead of just failing to start.

Please consider either reverting the abi-breaking changes and
releasing 1.7.4, or bumping the so-version of the library (to 7.0.0
most likely) and releasing too…

[1] https://bugzilla.redhat.com/attachment.cgi?id=1390882
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1541187

Thanks,
Zbyszek


More information about the GiNaC-devel mailing list