Simon Peyton-Jones wrote:
[...] I think it's inevitable that the form of type of the foreign thing is going to depend on per-language details. For C we have
call call indirect label
Hmmm, we actually have 5 different things here...
For Java we have
4 different invocations new
Just nitpicking, but: There's nothing special about Java's <init> resp. <clinit> methods which isn't covered already by the 4 invoke instructions.
For C++ we have
call virt call non-virt new
And what about multiple inheritance? Most implementations need some kind of pointer adjustment to get their vtables right. %-]
I think we have to bite the bullet and put this stuff in the language specific string, including our current static/dynamic thing. [...]
*sigh* I think so, too...
[...] My criterion is
language specific stuff inside the "..." string language independent stuff outside
But static/dynamic probably means different things, depending on the callconv. Cheers, Sven