What kind of tests are sufficient: Some personal thoughts

I don’t think they’ve been mentioned yet, but ABI compliance tests also exist:

Perhaps these are not relevant for PRIMA, since releases occur in the form of source code.

I suppose such tools are one way to get a “semantic versioning diff”, or at least the confirmation at the object level whether compatibility has been broken. Unfortunately, the tools don’t support Fortran modules, so that is uncharted territory. The authors of the Spack package manager have also been working in this area: https://youtu.be/gWe2K_oCp6A?si=xjrFFNyq-sqjrA_2.

But I guess that ABI compatibility at Fortran level seems to be an utopia. In the System V ABI forum I’ve read that:

For what it’s worth, in my experience working with several FORTRAN compiler vendors to capture a minimal x86-64 ABI before, they actually did not want anything more than what is already in it. They wanted the freedom to do all kinds of tricks in order to achieve performance, some which were proprietary, like how arrays were laid out in memory as well as references, when an ABI could be stifling to them. In the end, since FORTRAN is a much simpler language, source-code compatibility is pretty much a given and therefore binary compatibility is not so important as it is for C and C++.

But if some users on Linux are interested in stability at the shared object level, a library of static Fortran77-like external routines may be the right choice, as it is part of the System V ABI (PDF, 483 KB) (see chapter 9.2, pg. 107 in version 1.0).

1 Like