www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - What is TypeIdent in the ABI spec ?

reply "deadalnix" <deadalnix gmail.com> writes:
http://dlang.org/abi.html#TypeIdent

TypeIdent:
     I QualifiedName

What is that ?
Jul 04 2015
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 7/4/2015 3:14 PM, deadalnix wrote:
 http://dlang.org/abi.html#TypeIdent

 TypeIdent:
      I QualifiedName

 What is that ?
It's used when there's an unresolved type.
Jul 04 2015
parent reply "deadalnix" <deadalnix gmail.com> writes:
On Sunday, 5 July 2015 at 05:23:41 UTC, Walter Bright wrote:
 On 7/4/2015 3:14 PM, deadalnix wrote:
 http://dlang.org/abi.html#TypeIdent

 TypeIdent:
      I QualifiedName

 What is that ?
It's used when there's an unresolved type.
Unresolved types in the ABI ? Is that even possible ?
Jul 06 2015
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 7/6/2015 3:52 PM, deadalnix wrote:
 On Sunday, 5 July 2015 at 05:23:41 UTC, Walter Bright wrote:
 On 7/4/2015 3:14 PM, deadalnix wrote:
 http://dlang.org/abi.html#TypeIdent

 TypeIdent:
      I QualifiedName

 What is that ?
It's used when there's an unresolved type.
Unresolved types in the ABI ? Is that even possible ?
I don't remember the cases, but yes.
Jul 07 2015
next sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Tuesday, 7 July 2015 at 07:24:45 UTC, Walter Bright wrote:
 On 7/6/2015 3:52 PM, deadalnix wrote:
 On Sunday, 5 July 2015 at 05:23:41 UTC, Walter Bright wrote:
 On 7/4/2015 3:14 PM, deadalnix wrote:
 http://dlang.org/abi.html#TypeIdent

 TypeIdent:
      I QualifiedName

 What is that ?
It's used when there's an unresolved type.
Unresolved types in the ABI ? Is that even possible ?
I don't remember the cases, but yes.
I don't think we mean the same thing by "Unresolved types" . If the type is unknown, it is not possible to do codegen at all.
Jul 07 2015
parent reply "sid" <sidmutha gmail.com> writes:
On Tuesday, 7 July 2015 at 09:47:20 UTC, deadalnix wrote:
 On Tuesday, 7 July 2015 at 07:24:45 UTC, Walter Bright wrote:
 On 7/6/2015 3:52 PM, deadalnix wrote:
 On Sunday, 5 July 2015 at 05:23:41 UTC, Walter Bright wrote:
 On 7/4/2015 3:14 PM, deadalnix wrote:
 http://dlang.org/abi.html#TypeIdent

 TypeIdent:
      I QualifiedName

 What is that ?
It's used when there's an unresolved type.
Unresolved types in the ABI ? Is that even possible ?
I don't remember the cases, but yes.
I don't think we mean the same thing by "Unresolved types" . If the type is unknown, it is not possible to do codegen at all.
This might help: http://forum.dlang.org/post/mailman.192.1248786829.14071.digitalmars-d puremagic.com
Jul 07 2015
parent "deadalnix" <deadalnix gmail.com> writes:
On Tuesday, 7 July 2015 at 14:04:56 UTC, sid wrote:
 On Tuesday, 7 July 2015 at 09:47:20 UTC, deadalnix wrote:
 On Tuesday, 7 July 2015 at 07:24:45 UTC, Walter Bright wrote:
 On 7/6/2015 3:52 PM, deadalnix wrote:
 On Sunday, 5 July 2015 at 05:23:41 UTC, Walter Bright wrote:
 On 7/4/2015 3:14 PM, deadalnix wrote:
 http://dlang.org/abi.html#TypeIdent

 TypeIdent:
      I QualifiedName

 What is that ?
It's used when there's an unresolved type.
Unresolved types in the ABI ? Is that even possible ?
I don't remember the cases, but yes.
I don't think we mean the same thing by "Unresolved types" . If the type is unknown, it is not possible to do codegen at all.
This might help: http://forum.dlang.org/post/mailman.192.1248786829.14071.digitalmars-d puremagic.com
I don't think so. The topic you link discuss parsing. This is about ABI. By the time ABI come into play, parsing is long done.
Jul 07 2015
prev sibling parent Kenji Hara via Digitalmars-d <digitalmars-d puremagic.com> writes:
2015-07-07 16:24 GMT+09:00 Walter Bright via Digitalmars-d <
digitalmars-d puremagic.com>:

 On 7/6/2015 3:52 PM, deadalnix wrote:

 Unresolved types in the ABI ? Is that even possible ?
I don't remember the cases, but yes.
In old days, Type::merge() had generated mangled name even for TypeIdentifier. It might be related to the topic. --- Recently, a similar mangling definition issue around template instance had reported, but finally it's marked as invalid. https://issues.dlang.org/show_bug.cgi?id=14592 Current dmd uses __U for the front-end only instances, but it won't appear in the generated symbols. It's just for the dmd-internal, so it's not documented in the spec. I think we can take same approach. As deadalnix pointed out, TypeIdentifier will never appear in any valid symbol names in object files. Therefore the definition would be dmd-internal specific, and can be removed from the spec. Kenji Hara
Jul 07 2015
prev sibling parent "David Nadlinger" <code klickverbot.at> writes:
On Monday, 6 July 2015 at 22:52:47 UTC, deadalnix wrote:
 Unresolved types in the ABI ? Is that even possible ?
I suppose it could happen if DMD tries to generate the mangle string for a type that in some way or another forward-references itself. Unfortunately, I can't point you to a concrete example, but I've had all kinds of fun bugs in LDC due to DMD sending partially analyzed types to the glue layer. These issue often involved forward references and Voldemort types (or nested types of some other sort). Maybe just grep the symbol list of some large project for the pattern? — David
Jul 07 2015