COMMUNITY

17 different String types in HashLink?

I’m currently trying to embed HashLink running Haxe code, and have run into an odd thing: with certain larger codebases, Hashlink has multiple String types in the hl_code->types array. Notably, some of these aren’t initialized fully with type->obj->global_value not pointing anywhere useful. I only see this for String types though, all other types (including $String) are only present in code->types once.

This is on x86_64 Linux, if that matters

All the pointed-to types are unique, and this is after the entry point is run:

got string at index 13:
["String", #<Hl::Type:0x0000555555a91140>]
got string at index 942:
["String", #<Hl::Type:0x0000555555dd7ac0>]
got string at index 947:
["String", #<Hl::Type:0x0000555555dd60a8>]
got string at index 998:
["String", #<Hl::Type:0x0000555555dbe160>]
got string at index 1003:
["String", #<Hl::Type:0x0000555555dbd210>]
got string at index 1033:
["String", #<Hl::Type:0x0000555555db4110>]
got string at index 1326:
["String", #<Hl::Type:0x0000555555d9f468>]
got string at index 1328:
["String", #<Hl::Type:0x0000555555d9ea90>]
got string at index 1332:
["String", #<Hl::Type:0x0000555555d9dcf8>]
got string at index 1649:
["String", #<Hl::Type:0x0000555555dfaed0>]
got string at index 1652:
["String", #<Hl::Type:0x0000555555dfa278>]
got string at index 1687:
["String", #<Hl::Type:0x0000555555ded230>]
got string at index 1693:
["String", #<Hl::Type:0x0000555555debf48>]
got string at index 1716:
["String", #<Hl::Type:0x0000555555de62a0>]
got string at index 1762:
["String", #<Hl::Type:0x0000555555ddf180>]
got string at index 1764:
["String", #<Hl::Type:0x0000555555dde640>]
got string at index 1766:
["String", #<Hl::Type:0x0000555555dddba0>]

Is this expected?