Skip to content
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

[SR-3732] Lock down the layout of a protocol witness table #46317

Closed
ematejska mannequin opened this issue Jan 25, 2017 · 3 comments
Closed

[SR-3732] Lock down the layout of a protocol witness table #46317

ematejska mannequin opened this issue Jan 25, 2017 · 3 comments
Labels
affects ABI Flag: Affects ABI task

Comments

@ematejska
Copy link
Mannequin

ematejska mannequin commented Jan 25, 2017

Previous ID SR-3732
Radar rdar://problem/31411201
Original Reporter @ematejska
Type Task
Status Resolved
Resolution Done
Additional Detail from JIRA
Votes 0
Component/s
Labels Task, AffectsABI
Assignee None
Priority Medium

md5: aaddd601f93b5cf0ce1a5be73a9d2bb1

Issue Description:

Protocol witness tables may be created dynamically by the runtime or statically by the compiler. The layout of a protocol witness table is ABI and we need to determine a layout algorithm that also accommodates library evolution concerns, where additional protocol requirements may be added with default fall-backs.

@bob-wilson
Copy link
Contributor

@swift-ci create

@atrick
Copy link
Contributor

atrick commented Sep 1, 2017

To support specialized witness tables in the future, we may need to install a unique identifier in the first word of the witness table to identify the conformance.

@slavapestov
Copy link
Contributor

The unique identifier is done now that @DougGregor added conformance records. If anyone thinks of anything else, please file a new bug.

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects ABI Flag: Affects ABI task
Projects
None yet
Development

No branches or pull requests

3 participants