Frank Heckenbach wrote:
... snip ...
However, unless there's heavy resistance, I'd like to deprecate the `c' and `c_language' directives, and drop them in a later release. So,
procedure Foo; c;
should be turned to:
procedure Foo; external name 'foo';
What about a plain `external' without `name' or `asmname'? Currently, this keeps the "default" asmname (first letter uppercase, the rest lowercase). Some time in the future, we'll need name mangling (for qualified identifiers and overloading), so the default asmname will be something ugly which one should not have to know about in order to write interfacing C code or such.
The whole asmname/external name thing is non-standard, so it should be as plainly understandable as possible. Thus I would favor 'externalname' as the ONLY available method. The standard allows for directives following the procedure declaration, and I am not sure if the separate words in 'external foo' qualify. 'external' by itself is a common usage.