Thread overview
What is TypeIdent in the ABI spec ?
Jul 04, 2015
deadalnix
Jul 05, 2015
Walter Bright
Jul 06, 2015
deadalnix
Jul 07, 2015
Walter Bright
Jul 07, 2015
deadalnix
Jul 07, 2015
sid
Jul 07, 2015
deadalnix
Jul 07, 2015
Kenji Hara
Jul 07, 2015
David Nadlinger
July 04, 2015
http://dlang.org/abi.html#TypeIdent

TypeIdent:
    I QualifiedName

What is that ?
July 05, 2015
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.
July 06, 2015
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 ?
July 07, 2015
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.
July 07, 2015
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.
July 07, 2015
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
July 07, 2015
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.
July 07, 2015
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
July 07, 2015
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