<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Nov 29, 2016 at 10:02 AM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)">So we're all on the same page, our current encodings are:<br><br>External: 0<br>WeakAny: 16<br>Appending: 2<br>Internal: 3<br>LinkOnceAny: 18<br>ExternalWeak: 7<br>Common: 8<br>Private: 9<br>WeakODR: 17<br>LinkOnceODR: 19<br>AvailableExternally: 12<br><br>And the new encodings would be:<br><br>
External: 0<br>External + Interposible: 20<br>
Weak + Interposible: 16<br>
Appending: 2 [interposible N/A]<br>
Internal: 3 [never interposible]<br>
LinkOnce + Interposible: 18<br>
ExternalWeak: 7 [always interposible]<br>
Common: 8 [interposible N/A]<br>
Private: 9 [never interposible]<br>
Weak: 17<br>
LinkOnce: 19<br>
AvailableExternally: 12 [never interposible]<br><br>With the mappings:<br><br>[Old] -> [New]<br>External -> External<br>WeakAny -> Weak + Interposible<br>LinkOnceAny -> LinkOnce + Interposible<br>WeakODR -> Weak<br>LinkOnceODR -> LinkOnce<br><br>Is this what you had in mind?<br><br>Thanks again,<br>Hal</div></div></blockquote><div><br></div><div>Exactly!</div><div><br></div><div>The verifier should check that users aren't making invalid things like interposable internal/available_externally functions.</div><div><br></div><div>I'm not exactly sure when ExternalWeak applies and how we should model its interposability. I guess it would always be interposable to avoid special cases.</div></div></div></div>