backwards incompatibility

Dave Love dave.love@manchester.ac.uk
Mon Mar 12 20:42:00 GMT 2018


Steve Kargl <sgk@troutmask.apl.washington.edu> writes:

> Hi Dave,
>
> While I do not speak for the other contributors, I can
> assure you that we take breaking the library ABI quite
> serious.  We maintain a list of changes that we know will
> cause problems.  If a change occurs that breaks the ABI,
> we try to merge as many changes from the list as possible
> to minimize on-going breakage.  See
>
> https://gcc.gnu.org/wiki/LibgfortranAbiCleanup
>
> for those that have yet to be merged/fixed.  Unfortunately,
> the addition of user defined derived type IO, which was a
> much requested feature, required a change to the library
> internals for the upcoming 8.0.

Yes, sure.  I'm interested in whether there's something fundamental that
prevents symbol versioning keeping backwards compatibility, or if it's
basically a question of effort.

There's a related question about what happens if you try to link code
from, say gfortran 6 and 8.  (I forgot or missed that there was a break
at 7 too.)  Is it expected to work, fail to link, or potentially fail
mysteriously at run time?

> Maintaining the internals of *.mod files is even more difficult
> as changes are sometimes required for bug fixes as well as when
> new features are implemented (e.g., parameterized derived type).

Similarly, I'm wondering whether it should at least be possible to write
a translator from an old version to a new one if someone worked on it,
or whether that can't work.

Thanks for any insight.



More information about the Fortran mailing list