Skip to content

AST: Allow @_fixed_layout protocols #32887

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
Jul 21, 2020

Conversation

slavapestov
Copy link
Contributor

@slavapestov slavapestov commented Jul 14, 2020

A @_fixed_layout protocol exposes its witness table layout to
clients, which prevents re-ordering of requirements or adding
new requiremenst with a default.

When library evolution is enabled, we still emit method
descriptors even for @_fixed_layout protocols; this allows a
previously-resilient protocol to become @_fixed_layout as long
as the published layout matches the resilient layout in all
previously-shipped versions of the library.

@slavapestov slavapestov force-pushed the fixed-layout-protocols branch from c74d2c0 to 3af8c49 Compare July 15, 2020 20:22
@slavapestov slavapestov changed the title horrible experiment AST: Allow @_fixe_layout protocols Jul 15, 2020
@slavapestov slavapestov changed the title AST: Allow @_fixe_layout protocols AST: Allow @_fixed_layout protocols Jul 15, 2020
@slavapestov slavapestov force-pushed the fixed-layout-protocols branch from 3af8c49 to c013ba5 Compare July 15, 2020 22:35
@airspeedswift
Copy link
Member

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - c013ba5913c73b34d63b46adc6d5f8756b7d58e6

@slavapestov slavapestov force-pushed the fixed-layout-protocols branch from c013ba5 to 70be07b Compare July 20, 2020 19:35
@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - c013ba5913c73b34d63b46adc6d5f8756b7d58e6

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - c013ba5913c73b34d63b46adc6d5f8756b7d58e6

@slavapestov slavapestov force-pushed the fixed-layout-protocols branch from 70be07b to 50d61e3 Compare July 20, 2020 21:33
@slavapestov
Copy link
Contributor Author

@swift-ci please test

1 similar comment
@slavapestov
Copy link
Contributor Author

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 50d61e3c8ad2ee7ac1b260b9cb20586e86591a45

A @_fixed_layout protocol exposes its witness table layout to
clients, which prevents re-ordering of requirements or adding
new requiremenst with a default.

When library evolution is enabled, we still emit method
descriptors even for @_fixed_layout protocols; this allows a
previously-resilient protocol to become @_fixed_layout as long
as the published layout matches the resilient layout in all
previously-shipped versions of the library.
@slavapestov slavapestov force-pushed the fixed-layout-protocols branch from 50d61e3 to 4a47190 Compare July 21, 2020 03:53
@slavapestov
Copy link
Contributor Author

@swift-ci please smoke test

@slavapestov slavapestov merged commit e6e9b6e into swiftlang:master Jul 21, 2020
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.

3 participants