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
[stdlib] String index interchange, etc. #9806
Conversation
@swift-ci Please test source compatibility |
Build comment file:Optimized (O) Regression (6)
Improvement (9)
No Changes (257)
Regression (4)
Improvement (8)
No Changes (260)
|
Wow, some of those speedups are really surprising. |
@swift-ci Please smoke benchmark |
@swift-ci Please test source compatibility |
All those "Hearts <3 ♥︎ 💘" and "Café 🍵"s will be lost in time, like tears in rain? |
@palimondo Gonna assume that's a joke that went over my head. If it's not, please try to explain. |
That was a Blade Runner reference... and I was wondering if the removed documentation that was demonstrating use of |
Build comment file:Build failed before running benchmark. |
Oh, removed for good because these types and therefore overloads are collapsing with others. However I believe the same strings exist on the overloads with which they are collapsing, unless @natecook1000 was exceptionally, gratuitously creative ;-) |
818bdc2
to
652c417
Compare
I take it back; @natecook1000 was creative with good reason and many of them do drop; He'll have to rewrite the docs for these things anyway. |
@swift-ci Please test source compatibility |
Build comment file:Build failed before running benchmark. |
652c417
to
5bcb52b
Compare
@swift-ci Please test |
@swift-ci Please benchmark |
@swift-ci Please test source compatibility |
Build failed |
Uh, right. The linux failure is because I took away some SPI that Foundation was using for the Linux case only. It's easy to bring back but I want to let the other tests finish so I didn't push it here. |
Build comment file:Optimized (O) Regression (18)
Improvement (4)
No Changes (250)
Regression (9)
Improvement (9)
No Changes (254)
|
stdlib/public/core/StringIndex.swift
Outdated
@@ -38,8 +39,11 @@ extension String.Index : Comparable { | |||
extension String.Index { | |||
internal typealias _Self = String.Index | |||
|
|||
public init(encodedOffset o: Int) { | |||
_compoundOffset = UInt64(o << _Self._strideBits) | |||
/// Creates a new index at the specified UTF-16 offset. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI, I aim to decouple this stuff from UTF-16 eventually. That is really meant to be a code unit offset in some arbitrary encoding. I'd have labeled it utf16Offset
otherwise.
@swift-ci Please benchmark |
@swift-ci Please test |
Build failed |
Build failed |
Build comment file:Optimized (O) Regression (10)
Improvement (21)
No Changes (241)
Regression (5)
Improvement (17)
No Changes (250)
|
@swift-ci Please benchmark |
@swift-ci Please test |
bc48148
to
4d97cef
Compare
Please test with following pull request: @swift-ci Please test source compatibility |
Please test with following pull request: @swift-ci Please test |
Build failed |
Build failed |
4d97cef
to
d21259c
Compare
Please test with following pull request: @swift-ci Please test source compatibility |
Please test with following pull request: @swift-ci Please test |
Build failed |
This works either way I suppose, but the code is clearer now.
The fancy code didn't turn out to be any faster.
Only the last of each set of dups gets run anyway. See https://bugs.swift.org/browse/SR-5362
test the new APIs as well as the legacy failing conversions.
d21259c
to
a2db605
Compare
Please test with following pull request: @swift-ci Please test |
I failed to merge the upstream changes to swift-corelibs-foundation at the same time as I merged that #9806, and it broke on linux. Going to get it right this time.
No description provided.