[Issue 15831] IFTI voldemort type exploding bloat

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Jul 4 23:32:57 PDT 2016


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

--- Comment #12 from Rainer Schuetze <r.sagitario at gmx.de> ---
(In reply to Steven Schveighoffer from comment #11)
> 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.

I started to just allow both versions in the tests, but that started to spread
across a lot of files. Versioning on some condition should be ok, too.

> 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.

The decision cannot be made just for user code, phobos and druntime must be
compiled with the same mangling.

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

I skipped over a search for "mangling" and "mangl" in bugzilla:

Trouble with scoped variables/functions:

- Issue 4699 - Functions in peer scopes cannot have the same name
- Issue 14831 - Each function local symbols should have unique mangled name

Ambiguous name mangling:

- Issue 3043 - Template symbol arg cannot be demangled
- Issue 5957 - Ambiguous mangling of module and template in template symbol
args
- Issue 6525 - Numeric literals should always be mangled with a leading 'i'
- Issue 6526 - Disambiguate mangling of AA literals
- Issue 6527 - Ambiguous mangling of inout parameters
- Issue 11273 - inequable template alias parameters can be mangled identically
- Issue 14576 - [ddemangle] core.demangle unable to handle ambiguity in symbols

Bogus mangling/demangling:

- Issue 8789 - mangling of const member function
- Issue 14319 - core.demangle does not support member function attributes
- Issue 14563 - core.demangle: Does not demangle type modifers

- Issue 10393 - demangle doesn't work for unicode symbol names
- Issue 14410 - core.demangle doesn't handle typeof(null) correctly

- Issue 11131 - variables without linkage shouldn't have a mangling (.mangleof)
- Issue 11248 - template value parameter cause too long mangling
- Issue 14894 - mangling of mixins and lambdas can change w/ -unittest or other
versions

Compiler generated special symbols don't follow the ABI:

- Issue 5644 - The mangling of constructors is not documented by the ABI
- Issue 6045 - Unable to demangle symbols
- Issue 11586 - core.demangle should understand _D16TypeInfo_HAyayAa6__initZ
etc.
- Issue 10189 - demangle doesn't work with __ModuleInfoZ __initZ __arrayZ

Different number of underscores for _D:

- Issue 8207 - OS X: Should extern(D) symbols include another underscore?
- Issue 15748 - inconsistent symbols generated by dmd vs ldc

--


More information about the Digitalmars-d-bugs mailing list