In our previous episode, Michael Van Canneyt said: > Because if it is something we decided, it simply means that we should change > it's meaning to be identical to mwpascal: cdecl calling convention, and const > structs passed by reference. If I'm right, 'stdcall' currently > has no meaning on non-windows platforms other than the one we put on it.
mwpascal is still per declaration and Delphi incompatible. And keep in mind that any implementation of a IUnknown must repeat any modifiers in the original source (including const ref and calling conventions) regardless of what option is chosen. That also goes for directives, but, if selective enough (e.g. for calling convention) modifier, they can be unit global, or even in practice application global (includefile) > If that is not possible, then I think Marco's idea of a switch is best. > I see it as similar to the {$packrecords } directive: it doesn't change the > syntax or meaning (as Jonas fears), but does instruct the compiler how to > handle things on a more low-level (in casu: assembler) scale. Good analogy, exactly what I meant: 1. more variants possible 2. not per declaration individually. > I think that having to write {$ifdef windows}const{$else}constref{$endif} > myarg: mytype > for possibly thousands of arguments in an interface description is simply not > an option. Note that I don't 100% surely know if this will happen in this particular case, specially if safecall meaning is modified. (IOW Jonas wants to do that to avoid this) It is just that a $switch will give some leeway in the future for similar cases. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel