<div dir="ltr">On Wed, Jun 19, 2013 at 10:35 AM, edA-qa mort-ora-y <span dir="ltr"><<a href="mailto:eda-qa@disemia.com" target="_blank">eda-qa@disemia.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 19/06/13 19:23, Eli Friedman wrote:<br>
> I think you've covered all the possible implementations.<br>
><br>
> In terms of just generating long names, LLVM and common platforms can<br>
> handle long names reasonably well because C++ often uses such names.<br>
>  Also, the Itanium C++ ABI has a scheme to compress repeated uses of the<br>
> same type which might be of interest; see<br>
> <a href="http://mentorembedded.github.io/cxx-abi/abi.html#mangling-compression" target="_blank">http://mentorembedded.github.io/cxx-abi/abi.html#mangling-compression</a> .<br>
><br>
> In terms of a registry, you might want to consider whether these helpers<br>
> actually need to be exposed across libraries.<br>
<br>
</div>Annoyingly, the larger the type the more important it is to share -- for<br>
small types everything will just be inlined so it doesn't matter.<br>
<br>
Any idea on what the limit of a name can be? I'll try a compression like<br>
system as well, but I will likely have to truncate at some point (where<br>
I can add a hash).<br>
<div class="HOEnZb"><div class="h5"></div></div></blockquote></div><br></div><div class="gmail_extra">IIRC, there isn't any absolute limit.  You'll probably run into performance issues if your symbols get beyond a few kilobytes, though.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">-Eli</div></div>