www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15496] New: Documentation about special/'__' symbols

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

          Issue ID: 15496
           Summary: Documentation about special/'__' symbols
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: turkeyman gmail.com

DMD emit's a lot of special/magic symbols.

In my current case, I'm piles of link errors like:

error LNK2001: unresolved external symbol
_D5libep6string12SharedString14__aggrPostblitMFNbNiZv
error LNK2001: unresolved external symbol
_D5libep6string12SharedString11__fieldDtorMFNbNiZv
error LNK2001: unresolved external symbol
_D5libep6string12SharedString15__fieldPostblitMFNbNiZv


I don't know why, and I have no idea what those functions are supposed to do,
or what actual functions those special names represent? Are they all compiler
generated, or are they something that I'm supposed to write?

There seems to be a massive suite of '__x' functions; I'd like to see a
reference listing all possible such symbols that users may encounter, and
explain what they are, and how they are written or generated. This isn't the
first time I've wondered about the many '__' functions.

The only reference that seems to exist are various hacks in phobos where there
is code that occasionally checks if they exist to determine some sort of
traits.

This doc should ideally also include ClassInfo and any other magic symbols that
exist.

--
Jan 01