Skip to content

Conversation

@elsh
Copy link
Contributor

@elsh elsh commented Jun 17, 2024

  • Keep witness thunk linkage private for a package protocol member in SILGen.
  • Optimize private/hidden functions during Package CMO; if they don't contain references that have private/hidden symbols, serialize them and set the linkage to shared. For unserialized witness thunks, set the linkage to package, so the witness table itself can be serialized.
  • Update witness table and vtable serialization.

Resolves rdar://129976582

@elsh
Copy link
Contributor Author

elsh commented Jun 17, 2024

@swift-ci test

- Keep witness thunk linkage private for a package protocol member in SILGen.
- Optimize private/hidden functions during Package CMO; if they don't contain
references that have private/hidden symbols, serialize them and set the linkage
to shared. For unserialized witness thunks, set the linkage to package, so the
witness table itself can be serialized.
- Update witness table and vtable serialization.

Resolves rdar://129976582
@elsh elsh force-pushed the elsh/pcmo-conformance branch from 70a0526 to 534c35b Compare June 17, 2024 20:08
@elsh
Copy link
Contributor Author

elsh commented Jun 17, 2024

@swift-ci test

Copy link
Contributor

@aschwaighofer aschwaighofer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@elsh elsh mentioned this pull request Jun 18, 2024
@elsh elsh enabled auto-merge June 18, 2024 02:36
@elsh elsh merged commit 9b53e20 into main Jun 18, 2024
@elsh elsh deleted the elsh/pcmo-conformance branch June 18, 2024 02:47
elsh added a commit that referenced this pull request Jun 18, 2024
PR #74468 rolled back conformance serialized kind to IsNotSerialized
for non-public decls. This caused static witness thunks to be
removed while use site expects them, causing linker issues.
This PR provides a workaround until a proper fix is made.

rdar://130103572
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.

2 participants