-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[5.0] [String] Last-minute ABI adjustment: 4-bit discriminator #21392
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
[5.0] [String] Last-minute ABI adjustment: 4-bit discriminator #21392
Conversation
@swift-ci please test |
Build failed |
Build failed |
Failure is:
|
@swift-ci please test |
Build failed |
4a4205b
to
0f6fbee
Compare
@swift-ci please test |
Build failed |
Build failed |
0f6fbee
to
61fec6a
Compare
Remove Discriminator, Flags, etc., abstractions from StringObject. These cause code divergence between 32-bit and 64-bit ABI, complicate ABI changes, and otherwise contribute to bloat.
In anticipation of potential future HW features, e.g. armv8.5 memory tagging, only use the high 4 bytes as discriminator bits in _BridgeObject rather than the top 8 bits. Utilize two perf flags to cover this instead. This requires shifting around a fair amount of internal complexity.
61fec6a
to
7283f2c
Compare
Please test with following pull request: @swift-ci please test |
Build failed |
Build failed |
Please test with following pull request: @swift-ci please test |
Please test with following pull request: @swift-ci please test os x platform |
@apple/swift5-branch-managers ConvergenceWe will want this ASAP, preferably beta 1. ABI impactThis change's String's ABI to only use the high 4 bits of |
Build failed |
Failure is due to an ABI checker bug that hasn't been cherry-picked to 5.0 |
Please test with following pull request: @swift-ci please test |
Build failed |
Build failed |
5.0 cherry-pick of #21310
rdar://problem/46663653