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