On 12 Jul 2003 at 3:01, Frank Heckenbach wrote:
It is just an informal ("NOTES") suggestion...
Indeed.
...which to my understanding means that such a mechanism would be just as non-standard as any other.
Agreed, but the EP standard defines the meaning of "extension" and suggests several (e.g., "external" as an interface-directive), so my reading is that certain extension mechanisms would be preferred over others.
Besides, if you want to declare external routines, you have to specify the linker name (aka asmname), anyway, and writing `attribute (name = 'foo')' vs. `external name 'foo'' isn't so much easier or harder.
It isn't so much a matter of writing as of reading. A module declared with:
module ifmod external;
...clearly shows that everything contained in the module is supplied by an external entity, whereas:
module ifmod;
...with dozens or perhaps hundreds of "external" directives on individual procedures, variables, etc. makes it much harder to determine by inspection whether anything is supplied in the (Pascal) module implementation.
In addition, you were apparently relying in C code on the default linker name of Pascal routines (first letter upper-case, rest lower-case)....
Actually, I was supplying "asmname"s for each routine to obtain the proper linkage to the third-party library.
-- Dave