[GiNaC-list] removed function in 1.7.1 without soname bump
Till Hofmann
thofmann at fedoraproject.org
Thu Oct 6 20:06:39 CEST 2016
On 05.10.2016 10:16, Richard B. Kreckel wrote:
> Hi,
>
> On 10/05/2016 12:08 AM, Richard B. Kreckel wrote:
>> I will do a release 1.7.2 these days with just this fixed.
>
> No, wait!
>
> The function 'method virtual GiNaC::ex
> GiNaC::pointer_to_map_function_1arg<const GiNaC::ex&>::operator()(const
> GiNaC::ex&)' removed from the ABI is this template class method
> operator() declared in <ginac/ex.h>:
>
> template<class T1>
> class pointer_to_map_function_1arg : public map_function {
> protected:
> ex (*ptr)(const ex &, T1);
> T1 arg1;
> public:
> explicit pointer_to_map_function_1arg(ex x(const ex &, T1), T1 a1) :
> ptr(x), arg1(a1) {}
> ex operator()(const ex & e) override { return ptr(e, arg1); } //!!!
> };
>
> What happend is that a GiNaC-internal static function has stopped using
> a pointer_to_map_function_1arg<const GiNaC::ex&> object.
>
> Please correct me if I'm wrong, but I suppose that any program/library
> linked against GiNaC will have to get its own copy of that method at
> compile time. And that makes this *not* an ABI breakage, right?
>
> -richy.
>
Hi Richy,
you're correct, and we've tested your hypothesis: If I use the removed
function in some test code, it will show up in its symbol table, even
with the 1.7.1 release; just as you expected. So 1.7.1 doesn't break ABI
compatibility and there is no need for a 1.7.2. release.
Thank you for your help in figuring this out!
Kind regards,
Till
More information about the GiNaC-list
mailing list