https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108261

--- Comment #19 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Gaius Mulley from comment #18)
> For the runtime perspective then your layered approach is much cleaner.

indeed .. 

> It would be good to allow users to be able to use pim and some iso
> functionality or visa versa.

So we have:

1. some content that is common (unequivocally) = com

2. some content that must be local to iso (it conflicts with 3) = iso

3. some content that must be local to pim (it conflicts with 2) = pim

4. some iso content that could also be used by pim = ixt

5. some pim content that could also be used by iso = pxt

assuming we cannot combine ixt and pxt (because doing so would make it
impossible to have a 'strict' mode)

==== we could avoid a layering violation thus:

fiso (strict) = iso + ixt +  com
fiso (non-strict) = iso + ixt + pxt + com

fpim* (strict?) pim + pxt + com
fpim* (non-strict) pim + pxt + ixt + com


===== still seems overly complex (but workable) ..

Of course, if we can alter the mangling of the iso and pim content so that it
does not conflict .. 

.. then IMO we can just have one combined library and the FE should be
responsible for disallowing interfaces that are not permitted by the selected
dialect.

(i.e. if the code never refers to a disallowed symbol, then it does not matter
if the library contains it.)

Reply via email to