Carel Fellinger wrote:
On the other hand I would very much like to have *some* extension agreed upon to be used for interface-only source, say ".pi". That way it becomes possible to apply --automake to true separate compilation.
To me it seems elegant that when interface and implementation are split in separate files, their file names only differ in extension, and it would definitely help if a specific extension was allotted to interface sources and a different one to implementation sources.
The automake would then first try to locate a separate ".pi" interface file, compile it and import the "gpi", and later but prior to calling the linker it would try to compile the accompaniing ".p" or ".pas" implementation file. If that separate interface file isn't found, then the ".p" or ".pas" file is taken to contain both the interface as wel as the implementation and it is compiled just once at the moment it is needed in an import statement.
I don't think it's worth the trouble to distinguish between program, implementation-only or shared-interface-and-implementation files, as I don't see how this serves any purpose for the automake process.
Oh, so you're not mainly talking about file names, but about the automake mechanism.
Well, as far as our plans go, automake will disappear in the future and be replaced by an external utility. This utility is currently under development, but for now it doesn't have much support for separate interface/implementation files, either. (And it will not really "need" it because it will use more intelligent mechanisms to decide when to recompile, i.e., even if interface and implementation are in the same file, but only the implementation was changed since the last recompilation, it won't recompile dependent files.)
So I suggest do postpone any such discussion until this change (which might not happen too soon, actually, since automake is currently working almost fine, so the priority is not too high, but I don't want to invest any more effort in automake since it's bound to disappear).
Frank