EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI)
From: Michael Davidsaver via Tech-talk <[email protected]>
To: "J. Lewis Muir" <[email protected]>
Cc: [email protected]
Date: Thu, 9 Jan 2020 11:50:55 -0800
On 1/9/20 11:10 AM, J. Lewis Muir wrote:
> On 01/09, Michael Davidsaver via Tech-talk wrote:
>> On 1/9/20 12:47 AM, Wang Xiaoqiang via Tech-talk wrote:
>>> I assume this ABI checking can be one additional step in the CI script, using tools like abi-compliance-checker. It could then be used as a guideline in development. e.g. attached is a generated report of pvAccess library between 7.0.2 and 7.0.3.
>>
>> I usually give a small sigh when I read "ABI compatibility" because it's
>> actually not as well defined and clear cut as you might think.  (especially
>> wrt. c++)
>>
>> When this has come up in the past, it has been difficult to convince those
>> arguing in favor of the difficulty.
> 
> Certainly I agree that maintaining ABI compatibility with C++ is much
> harder than with C, but I still think it's doable. 


I'm sorry, but I can't help but chuckle at your reply, which is _exactly_
what has been said in every previous discussion.

I concede that MS with it's army of devs., or Qt which it's history,
can design and maintain ABI compatible libraries.

The question has never been if it were possible, but rather who would do
this work for Base?

Thus my challenge (which you have chosen not to quote)

> Please identify all ABI changes made between 3.14.12.7 and 3.14.12.8
> and note those which are "incompatible".





> Microsoft has many
> C++ libraries, and they've managed to do it.  KDE and Qt similarly have
> managed to do it.  There are resources that attempt to explain changes
> you can and cannot make if you want to maintain ABI compatibility such
> as [1], [2], and [3] which I found just now with a web search.  And then
> there are the analysis tools to help catch mistakes.  I'm not saying it
> would be trivial, but so far I haven't seen evidence that it would be
> extremely difficult.
> 
> Lewis
> 
> [1]: https://www.youtube.com/watch?v=PHrXGHDd9no
> [2]: https://events.static.linuxfound.org/sites/events/files/slides/Binary_Compatibility_for_library_devs.pdf
> [3]: https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B
> 


Replies:
Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) J. Lewis Muir via Tech-talk
References:
EPICS release series after 7.0: 7.1 or 8.0? J. Lewis Muir via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Johnson, Andrew N. via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Wang Xiaoqiang via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) Michael Davidsaver via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) J. Lewis Muir via Tech-talk

Navigate by Date:
Prev: Re: EPICS Smartmotor example IOC Peterson, Kevin M. via Tech-talk
Next: Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) J. Lewis Muir via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) J. Lewis Muir via Tech-talk
Next: Re: EPICS release series after 7.0: 7.1 or 8.0? (ABI) J. Lewis Muir via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 09 Jan 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·