On 15 Feb 2011, at 19:01, Jeppe Johansen wrote:
> What about allowing a new keyword "weak" and let it have two forms(something
> like you suggested back in one of the mails from 12th january)? Name mangling
> is an issue of course. It would be easiest to handle if weak symbols simply
> weren't name mangled(something like cdecl and co)
weakexternal can already be combined with cdecl. weak+external could also be
combined with cdecl. As an aside, cdecl is not the same as "no mangling". It
means "mangle the same as the C compiler", which varies from platform to
platform.
> procedure TestProc; weak; // This produces a weak symbol
> begin
> end;
>
> procedure TestProc2; weak default 'SomeDefaultFunction'; // Weak+default
> makes the declaration external by default
> procedure TestProc3; weak default 'SomeDefaultFunction'; external name
> 'Test_TestProc3'; // Overcome eventual name mangling problems. Symbol is
> called Test_TestProc3 and is linked to SomeDefaultFunction if not resolved at
> linktime
> procedure TestProc4; weak; external; // Replaces/does the same as weakexternal
I don't understand why you again propose to change the meaning of "external
name 'xxx'" for weak symbols. As I mentioned in my previous mail, for
consistency reasons something like that will not be done. I also don't see the
advantage of inventing a new syntax ("weak default") when existing modifiers
can already express the required semantics.
Jonas_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel