On Mon, Apr 9, 2012 at 11:44 AM, David Jeske <[email protected]> wrote:

> This problem space is not about header files. This is about the
> unknowability of runtime field-offsets in a subtype capable system with
> module upgradability. It's the C++ fragile-base-class problem, plus a bunch
> more.
>

... and on steroids. :-)

But that part is pretty solvable. The *real* problem is the interaction
between late binding of types, type-driven method resolution, and inlining.


> If you use our typical model for single-inheritence subtyping (subclasses)
> across module boundaries, then to achieve any form of forward
> upgradability, you must do runtime field resolution (either slowly, or
> through JIT).
>

What you are trying to say is that you have to deal with the consequences
of [very] late binding. I agree with that. There are other approaches in
addition to the two that you mention here.

However, this is only the tip of the iceberg. The entire space of
> typing/subtyping/parametrics/garbage-collection/JIT is all deeply
> inter-related. It isn't a situation where you "pick your language features"
> then "design your modular compilation system", some of these features are
> actually making it difficult if not impossible to support modular forward
> compatible separate compilation units.
>

I strongly agree with this.


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to