Fragile ABI

R Grocott rgrocottbugzilla at gmail.com
Sat Aug 18 07:50:54 PDT 2012


Hey Michel, posted this question earlier in the thread, but I 
think you might have missed it:

> The blog post I linked only talks about rewriting vtables at 
> dynamic-link-time. Would it be possible to implement something 
> similar for the sizes of structs and scope-classes, and the 
> relative address of member variables? dsimcha's post has led me 
> to realize that without these additional features, the ABI 
> would still be quite fragile.

Long story short: Could your proposal realistically be extended 
to support flexible sizeofs and member-variable offsets? I figure 
that such a system might as well stabilize the entire class ABI, 
rather than just vtables.

I would guess that flexible sizeofs would increase the runtime 
cost only very slightly, but flexible member-variables might be 
more of an issue. The cost could be minimized by looking up 
offsets only when crossing a library boundary (say, when calling 
a template method on an extern (D_FlexibleABI) class, or 
accessing a protected member variable of same), but would that 
actually be possible?


More information about the Digitalmars-d mailing list