https://issues.dlang.org/show_bug.cgi?id=15831

--- Comment #11 from Steven Schveighoffer <schvei...@yahoo.com> ---
(In reply to Rainer Schuetze from comment #10)
> The PR fails because it seems there are some issues with building shared
> libraries.

This is something I can't really help, but maybe we can enlist some experts
from the forums.

> In addition, a number of compiler tests and unittests check the
> current mangling explicitely, so these have to be adjusted. I'm not sure how
> useful these tests are, maybe they should check the mangle-demangle pair
> instead.

Since the mangling is part of the ABI, I think it's valid to check for them.
Perhaps what we need is a versioned-out version that checks for your expected
mangling, and then when we "flip the switch" we can switch to that version.

> Unfortunately, changing the mangling is a not-so-small breaking change that
> affects a number of functions in druntime and phobos (e.g. demangle,
> core.internal.traits.externDFunc and std.traits.mangledName) that don't have
> a feasable replacement yet (my best guess is to add some __trait).

Again, we should use versioned code. The D compiler can define whether the new
mangling scheme is enabled or not.

> It's also possible that people have taken advantage of the current mangling
> in their code.

This is something we can't really help. However, I highly doubt that anyone is
taking advantage of giant voldemort symbol names. Mangling is something I doubt
we can deprecate. However, their code could employ the version scheme to at
least avoid expectations that won't be met.

> In addition, we should verify a new mangling addresses reported ambiguities
> of the existing mangling.

Links?

(In reply to ZombineDev from comment #9)
> Thanks, Rainer! That's really great.

+100, this is awesome work!

--

Reply via email to