Skip to content

Commit 15aaa1e

Browse files
author
Lance Parker
authored
[stdlib]String normalization functions (swiftlang#21026)
* fast/foreignNormalize functions
1 parent af34984 commit 15aaa1e

13 files changed

+829
-714
lines changed

benchmark/single-source/StringComparison.swift

+18-17
Original file line numberDiff line numberDiff line change
@@ -150,58 +150,58 @@ public let StringHashing: [BenchmarkInfo] = [
150150
),
151151
]
152152

153-
public let NormalizedIterator: [BenchmarkInfo] = [
153+
public let StringNormalization: [BenchmarkInfo] = [
154154
BenchmarkInfo(
155155
name: "NormalizedIterator_ascii",
156-
runFunction: run_NormalizedIterator_ascii,
156+
runFunction: run_StringNormalization_ascii,
157157
tags: [.validation, .String],
158158
setUpFunction: { blackHole(Workload_ascii) }
159159
),
160160
BenchmarkInfo(
161161
name: "NormalizedIterator_latin1",
162-
runFunction: run_NormalizedIterator_latin1,
162+
runFunction: run_StringNormalization_latin1,
163163
tags: [.validation, .String],
164164
setUpFunction: { blackHole(Workload_latin1) },
165165
legacyFactor: 2
166166
),
167167
BenchmarkInfo(
168168
name: "NormalizedIterator_fastPrenormal",
169-
runFunction: run_NormalizedIterator_fastPrenormal,
169+
runFunction: run_StringNormalization_fastPrenormal,
170170
tags: [.validation, .String],
171171
setUpFunction: { blackHole(Workload_fastPrenormal) },
172172
legacyFactor: 10
173173
),
174174
BenchmarkInfo(
175175
name: "NormalizedIterator_slowerPrenormal",
176-
runFunction: run_NormalizedIterator_slowerPrenormal,
176+
runFunction: run_StringNormalization_slowerPrenormal,
177177
tags: [.validation, .String],
178178
setUpFunction: { blackHole(Workload_slowerPrenormal) },
179179
legacyFactor: 10
180180
),
181181
BenchmarkInfo(
182182
name: "NormalizedIterator_nonBMPSlowestPrenormal",
183-
runFunction: run_NormalizedIterator_nonBMPSlowestPrenormal,
183+
runFunction: run_StringNormalization_nonBMPSlowestPrenormal,
184184
tags: [.validation, .String],
185185
setUpFunction: { blackHole(Workload_nonBMPSlowestPrenormal) },
186186
legacyFactor: 10
187187
),
188188
BenchmarkInfo(
189189
name: "NormalizedIterator_emoji",
190-
runFunction: run_NormalizedIterator_emoji,
190+
runFunction: run_StringNormalization_emoji,
191191
tags: [.validation, .String],
192192
setUpFunction: { blackHole(Workload_emoji) },
193193
legacyFactor: 4
194194
),
195195
BenchmarkInfo(
196196
name: "NormalizedIterator_abnormal",
197-
runFunction: run_NormalizedIterator_abnormal,
197+
runFunction: run_StringNormalization_abnormal,
198198
tags: [.validation, .String],
199199
setUpFunction: { blackHole(Workload_abnormal) },
200200
legacyFactor: 20
201201
),
202202
BenchmarkInfo(
203203
name: "NormalizedIterator_zalgo",
204-
runFunction: run_NormalizedIterator_zalgo,
204+
runFunction: run_StringNormalization_zalgo,
205205
tags: [.validation, .String],
206206
setUpFunction: { blackHole(Workload_zalgo) },
207207
legacyFactor: 25
@@ -452,7 +452,7 @@ public func run_StringHashing_zalgo(_ N: Int) {
452452

453453

454454
@inline(never)
455-
public func run_NormalizedIterator_ascii(_ N: Int) {
455+
public func run_StringNormalization_ascii(_ N: Int) {
456456
let workload: Workload = Workload.ascii
457457
let tripCount = workload.tripCount
458458
let payload = workload.payload
@@ -466,7 +466,7 @@ public func run_NormalizedIterator_ascii(_ N: Int) {
466466
}
467467

468468
@inline(never)
469-
public func run_NormalizedIterator_latin1(_ N: Int) {
469+
public func run_StringNormalization_latin1(_ N: Int) {
470470
let workload: Workload = Workload.latin1
471471
let tripCount = workload.tripCount
472472
let payload = workload.payload
@@ -480,7 +480,7 @@ public func run_NormalizedIterator_latin1(_ N: Int) {
480480
}
481481

482482
@inline(never)
483-
public func run_NormalizedIterator_fastPrenormal(_ N: Int) {
483+
public func run_StringNormalization_fastPrenormal(_ N: Int) {
484484
let workload: Workload = Workload.fastPrenormal
485485
let tripCount = workload.tripCount
486486
let payload = workload.payload
@@ -494,7 +494,7 @@ public func run_NormalizedIterator_fastPrenormal(_ N: Int) {
494494
}
495495

496496
@inline(never)
497-
public func run_NormalizedIterator_slowerPrenormal(_ N: Int) {
497+
public func run_StringNormalization_slowerPrenormal(_ N: Int) {
498498
let workload: Workload = Workload.slowerPrenormal
499499
let tripCount = workload.tripCount
500500
let payload = workload.payload
@@ -508,7 +508,7 @@ public func run_NormalizedIterator_slowerPrenormal(_ N: Int) {
508508
}
509509

510510
@inline(never)
511-
public func run_NormalizedIterator_nonBMPSlowestPrenormal(_ N: Int) {
511+
public func run_StringNormalization_nonBMPSlowestPrenormal(_ N: Int) {
512512
let workload: Workload = Workload.nonBMPSlowestPrenormal
513513
let tripCount = workload.tripCount
514514
let payload = workload.payload
@@ -522,7 +522,7 @@ public func run_NormalizedIterator_nonBMPSlowestPrenormal(_ N: Int) {
522522
}
523523

524524
@inline(never)
525-
public func run_NormalizedIterator_emoji(_ N: Int) {
525+
public func run_StringNormalization_emoji(_ N: Int) {
526526
let workload: Workload = Workload.emoji
527527
let tripCount = workload.tripCount
528528
let payload = workload.payload
@@ -536,7 +536,7 @@ public func run_NormalizedIterator_emoji(_ N: Int) {
536536
}
537537

538538
@inline(never)
539-
public func run_NormalizedIterator_abnormal(_ N: Int) {
539+
public func run_StringNormalization_abnormal(_ N: Int) {
540540
let workload: Workload = Workload.abnormal
541541
let tripCount = workload.tripCount
542542
let payload = workload.payload
@@ -550,7 +550,7 @@ public func run_NormalizedIterator_abnormal(_ N: Int) {
550550
}
551551

552552
@inline(never)
553-
public func run_NormalizedIterator_zalgo(_ N: Int) {
553+
public func run_StringNormalization_zalgo(_ N: Int) {
554554
let workload: Workload = Workload.zalgo
555555
let tripCount = workload.tripCount
556556
let payload = workload.payload
@@ -564,6 +564,7 @@ public func run_NormalizedIterator_zalgo(_ N: Int) {
564564
}
565565

566566

567+
567568
struct Workload {
568569
static let N = 100
569570

benchmark/single-source/StringComparison.swift.gyb

+9-8
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ AllWorkloads = ["ascii", "latin1", "fastPrenormal", "slowerPrenormal",
3535
"longSharedPrefix"]
3636
ComparisonWorkloads = AllWorkloads
3737
HashingWorkloads = AllWorkloads[:-1]
38-
NormalizedIteratorWorkloads = AllWorkloads[:-1]
38+
NormalizationWorkloads = AllWorkloads[:-1]
3939

4040
LegacyFactor = dict(abnormal=20, emoji=4, latin1=2, fastPrenormal=10,
4141
slowerPrenormal=10, nonBMPSlowestPrenormal=10, zalgo=25)
@@ -68,15 +68,15 @@ public let StringHashing: [BenchmarkInfo] = [
6868
% end # HashingWorkloads
6969
]
7070

71-
public let NormalizedIterator: [BenchmarkInfo] = [
72-
% for Name in NormalizedIteratorWorkloads:
71+
public let StringNormalization: [BenchmarkInfo] = [
72+
% for Name in NormalizationWorkloads:
7373
BenchmarkInfo(
7474
name: "NormalizedIterator_${Name}",
75-
runFunction: run_NormalizedIterator_${Name},
75+
runFunction: run_StringNormalization_${Name},
7676
tags: [.validation, .String],
7777
setUpFunction: { blackHole(Workload_${Name}) }${legacyFactor(Name)}
7878
),
79-
% end # NormalizedIteratorWorkloads
79+
% end # NormalizationWorkloads
8080
]
8181

8282
% for Name in AllWorkloads:
@@ -116,9 +116,9 @@ public func run_StringHashing_${Name}(_ N: Int) {
116116

117117
% end # HashingWorkloads
118118

119-
%for Name in NormalizedIteratorWorkloads:
119+
%for Name in NormalizationWorkloads:
120120
@inline(never)
121-
public func run_NormalizedIterator_${Name}(_ N: Int) {
121+
public func run_StringNormalization_${Name}(_ N: Int) {
122122
let workload: Workload = Workload.${Name}
123123
let tripCount = workload.tripCount
124124
let payload = workload.payload
@@ -131,7 +131,8 @@ public func run_NormalizedIterator_${Name}(_ N: Int) {
131131
}
132132
}
133133

134-
% end # NormalizedIteratorWorkloads
134+
% end # NormalizationWorkloads
135+
135136

136137
struct Workload {
137138
static let N = 100

benchmark/utils/main.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,6 @@ registerBenchmark(NSErrorTest)
270270
registerBenchmark(NSStringConversion)
271271
registerBenchmark(NibbleSort)
272272
registerBenchmark(NopDeinit)
273-
registerBenchmark(NormalizedIterator)
274273
registerBenchmark(ObjectAllocation)
275274
#if os(macOS) || os(iOS) || os(watchOS) || os(tvOS)
276275
registerBenchmark(ObjectiveCBridging)
@@ -332,6 +331,7 @@ registerBenchmark(StringInterpolation)
332331
registerBenchmark(StringInterpolationSmall)
333332
registerBenchmark(StringInterpolationManySmallSegments)
334333
registerBenchmark(StringMatch)
334+
registerBenchmark(StringNormalization)
335335
registerBenchmark(StringRemoveDupes)
336336
registerBenchmark(StringTests)
337337
registerBenchmark(StringWalk)

stdlib/public/core/CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ set(SWIFTLIB_ESSENTIAL
101101
NativeDictionary.swift
102102
NativeSet.swift
103103
NewtypeWrapper.swift
104-
NormalizedCodeUnitIterator.swift
105104
ObjectIdentifier.swift
106105
Optional.swift
107106
OptionSet.swift

0 commit comments

Comments
 (0)