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
SR-3911 Evaluate ABI impact of going from opaque layouts to freezing the layout for performance
Issue Description:
We wish to express that a type was formerly resilient, but became fixed layout. This requires adding an optional availability annotation to @_fixed_layout and plumbing it through to serialization.
The new attribute has the following semantic consequences:
At the SIL level, types are still passed and returned indirectly if they were ever resilient – this ensures that changing the deployment version does not change the SIL type lowering of function types, since doing that would require generating multiple entry points for functions that reference conditinally-fixed-layout value types
IRGen however can make assumptions about fixed layout types if the deployment target is at least that of the type
The isResilient() check in NominalTypeDecl will be extended to take a deployment target version too. SIL will not use this, but IRGen will.
The text was updated successfully, but these errors were encountered:
Additional Detail from JIRA
md5: 7386fdccb598437a78d65b775869aec2
blocks:
is blocked by:
is duplicated by:
Issue Description:
We wish to express that a type was formerly resilient, but became fixed layout. This requires adding an optional availability annotation to @_fixed_layout and plumbing it through to serialization.
The new attribute has the following semantic consequences:
The isResilient() check in NominalTypeDecl will be extended to take a deployment target version too. SIL will not use this, but IRGen will.
The text was updated successfully, but these errors were encountered: