Skip to content

Apply generic metadata patterns to all types and change their layout. #14998

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 6, 2018

Conversation

rjmccall
Copy link
Contributor

@rjmccall rjmccall commented Mar 6, 2018

The layout changes to become relative-address based. For this to be truly immutable (at least on Darwin), things like the RO data patterns must be moved out of the pattern header. Additionally, compress the pattern header so that we do not include metadata about patterns that are not needed for the type.

Value metadata patterns just include the metadata kind and VWT.

The design here is meant to accomodate non-default instantiation patterns should that become an interesting thing to support in the future, e.g. for v-table specialization.

The layout changes to become relative-address based.  For this to be
truly immutable (at least on Darwin), things like the RO data patterns
must be moved out of the pattern header.  Additionally, compress the
pattern header so that we do not include metadata about patterns that
are not needed for the type.

Value metadata patterns just include the metadata kind and VWT.

The design here is meant to accomodate non-default instantiation
patterns should that become an interesting thing to support in the
future, e.g. for v-table specialization.
@rjmccall
Copy link
Contributor Author

rjmccall commented Mar 6, 2018

@swift-ci Please test and merge.

@rjmccall
Copy link
Contributor Author

rjmccall commented Mar 6, 2018

Apparently that is a pervasive failure unrelated to my patch.

@rjmccall
Copy link
Contributor Author

rjmccall commented Mar 6, 2018

@swift-ci Please smoke test OS X.

@rjmccall rjmccall merged commit 11e3d16 into swiftlang:master Mar 6, 2018
@rjmccall rjmccall deleted the generic-metadata-patterns branch March 6, 2018 03:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant