You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We emit the VWT reference inline which breaks on Windows as it is cross-module. This was fixed for most cases using the singleton strategy, but for foreign types, this needs to be addressed still (breaks CF usage)
The text was updated successfully, but these errors were encountered:
Definitely, it'd be awesome to emit just a minimal symbolic representation of the CF type and build the metadata structure on demand. On Darwin, however, we will need to maintain support for the old mechanism for the now-stable ABI, though.
On Darwin, the runtime would need to be able to continue to provide the existing `swift_getForeignTypeMetadata` entry point and accept the current format of pre-generated foreign metadata records. Either you could add a new entry point that uses minimal templates, or maybe you could have the one entry point recognize from the format of the arguments whether it's an old-format metadata record or a new-format minimal record. This might be possible because an existing metadata record should only ever have the value of MetadataKind::Struct, ::Enum, or ::ForeignClass as a pointer-sized int value at the address point, whereas if you instead passed in a nominal type descriptor with foreign instantiation information or something like that, it should never have one of those values at the address point because of additional flags.
Additional Detail from JIRA
md5: 9c0f48560541397354de851f69a1b3c1
Parent-Task:
Issue Description:
We emit the VWT reference inline which breaks on Windows as it is cross-module. This was fixed for most cases using the singleton strategy, but for foreign types, this needs to be addressed still (breaks CF usage)
The text was updated successfully, but these errors were encountered: