On Friday, 26 January 2018 at 08:44:26 UTC, Seb wrote:
What is the benefit of using link-time renaming (a linker
specific feature) instead of directly renaming the symbol in
the compiler? We could be quite radical and hash all symbols >
a certain threshold. As long as we have a hash function with
strong enough collision resistance there shouldn't be any
problem.
-- Johannes
I thought LDC is already doing this with -hashtres?
https://github.com/ldc-developers/ldc/pull/1445
* What i suggested doesn't require any hashing, so it can produce
minimal symbol size with 0 risk of collision, in fact optimally
minimum symbol size if we wanted to (using an incremented counter
i to remap the i'th symbol)
* -hashtres is still experimental, and doesn't work with phobos,
and has a lower bound on symbol size since it's using a hash; it
has other limitations as you can see in
https://github.com/ldc-developers/ldc/pull/1445#issue-149189001
* a potential extension of this proposal is to do it not at link
time but at compile time, where we'd maintain (in memory) the
mapping long_mangle=>short_mangle and serialize it to a file in
case we'd like to support separate compilation.