text:
[stdlib] Kill old set/dictionary-specific bridging entrypoints

These can now just be expressed using as?/as!.

@swift-ci please test

@swift-ci please benchmark

@swift-ci please smoke benchmark staging

@lorentey not so fast... I haven't actually benchmarked it yet, I was going to do it on the PR :)

while also trying out the fancy new CI benchmarks...

Build comment file:
Performance: -O

TEST
OLD
NEW
DELTA
SPEEDUP

Regression

DictionaryBridge
1244
1653
+32.9%
0.75x

Performance: -Osize

TEST
OLD
NEW
DELTA
SPEEDUP

Regression

DictionaryBridge
1322
1529
+15.7%
0.86x (?)

How to read the data
The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

yay, new benchmarks ftw
Given removing these is an ABI break, I feel like this regression is livable as something we can merge to master and try and recoup. Dictionary bridging is +65% vs 4.1 currently so it's also giving up less than was recently gained.

Also note, the benchmark is doing something in a tight loop that you should very much never do – bridge a dictionary of non-verbatim-bridged types.

@parkera for the removal of the uses from Foundation.

cc @millenomi

Build comment file:
Optimized (O)

Regression (6)

TEST
OLD
NEW
DELTA
SPEEDUP

DictionaryBridge
1190
1523
+28.0%
0.78x

StringHashing_ascii
34
37
+8.8%
0.92x

ObjectiveCBridgeFromNSString
1200
1266
+5.5%
0.95x (?)

OpenClose
73
77
+5.5%
0.95x

ObjectiveCBridgeFromNSArrayAnyObjectForced
4377
4613
+5.4%
0.95x (?)

AngryPhonebook
3569
3761
+5.4%
0.95x (?)

Improvement (3)

TEST
OLD
NEW
DELTA
SPEEDUP

COWArrayGuaranteedParameterOverhead
11471
10706
-6.7%
1.07x (?)

ObjectiveCBridgeToNSDictionary
27337
25893
-5.3%
1.06x (?)

DataReplaceSmallBuffer
9547
9077
-4.9%
1.05x (?)

No Changes (438)

TEST
OLD
NEW
DELTA
SPEEDUP

AnyHashableWithAClass
89073
89310
+0.3%
1.00x (?)

Array2D
2718
2717
-0.0%
1.00x (?)

ArrayAppend
793
791
-0.3%
1.00x (?)

ArrayAppendArrayOfInt
779
795
+2.1%
0.98x (?)

ArrayAppendAscii
3876
3880
+0.1%
1.00x (?)

ArrayAppendAsciiSubstring
24933
25037
+0.4%
1.00x (?)

ArrayAppendFromGeneric
787
794
+0.9%
0.99x (?)

ArrayAppendGenericStructs
1396
1396
+0.0%
1.00x

ArrayAppendLatin1
40173
40019
-0.4%
1.00x (?)

ArrayAppendLatin1Substring
139506
139524
+0.0%
1.00x (?)

ArrayAppendLazyMap
1330
1326
-0.3%
1.00x (?)

ArrayAppendOptionals
1402
1393
-0.6%
1.01x (?)

ArrayAppendRepeatCol
1329
1334
+0.4%
1.00x (?)

ArrayAppendReserved
527
527
+0.0%
1.00x

ArrayAppendSequence
1119
1118
-0.1%
1.00x (?)

ArrayAppendStrings
6210
6330
+1.9%
0.98x

ArrayAppendToFromGeneric
792
786
-0.8%
1.01x (?)

ArrayAppendToGeneric
786
788
+0.3%
1.00x (?)

ArrayAppendUTF16
40171
39966
-0.5%
1.01x (?)

ArrayAppendUTF16Substring
138404
138581
+0.1%
1.00x (?)

ArrayInClass
85
85
+0.0%
1.00x

ArrayLiteral
0
0
+0.0%
1.00x

ArrayOfGenericPOD2
151
149
-1.3%
1.01x (?)

ArrayOfGenericRef
4318
4317
-0.0%
1.00x (?)

ArrayOfPOD
181
183
+1.1%
0.99x (?)

ArrayOfRef
4292
4306
+0.3%
1.00x (?)

ArrayPlusEqualArrayOfInt
782
780
-0.3%
1.00x (?)

ArrayPlusEqualFiveElementCollection
4175
4237
+1.5%
0.99x (?)

ArrayPlusEqualSingleElementCollection
793
796
+0.4%
1.00x (?)

ArrayPlusEqualThreeElements
1631
1650
+1.2%
0.99x (?)

ArraySubscript
1554
1551
-0.2%
1.00x (?)

ArrayValueProp
8
8
+0.0%
1.00x

ArrayValueProp2
8
8
+0.0%
1.00x

ArrayValueProp3
8
8
+0.0%
1.00x

ArrayValueProp4
8
8
+0.0%
1.00x

BinaryFloatingPointPropertiesBinade
31
31
+0.0%
1.00x

BinaryFloatingPointPropertiesNextUp
28
28
+0.0%
1.00x

BinaryFloatingPointPropertiesUlp
37
37
+0.0%
1.00x

BitCount
169
169
+0.0%
1.00x

ByteSwap
106
106
+0.0%
1.00x

COWTree
3588
3593
+0.1%
1.00x (?)

CSVParsing2
1714
1712
-0.1%
1.00x (?)

CSVParsingAlt2
1764
1753
-0.6%
1.01x (?)

CSVParsingAltIndices2
763
765
+0.3%
1.00x (?)

CStringLongAscii
3533
3532
-0.0%
1.00x (?)

CStringLongNonAscii
2120
2122
+0.1%
1.00x (?)

CStringShortAscii
3161
3202
+1.3%
0.99x (?)

Calculator
197
202
+2.5%
0.98x

CaptureProp
4067
4067
+0.0%
1.00x

ChainedFilterMap
1246
1245
-0.1%
1.00x (?)

CharIndexing_ascii_unicodeScalars
17185
17149
-0.2%
1.00x (?)

CharIndexing_ascii_unicodeScalars_Backwards
16610
16576
-0.2%
1.00x (?)

CharIndexing_chinese_unicodeScalars
13137
13116
-0.2%
1.00x (?)

CharIndexing_chinese_unicodeScalars_Backwards
12584
12555
-0.2%
1.00x (?)

CharIndexing_japanese_unicodeScalars
20553
20513
-0.2%
1.00x (?)

CharIndexing_japanese_unicodeScalars_Backwards
19867
19835
-0.2%
1.00x (?)

CharIndexing_korean_unicodeScalars
16675
16641
-0.2%
1.00x (?)

CharIndexing_korean_unicodeScalars_Backwards
16095
16068
-0.2%
1.00x (?)

CharIndexing_punctuatedJapanese_unicodeScalars
3135
3101
-1.1%
1.01x

CharIndexing_punctuatedJapanese_unicodeScalars_Backwards
3021
2986
-1.2%
1.01x (?)

CharIndexing_punctuated_unicodeScalars
3909
3880
-0.7%
1.01x

CharIndexing_punctuated_unicodeScalars_Backwards
3770
3739
-0.8%
1.01x

CharIndexing_russian_unicodeScalars
14314
14285
-0.2%
1.00x (?)

CharIndexing_russian_unicodeScalars_Backwards
13842
13813
-0.2%
1.00x (?)

CharIndexing_tweet_unicodeScalars
34141
33591
-1.6%
1.02x

CharIndexing_tweet_unicodeScalars_Backwards
32837
32651
-0.6%
1.01x (?)

CharIndexing_utf16_unicodeScalars
22925
22977
+0.2%
1.00x (?)

CharIndexing_utf16_unicodeScalars_Backwards
23396
23381
-0.1%
1.00x (?)

CharIteration_ascii_unicodeScalars
20128
20063
-0.3%
1.00x (?)

CharIteration_ascii_unicodeScalars_Backwards
15841
15844
+0.0%
1.00x (?)

CharIteration_chinese_unicodeScalars
15243
15190
-0.3%
1.00x (?)

CharIteration_chinese_unicodeScalars_Backwards
11997
11997
+0.0%
1.00x

CharIteration_japanese_unicodeScalars
24124
23998
-0.5%
1.01x (?)

CharIteration_japanese_unicodeScalars_Backwards
18965
18965
+0.0%
1.00x

CharIteration_korean_unicodeScalars
19492
19443
-0.3%
1.00x (?)

CharIteration_korean_unicodeScalars_Backwards
15361
15362
+0.0%
1.00x (?)

CharIteration_punctuatedJapanese_unicodeScalars
3604
3590
-0.4%
1.00x (?)

CharIteration_punctuatedJapanese_unicodeScalars_Backwards
2859
2862
+0.1%
1.00x (?)

CharIteration_punctuated_unicodeScalars
4533
4486
-1.0%
1.01x

CharIteration_punctuated_unicodeScalars_Backwards
3580
3584
+0.1%
1.00x (?)

CharIteration_russian_unicodeScalars
16764
16694
-0.4%
1.00x (?)

CharIteration_russian_unicodeScalars_Backwards
13197
13202
+0.0%
1.00x (?)

CharIteration_tweet_unicodeScalars
39990
40002
+0.0%
1.00x (?)

CharIteration_tweet_unicodeScalars_Backwards
31308
31298
-0.0%
1.00x (?)

CharIteration_utf16_unicodeScalars
27516
27451
-0.2%
1.00x (?)

CharIteration_utf16_unicodeScalars_Backwards
18468
18479
+0.1%
1.00x (?)

CharacterLiteralsLarge
5863
5872
+0.2%
1.00x (?)

CharacterLiteralsSmall
220
220
+0.0%
1.00x

CharacterPropertiesFetch
4448
4464
+0.4%
1.00x (?)

CharacterPropertiesPrecomputed
977
982
+0.5%
0.99x (?)

CharacterPropertiesStashed
1703
1697
-0.4%
1.00x (?)

CharacterPropertiesStashedMemo
1412
1398
-1.0%
1.01x (?)

Chars2
2625
2626
+0.0%
1.00x (?)

ClassArrayGetter2
123
123
+0.0%
1.00x

Combos
489
489
+0.0%
1.00x

DataAccessBytes
1137
1140
+0.3%
1.00x (?)

DataAppendArray
5347
5522
+3.3%
0.97x (?)

DataAppendBytes
5162
5225
+1.2%
0.99x (?)

DataAppendDataLargeToLarge
67723
68519
+1.2%
0.99x (?)

DataAppendDataLargeToMedium
35406
35313
-0.3%
1.00x (?)

DataAppendDataLargeToSmall
34415
34164
-0.7%
1.01x (?)

DataAppendDataMediumToLarge
37976
37770
-0.5%
1.01x (?)

DataAppendDataMediumToMedium
6416
6397
-0.3%
1.00x (?)

DataAppendDataMediumToSmall
5856
5875
+0.3%
1.00x (?)

DataAppendDataSmallToLarge
36687
37148
+1.3%
0.99x (?)

DataAppendDataSmallToMedium
6282
6187
-1.5%
1.02x (?)

DataAppendDataSmallToSmall
5720
5875
+2.7%
0.97x (?)

DataAppendSequence
21140
21074
-0.3%
1.00x (?)

DataCopyBytes
464
461
-0.6%
1.01x (?)

DataCount
37
37
+0.0%
1.00x

DataMutateBytes
3858
3900
+1.1%
0.99x (?)

DataReplaceLarge
36461
36413
-0.1%
1.00x (?)

DataReplaceLargeBuffer
58040
58379
+0.6%
0.99x (?)

DataReplaceMedium
7928
7644
-3.6%
1.04x (?)

DataReplaceMediumBuffer
12207
12597
+3.2%
0.97x (?)

DataReplaceSmall
5649
5575
-1.3%
1.01x (?)

DataReset
2809
2844
+1.2%
0.99x (?)

DataSetCount
549
549
+0.0%
1.00x

DataSubscript
220
220
+0.0%
1.00x

DictOfArraysToArrayOfDicts
785
782
-0.4%
1.00x (?)

Dictionary
507
496
-2.2%
1.02x

Dictionary2
627
621
-1.0%
1.01x

Dictionary2OfObjects
2072
2068
-0.2%
1.00x (?)

Dictionary3
213
218
+2.3%
0.98x (?)

Dictionary3OfObjects
712
711
-0.1%
1.00x (?)

Dictionary4
301
291
-3.3%
1.03x

Dictionary4Legacy
651
651
+0.0%
1.00x

Dictionary4OfObjects
419
412
-1.7%
1.02x (?)

Dictionary4OfObjectsLegacy
839
836
-0.4%
1.00x (?)

DictionaryBridgeToObjC_Access
880
890
+1.1%
0.99x (?)

DictionaryBridgeToObjC_Bridge
19
19
+0.0%
1.00x

DictionaryBridgeToObjC_BulkAccess
164
164
+0.0%
1.00x

DictionaryCompactMapValuesOfCastValue
10695
10824
+1.2%
0.99x (?)

DictionaryCompactMapValuesOfNilValue
6345
6434
+1.4%
0.99x (?)

DictionaryCopy
98044
97698
-0.4%
1.00x (?)

DictionaryFilter
97570
97810
+0.2%
1.00x (?)

DictionaryGroup
199
199
+0.0%
1.00x

DictionaryGroupOfObjects
2077
2077
+0.0%
1.00x

DictionaryKeysContainsCocoa
40
40
+0.0%
1.00x

DictionaryKeysContainsNative
30
30
+0.0%
1.00x

DictionaryLiteral
1847
1855
+0.4%
1.00x (?)

DictionaryOfObjects
2365
2370
+0.2%
1.00x (?)

DictionaryRemove
5302
5299
-0.1%
1.00x (?)

DictionaryRemoveOfObjects
24801
25032
+0.9%
0.99x (?)

DictionarySubscriptDefaultMutation
243
244
+0.4%
1.00x (?)

DictionarySubscriptDefaultMutationArray
582
583
+0.2%
1.00x (?)

DictionarySubscriptDefaultMutationArrayOfObjects
3972
3991
+0.5%
1.00x (?)

DictionarySubscriptDefaultMutationOfObjects
1667
1685
+1.1%
0.99x (?)

DictionarySwap
939
940
+0.1%
1.00x (?)

DictionarySwapAt
6371
6289
-1.3%
1.01x (?)

DictionarySwapAtOfObjects
51708
51791
+0.2%
1.00x (?)

DictionarySwapOfObjects
8602
8538
-0.7%
1.01x (?)

DoubleWidthDivision
0
0
+0.0%
1.00x

DropFirstAnyCollection
76
76
+0.0%
1.00x

DropFirstAnyCollectionLazy
64206
64167
-0.1%
1.00x (?)

DropFirstAnySeqCRangeIter
93
93
+0.0%
1.00x

DropFirstAnySeqCRangeIterLazy
93
93
+0.0%
1.00x

DropFirstAnySeqCntRange
71
71
+0.0%
1.00x

DropFirstAnySeqCntRangeLazy
71
71
+0.0%
1.00x

DropFirstAnySequence
1841
1841
+0.0%
1.00x

DropFirstAnySequenceLazy
1842
1841
-0.1%
1.00x (?)

DropFirstArray
35
35
+0.0%
1.00x

DropFirstArrayLazy
35
35
+0.0%
1.00x

DropFirstCountableRange
29
29
+0.0%
1.00x

DropFirstCountableRangeLazy
29
29
+0.0%
1.00x

DropFirstSequence
2688
2680
-0.3%
1.00x (?)

DropFirstSequenceLazy
2774
2775
+0.0%
1.00x (?)

DropLastAnyCollection
28
28
+0.0%
1.00x

DropLastAnyCollectionLazy
21412
21334
-0.4%
1.00x (?)

DropLastAnySeqCRangeIter
3282
3286
+0.1%
1.00x (?)

DropLastAnySeqCRangeIterLazy
3280
3287
+0.2%
1.00x (?)

DropLastAnySeqCntRange
9
9
+0.0%
1.00x

DropLastAnySeqCntRangeLazy
9
9
+0.0%
1.00x

DropLastAnySequence
4925
4925
+0.0%
1.00x

DropLastAnySequenceLazy
5022
5020
-0.0%
1.00x (?)

DropLastSequence
663
657
-0.9%
1.01x

DropLastSequenceLazy
663
658
-0.8%
1.01x (?)

DropWhileAnyCollection
100
100
+0.0%
1.00x

DropWhileAnyCollectionLazy
147
147
+0.0%
1.00x

DropWhileAnySeqCRangeIter
75
75
+0.0%
1.00x

DropWhileAnySeqCRangeIterLazy
147
147
+0.0%
1.00x

DropWhileAnySeqCntRange
95
95
+0.0%
1.00x

DropWhileAnySeqCntRangeLazy
147
147
+0.0%
1.00x

DropWhileAnySequence
1854
1854
+0.0%
1.00x

DropWhileAnySequenceLazy
1854
1854
+0.0%
1.00x

DropWhileArrayLazy
105
105
+0.0%
1.00x

DropWhileCountableRange
30
30
+0.0%
1.00x

DropWhileCountableRangeLazy
82
82
+0.0%
1.00x

DropWhileSequence
2218
2219
+0.0%
1.00x (?)

DropWhileSequenceLazy
105
105
+0.0%
1.00x

EqualStringSubstring
48
49
+2.1%
0.98x

EqualSubstringString
50
48
-4.0%
1.04x

EqualSubstringSubstring
48
48
+0.0%
1.00x

EqualSubstringSubstringGenericEquatable
48
48
+0.0%
1.00x

ErrorHandling
1195
1192
-0.3%
1.00x (?)

ExclusivityGlobal
5
5
+0.0%
1.00x

ExclusivityIndependent
2
2
+0.0%
1.00x

FatCompactMap
1245
1247
+0.2%
1.00x (?)

FilterEvenUsingReduce
1324
1323
-0.1%
1.00x (?)

FilterEvenUsingReduceInto
156
157
+0.6%
0.99x (?)

FloatingPointPrinting_Double_description_small
21467
21705
+1.1%
0.99x (?)

FloatingPointPrinting_Double_description_uniform
21036
21178
+0.7%
0.99x (?)

FloatingPointPrinting_Double_interpolated
61215
61206
-0.0%
1.00x (?)

FloatingPointPrinting_Float80_description_small
28446
28534
+0.3%
1.00x (?)

FloatingPointPrinting_Float80_description_uniform
27710
27698
-0.0%
1.00x (?)

FloatingPointPrinting_Float80_interpolated
64281
64229
-0.1%
1.00x (?)

FloatingPointPrinting_Float_description_small
5745
5742
-0.1%
1.00x (?)

FloatingPointPrinting_Float_description_uniform
5790
5733
-1.0%
1.01x (?)

FloatingPointPrinting_Float_interpolated
37832
37961
+0.3%
1.00x (?)

FrequenciesUsingReduce
4689
4731
+0.9%
0.99x (?)

FrequenciesUsingReduceInto
1482
1477
-0.3%
1.00x (?)

Hanoi
2168
2213
+2.1%
0.98x

HashTest
937
949
+1.3%
0.99x (?)

Histogram
576
578
+0.3%
1.00x (?)

Integrate
336
337
+0.3%
1.00x (?)

IterateData
1399
1399
+0.0%
1.00x

Join
159
162
+1.9%
0.98x

LazilyFilteredArrayContains
35858
37049
+3.3%
0.97x

LazilyFilteredArrays2
4560
4564
+0.1%
1.00x (?)

LazilyFilteredRange
3749
3757
+0.2%
1.00x (?)

LessSubstringSubstring
48
48
+0.0%
1.00x

LessSubstringSubstringGenericComparable
48
48
+0.0%
1.00x

LinkedList
7538
7539
+0.0%
1.00x (?)

LuhnAlgoEager
437
434
-0.7%
1.01x (?)

LuhnAlgoLazy
435
433
-0.5%
1.00x (?)

MapReduce
397
397
+0.0%
1.00x

MapReduceAnyCollection
369
369
+0.0%
1.00x

MapReduceAnyCollectionShort
1999
2004
+0.3%
1.00x (?)

MapReduceClass
2979
2979
+0.0%
1.00x

MapReduceClassShort
4528
4532
+0.1%
1.00x (?)

MapReduceLazyCollection
13
13
+0.0%
1.00x

MapReduceLazyCollectionShort
31
31
+0.0%
1.00x

MapReduceLazySequence
86
86
+0.0%
1.00x

MapReduceSequence
463
465
+0.4%
1.00x (?)

MapReduceShort
1978
1978
+0.0%
1.00x

MapReduceShortString
21
21
+0.0%
1.00x

MapReduceString
45
45
+0.0%
1.00x

Memset
213
213
+0.0%
1.00x

MonteCarloE
10310
10305
-0.0%
1.00x (?)

MonteCarloPi
42617
42617
+0.0%
1.00x

NSDictionaryCastToSwift
7105
7073
-0.5%
1.00x (?)

NSError
165
164
-0.6%
1.01x (?)

NSStringConversion
688
678
-1.5%
1.01x (?)

NibbleSort
3273
3274
+0.0%
1.00x (?)

NopDeinit
32225
32256
+0.1%
1.00x (?)

ObjectAllocation
133
133
+0.0%
1.00x

ObjectiveCBridgeFromNSArrayAnyObject
24914
25238
+1.3%
0.99x (?)

ObjectiveCBridgeFromNSArrayAnyObjectToString
45656
44718
-2.1%
1.02x (?)

ObjectiveCBridgeFromNSArrayAnyObjectToStringForced
44843
42882
-4.4%
1.05x (?)

ObjectiveCBridgeFromNSDictionaryAnyObject
105372
104787
-0.6%
1.01x (?)

ObjectiveCBridgeFromNSSetAnyObject
44983
45810
+1.8%
0.98x (?)

ObjectiveCBridgeFromNSSetAnyObjectForced
3785
3839
+1.4%
0.99x (?)

ObjectiveCBridgeFromNSSetAnyObjectToString
67768
66120
-2.4%
1.02x (?)

ObjectiveCBridgeFromNSStringForced
2434
2481
+1.9%
0.98x (?)

ObjectiveCBridgeStubDataAppend
6122
6044
-1.3%
1.01x (?)

ObjectiveCBridgeStubDateMutation
400
400
+0.0%
1.00x

ObjectiveCBridgeStubFromArrayOfNSString2
3324
3334
+0.3%
1.00x (?)

ObjectiveCBridgeStubFromNSString
1035
1033
-0.2%
1.00x (?)

ObjectiveCBridgeStubNSDataAppend
2522
2548
+1.0%
0.99x (?)

ObjectiveCBridgeStubToArrayOfNSString2
3936
3941
+0.1%
1.00x (?)

ObjectiveCBridgeStubToNSDate2
1597
1611
+0.9%
0.99x (?)

ObjectiveCBridgeStubToNSString
2345
2347
+0.1%
1.00x (?)

ObjectiveCBridgeStubToNSStringRef
121
121
+0.0%
1.00x

ObjectiveCBridgeStubURLAppendPath2
2784
2730
-1.9%
1.02x (?)

ObjectiveCBridgeStubURLAppendPathRef2
2764
2666
-3.5%
1.04x (?)

ObjectiveCBridgeToNSArray
14706
14403
-2.1%
1.02x (?)

ObjectiveCBridgeToNSSet
17161
17285
+0.7%
0.99x (?)

ObjectiveCBridgeToNSString
452
455
+0.7%
0.99x

ObserverClosure
2141
2136
-0.2%
1.00x (?)

ObserverForwarderStruct
1159
1158
-0.1%
1.00x (?)

ObserverPartiallyAppliedMethod
3701
3690
-0.3%
1.00x (?)

ObserverUnappliedMethod
2461
2452
-0.4%
1.00x (?)

OpaqueConsumingUsers
4178
4178
+0.0%
1.00x

Phonebook
6949
7120
+2.5%
0.98x

PointerArithmetics
31483
31488
+0.0%
1.00x (?)

PolymorphicCalls
25
25
+0.0%
1.00x

PopFrontArray
1791
1791
+0.0%
1.00x

PopFrontArrayGeneric
1807
1806
-0.1%
1.00x (?)

PopFrontUnsafePointer
8635
8641
+0.1%
1.00x (?)

PrefixAnyCollection
76
76
+0.0%
1.00x

PrefixAnyCollectionLazy
64152
64126
-0.0%
1.00x (?)

PrefixAnySeqCRangeIter
33
33
+0.0%
1.00x

PrefixAnySeqCRangeIterLazy
33
33
+0.0%
1.00x

PrefixAnySeqCntRange
71
71
+0.0%
1.00x

PrefixAnySeqCntRangeLazy
71
71
+0.0%
1.00x

PrefixAnySequence
1377
1377
+0.0%
1.00x

PrefixAnySequenceLazy
1377
1377
+0.0%
1.00x

PrefixArray
35
35
+0.0%
1.00x

PrefixArrayLazy
35
35
+0.0%
1.00x

PrefixCountableRange
29
29
+0.0%
1.00x

PrefixCountableRangeLazy
29
29
+0.0%
1.00x

PrefixSequence
2232
2262
+1.3%
0.99x (?)

PrefixSequenceLazy
2274
2274
+0.0%
1.00x

PrefixWhileAnyCollection
146
146
+0.0%
1.00x

PrefixWhileAnyCollectionLazy
89
89
+0.0%
1.00x

PrefixWhileAnySeqCRangeIter
366
366
+0.0%
1.00x

PrefixWhileAnySeqCRangeIterLazy
89
89
+0.0%
1.00x

PrefixWhileAnySequence
1522
1523
+0.1%
1.00x (?)

PrefixWhileAnySequenceLazy
1391
1390
-0.1%
1.00x (?)

PrefixWhileArray
88
88
+0.0%
1.00x

PrefixWhileArrayLazy
70
70
+0.0%
1.00x

PrefixWhileSequence
325
326
+0.3%
1.00x (?)

PrefixWhileSequenceLazy
52
52
+0.0%
1.00x

Prims
903
894
-1.0%
1.01x (?)

PrimsSplit
900
893
-0.8%
1.01x (?)

QueueConcrete
1134
1135
+0.1%
1.00x (?)

QueueGeneric
1128
1127
-0.1%
1.00x (?)

RC4
155
155
+0.0%
1.00x

RGBHistogram
2360
2361
+0.0%
1.00x (?)

RGBHistogramOfObjects
19948
19940
-0.0%
1.00x (?)

Radix2CooleyTukey
12159
12121
-0.3%
1.00x (?)

Radix2CooleyTukeyf
8878
8851
-0.3%
1.00x (?)

RandomDoubleDef
26902
26785
-0.4%
1.00x (?)

RandomDoubleLCG
2146
2060
-4.0%
1.04x

RandomIntegersDef
24518
24496
-0.1%
1.00x (?)

RandomIntegersLCG
178
178
+0.0%
1.00x

RandomShuffleDef2
2579
2584
+0.2%
1.00x (?)

RandomShuffleLCG2
1815
1816
+0.1%
1.00x (?)

RangeAssignment
336
337
+0.3%
1.00x (?)

RangeIterationSigned
171
171
+0.0%
1.00x

RangeReplaceableCollectionPlusDefault
1044
1049
+0.5%
1.00x (?)

RecursiveOwnedParameter
115
115
+0.0%
1.00x

RemoveWhereFilterInts
44
44
+0.0%
1.00x

RemoveWhereFilterString
243
242
-0.4%
1.00x (?)

RemoveWhereFilterStrings
435
435
+0.0%
1.00x

RemoveWhereMoveInts
17
17
+0.0%
1.00x

RemoveWhereMoveStrings
706
707
+0.1%
1.00x (?)

RemoveWhereQuadraticInts
1281
1282
+0.1%
1.00x (?)

RemoveWhereQuadraticString
368
366
-0.5%
1.01x (?)

RemoveWhereQuadraticStrings
2750
2748
-0.1%
1.00x (?)

RemoveWhereSwapInts
20
20
+0.0%
1.00x

RemoveWhereSwapStrings
861
861
+0.0%
1.00x

ReversedArray2
200
200
+0.0%
1.00x

ReversedBidirectional
13878
13977
+0.7%
0.99x (?)

ReversedDictionary2
317
317
+0.0%
1.00x

RomanNumbers
77170
77017
-0.2%
1.00x (?)

SequenceAlgosAnySequence
12371
12128
-2.0%
1.02x

SequenceAlgosArray
1577
1577
+0.0%
1.00x

SequenceAlgosContiguousArray
1574
1575
+0.1%
1.00x (?)

SequenceAlgosList
1349
1349
+0.0%
1.00x

SequenceAlgosRange
2575
2575
+0.0%
1.00x

SequenceAlgosUnfoldSequence
1104
1104
+0.0%
1.00x

SetExclusiveOr
4914
4832
-1.7%
1.02x

SetExclusiveOr_OfObjects
11404
11245
-1.4%
1.01x (?)

SetIntersect
584
585
+0.2%
1.00x (?)

SetIntersect_OfObjects
1650
1622
-1.7%
1.02x (?)

SetIsSubsetOf
322
323
+0.3%
1.00x

SetIsSubsetOf_OfObjects
433
433
+0.0%
1.00x

SetUnion
4258
4202
-1.3%
1.01x (?)

SetUnion_OfObjects
9746
9719
-0.3%
1.00x (?)

SevenBoom
845
840
-0.6%
1.01x (?)

Sim2DArray
311
311
+0.0%
1.00x

SortAdjacentIntPyramids
10233
10241
+0.1%
1.00x (?)

SortIntPyramid
8758
8756
-0.0%
1.00x (?)

SortLargeExistentials
5072
5136
+1.3%
0.99x

SortLettersInPlace
942
941
-0.1%
1.00x (?)

SortSortedStrings
671
681
+1.5%
0.99x

SortStrings
1457
1467
+0.7%
0.99x (?)

SortStringsUnicode
2021
2071
+2.5%
0.98x

StackPromo
17038
17015
-0.1%
1.00x (?)

StaticArray
9
9
+0.0%
1.00x

StrComplexWalk
1782
1782
+0.0%
1.00x

StrToInt
3139
3171
+1.0%
0.99x

StringAdder
548
548
+0.0%
1.00x

StringBuilder
490
490
+0.0%
1.00x

StringBuilderLong
1232
1231
-0.1%
1.00x (?)

StringBuilderSmallReservingCapacity
501
500
-0.2%
1.00x (?)

StringBuilderWithLongSubstring
1463
1465
+0.1%
1.00x (?)

StringComparison_abnormal
763
761
-0.3%
1.00x (?)

StringComparison_ascii
998
999
+0.1%
1.00x (?)

StringComparison_emoji
848
854
+0.7%
0.99x (?)

StringComparison_fastPrenormal
833
863
+3.6%
0.97x

StringComparison_latin1
648
663
+2.3%
0.98x

StringComparison_longSharedPrefix
944
950
+0.6%
0.99x

StringComparison_nonBMPSlowestPrenormal
1672
1677
+0.3%
1.00x (?)

StringComparison_slowerPrenormal
1794
1820
+1.4%
0.99x

StringComparison_zalgo
112247
111544
-0.6%
1.01x (?)

StringEdits
166980
166045
-0.6%
1.01x (?)

StringEnumRawValueInitialization
862
871
+1.0%
0.99x (?)

StringEqualPointerComparison
314
314
+0.0%
1.00x

StringFromLongWholeSubstring
21
21
+0.0%
1.00x

StringFromLongWholeSubstringGeneric
21
21
+0.0%
1.00x

StringHasPrefixAscii
2261
2289
+1.2%
0.99x

StringHasPrefixUnicode
98262
98913
+0.7%
0.99x (?)

StringHasSuffixAscii
2318
2347
+1.3%
0.99x

StringHasSuffixUnicode
98974
99599
+0.6%
0.99x (?)

StringHashing_abnormal
1340
1342
+0.1%
1.00x (?)

StringHashing_emoji
1937
1899
-2.0%
1.02x (?)

StringHashing_fastPrenormal
8368
8370
+0.0%
1.00x (?)

StringHashing_latin1
2559
2566
+0.3%
1.00x (?)

StringHashing_longSharedPrefix
7718
7690
-0.4%
1.00x (?)

StringHashing_nonBMPSlowestPrenormal
2063
2055
-0.4%
1.00x (?)

StringHashing_slowerPrenormal
2739
2737
-0.1%
1.00x (?)

StringHashing_zalgo
3516
3495
-0.6%
1.01x (?)

StringInterpolation
8867
8868
+0.0%
1.00x (?)

StringInterpolationManySmallSegments
17757
17860
+0.6%
0.99x (?)

StringInterpolationSmall
4005
4010
+0.1%
1.00x (?)

StringMatch
11961
11982
+0.2%
1.00x (?)

StringRemoveDupes
472
464
-1.7%
1.02x (?)

StringUTF16Builder
2522
2540
+0.7%
0.99x (?)

StringUTF16SubstringBuilder
5641
5508
-2.4%
1.02x (?)

StringWalk
1559
1566
+0.4%
1.00x

StringWithCString2
1785
1785
+0.0%
1.00x

StringWordBuilder
2241
2241
+0.0%
1.00x

StringWordBuilderReservingCapacity
1612
1626
+0.9%
0.99x (?)

SubstringComparable
12
12
+0.0%
1.00x

SubstringEqualString
598
605
+1.2%
0.99x (?)

SubstringEquatable
1393
1426
+2.4%
0.98x (?)

SubstringFromLongString
10
10
+0.0%
1.00x

SubstringFromLongStringGeneric
74
74
+0.0%
1.00x

SuffixAnyCollection
28
28
+0.0%
1.00x

SuffixAnyCollectionLazy
21410
21361
-0.2%
1.00x (?)

SuffixAnySeqCRangeIter
3584
3587
+0.1%
1.00x (?)

SuffixAnySeqCRangeIterLazy
3580
3584
+0.1%
1.00x (?)

SuffixAnySeqCntRange
14
14
+0.0%
1.00x

SuffixAnySeqCntRangeLazy
14
14
+0.0%
1.00x

SuffixAnySequence
4900
4877
-0.5%
1.00x (?)

SuffixAnySequenceLazy
5030
4997
-0.7%
1.01x (?)

SuffixSequence
3598
3585
-0.4%
1.00x (?)

SuffixSequenceLazy
3598
3594
-0.1%
1.00x (?)

SumUsingReduce
97
97
+0.0%
1.00x

SumUsingReduceInto
97
97
+0.0%
1.00x

SuperChars
19056
19088
+0.2%
1.00x (?)

TwoSum
1345
1354
+0.7%
0.99x (?)

TypeFlood
0
0
+0.0%
1.00x

UTF8Decode
302
302
+0.0%
1.00x

UTF8Decode_InitDecoding
1337
1346
+0.7%
0.99x

UTF8Decode_InitDecoding_ascii
650
652
+0.3%
1.00x (?)

UTF8Decode_InitFromBytes
1178
1171
-0.6%
1.01x (?)

UTF8Decode_InitFromBytes_ascii
476
465
-2.3%
1.02x (?)

UTF8Decode_InitFromData
1240
1234
-0.5%
1.00x (?)

UTF8Decode_InitFromData_ascii
698
695
-0.4%
1.00x (?)

Walsh
408
398
-2.5%
1.03x

WordCountHistogramASCII
6773
6915
+2.1%
0.98x

WordCountHistogramUTF16
10079
10337
+2.6%
0.98x

WordCountUniqueASCII
2024
2004
-1.0%
1.01x (?)

WordCountUniqueUTF16
4527
4589
+1.4%
0.99x (?)

XorLoop
392
388
-1.0%
1.01x (?)

Unoptimized (Onone)

Regression (15)

TEST
OLD
NEW
DELTA
SPEEDUP

PrefixWhileSequenceLazy
10404
13713
+31.8%
0.76x (?)

DictionaryBridge
1295
1649
+27.3%
0.79x

CharIteration_japanese_unicodeScalars_Backwards
292225
332367
+13.7%
0.88x (?)

StringEdits
353550
393028
+11.2%
0.90x

DictionaryBridgeToObjC_Access
1412
1551
+9.8%
0.91x (?)

StringBuilderWithLongSubstring
3225
3525
+9.3%
0.91x (?)

ArrayAppendAsciiSubstring
71192
77289
+8.6%
0.92x (?)

ArrayPlusEqualSingleElementCollection
223118
241943
+8.4%
0.92x (?)

DictionaryKeysContainsCocoa
65
70
+7.7%
0.93x (?)

ObjectiveCBridgeStubURLAppendPath2
2830
3042
+7.5%
0.93x

FloatingPointPrinting_Double_interpolated
92655
99200
+7.1%
0.93x (?)

RomanNumbers
1330575
1423849
+7.0%
0.93x

DataAppendDataSmallToSmall
5738
6123
+6.7%
0.94x (?)

Dictionary4OfObjectsLegacy
1939
2066
+6.5%
0.94x (?)

WordCountUniqueUTF16
9351
9844
+5.3%
0.95x (?)

Improvement (13)

TEST
OLD
NEW
DELTA
SPEEDUP

CharIteration_utf16_unicodeScalars_Backwards
247016
213158
-13.7%
1.16x (?)

UTF8Decode_InitFromData_ascii
787
694
-11.8%
1.13x (?)

FrequenciesUsingReduceInto
3408
3019
-11.4%
1.13x

StringMatch
49842
45181
-9.4%
1.10x

ObjectiveCBridgeStubFromArrayOfNSString2
3618
3331
-7.9%
1.09x (?)

ObjectiveCBridgeFromNSSetAnyObjectToString
75630
69885
-7.6%
1.08x (?)

NSDictionaryCastToSwift
8743
8122
-7.1%
1.08x (?)

DictionaryOfObjects
6109
5694
-6.8%
1.07x (?)

CSVParsingAlt2
3329
3121
-6.2%
1.07x (?)

LuhnAlgoLazy
5993
5626
-6.1%
1.07x (?)

MapReduceShortString
226
214
-5.3%
1.06x

ArrayInClass
4581
4351
-5.0%
1.05x

ObjectiveCBridgeFromNSSetAnyObjectForced
4689
4463
-4.8%
1.05x (?)

No Changes (419)

TEST
OLD
NEW
DELTA
SPEEDUP

AngryPhonebook
4976
5209
+4.7%
0.96x (?)

AnyHashableWithAClass
105754
106489
+0.7%
0.99x (?)

Array2D
503093
502916
-0.0%
1.00x (?)

ArrayAppend
4326
4320
-0.1%
1.00x (?)

ArrayAppendArrayOfInt
870
868
-0.2%
1.00x (?)

ArrayAppendAscii
26578
26627
+0.2%
1.00x (?)

ArrayAppendFromGeneric
859
876
+2.0%
0.98x (?)

ArrayAppendGenericStructs
1518
1493
-1.6%
1.02x (?)

ArrayAppendLatin1
63248
63089
-0.3%
1.00x (?)

ArrayAppendLatin1Substring
159640
164955
+3.3%
0.97x (?)

ArrayAppendLazyMap
164326
163655
-0.4%
1.00x (?)

ArrayAppendOptionals
1493
1509
+1.1%
0.99x (?)

ArrayAppendRepeatCol
190527
187497
-1.6%
1.02x

ArrayAppendReserved
4045
4047
+0.0%
1.00x (?)

ArrayAppendSequence
100151
101800
+1.6%
0.98x

ArrayAppendStrings
6340
6462
+1.9%
0.98x

ArrayAppendToFromGeneric
868
866
-0.2%
1.00x (?)

ArrayAppendToGeneric
882
864
-2.0%
1.02x (?)

ArrayAppendUTF16
63653
63397
-0.4%
1.00x (?)

ArrayAppendUTF16Substring
158027
163022
+3.2%
0.97x (?)

ArrayLiteral
1579
1593
+0.9%
0.99x

ArrayOfGenericPOD2
1113
1164
+4.6%
0.96x (?)

ArrayOfGenericRef
10223
10231
+0.1%
1.00x (?)

ArrayOfPOD
783
784
+0.1%
1.00x

ArrayOfRef
9471
9419
-0.5%
1.01x (?)

ArrayPlusEqualArrayOfInt
866
873
+0.8%
0.99x (?)

ArrayPlusEqualFiveElementCollection
226073
224986
-0.5%
1.00x (?)

ArrayPlusEqualThreeElements
9404
9769
+3.9%
0.96x (?)

ArraySubscript
106889
105875
-0.9%
1.01x

ArrayValueProp
3221
3220
-0.0%
1.00x (?)

ArrayValueProp2
14549
14458
-0.6%
1.01x (?)

ArrayValueProp3
3722
3740
+0.5%
1.00x (?)

ArrayValueProp4
3687
3704
+0.5%
1.00x (?)

BinaryFloatingPointPropertiesBinade
91
88
-3.3%
1.03x

BinaryFloatingPointPropertiesNextUp
134
137
+2.2%
0.98x

BinaryFloatingPointPropertiesUlp
130
130
+0.0%
1.00x

BitCount
8832
8833
+0.0%
1.00x (?)

ByteSwap
9886
9804
-0.8%
1.01x

COWArrayGuaranteedParameterOverhead
15977
15368
-3.8%
1.04x (?)

COWTree
11694
11786
+0.8%
0.99x (?)

CSVParsing2
7070
7134
+0.9%
0.99x (?)

CSVParsingAltIndices2
6268
6077
-3.0%
1.03x (?)

CStringLongAscii
3608
3622
+0.4%
1.00x (?)

CStringLongNonAscii
2221
2224
+0.1%
1.00x (?)

CStringShortAscii
5999
5988
-0.2%
1.00x (?)

Calculator
1077
1114
+3.4%
0.97x

CaptureProp
287669
289607
+0.7%
0.99x (?)

ChainedFilterMap
227697
227695
-0.0%
1.00x (?)

CharIndexing_ascii_unicodeScalars
324268
315490
-2.7%
1.03x (?)

CharIndexing_ascii_unicodeScalars_Backwards
358678
357615
-0.3%
1.00x (?)

CharIndexing_chinese_unicodeScalars
240116
238218
-0.8%
1.01x (?)

CharIndexing_chinese_unicodeScalars_Backwards
266962
266926
-0.0%
1.00x (?)

CharIndexing_japanese_unicodeScalars
380050
377342
-0.7%
1.01x (?)

CharIndexing_japanese_unicodeScalars_Backwards
425468
419158
-1.5%
1.02x (?)

CharIndexing_korean_unicodeScalars
307456
306231
-0.4%
1.00x (?)

CharIndexing_korean_unicodeScalars_Backwards
341749
340304
-0.4%
1.00x (?)

CharIndexing_punctuatedJapanese_unicodeScalars
56084
55850
-0.4%
1.00x (?)

CharIndexing_punctuatedJapanese_unicodeScalars_Backwards
62647
60473
-3.5%
1.04x (?)

CharIndexing_punctuated_unicodeScalars
71515
70394
-1.6%
1.02x (?)

CharIndexing_punctuated_unicodeScalars_Backwards
78097
76917
-1.5%
1.02x (?)

CharIndexing_russian_unicodeScalars
263714
261884
-0.7%
1.01x (?)

CharIndexing_russian_unicodeScalars_Backwards
297935
295793
-0.7%
1.01x (?)

CharIndexing_tweet_unicodeScalars
627072
624671
-0.4%
1.00x (?)

CharIndexing_tweet_unicodeScalars_Backwards
701911
695274
-0.9%
1.01x (?)

CharIndexing_utf16_unicodeScalars
283044
277398
-2.0%
1.02x (?)

CharIndexing_utf16_unicodeScalars_Backwards
307482
309595
+0.7%
0.99x (?)

CharIteration_ascii_unicodeScalars
148045
147374
-0.5%
1.00x (?)

CharIteration_ascii_unicodeScalars_Backwards
245197
243986
-0.5%
1.00x (?)

CharIteration_chinese_unicodeScalars
111940
111140
-0.7%
1.01x (?)

CharIteration_chinese_unicodeScalars_Backwards
186037
184327
-0.9%
1.01x (?)

CharIteration_japanese_unicodeScalars
177347
176125
-0.7%
1.01x

CharIteration_korean_unicodeScalars
143397
142604
-0.6%
1.01x (?)

CharIteration_korean_unicodeScalars_Backwards
236123
236039
-0.0%
1.00x (?)

CharIteration_punctuatedJapanese_unicodeScalars
26539
26241
-1.1%
1.01x (?)

CharIteration_punctuatedJapanese_unicodeScalars_Backwards
43719
42576
-2.6%
1.03x (?)

CharIteration_punctuated_unicodeScalars
33149
32966
-0.6%
1.01x (?)

CharIteration_punctuated_unicodeScalars_Backwards
53817
53749
-0.1%
1.00x (?)

CharIteration_russian_unicodeScalars
122966
122564
-0.3%
1.00x (?)

CharIteration_russian_unicodeScalars_Backwards
203823
202678
-0.6%
1.01x (?)

CharIteration_tweet_unicodeScalars
292210
291102
-0.4%
1.00x (?)

CharIteration_tweet_unicodeScalars_Backwards
488961
482017
-1.4%
1.01x (?)

CharIteration_utf16_unicodeScalars
125883
125275
-0.5%
1.00x (?)

CharacterLiteralsLarge
5827
5805
-0.4%
1.00x (?)

CharacterLiteralsSmall
727
728
+0.1%
1.00x (?)

CharacterPropertiesFetch
5394
5491
+1.8%
0.98x (?)

CharacterPropertiesPrecomputed
2935
2870
-2.2%
1.02x (?)

CharacterPropertiesStashed
2574
2609
+1.4%
0.99x (?)

CharacterPropertiesStashedMemo
4094
4018
-1.9%
1.02x (?)

Chars2
35571
35321
-0.7%
1.01x (?)

ClassArrayGetter2
9449
9454
+0.1%
1.00x (?)

Combos
2466
2460
-0.2%
1.00x (?)

DataAccessBytes
2350
2362
+0.5%
0.99x (?)

DataAppendArray
5615
5604
-0.2%
1.00x (?)

DataAppendBytes
5263
5255
-0.2%
1.00x (?)

DataAppendDataLargeToLarge
67993
66857
-1.7%
1.02x (?)

DataAppendDataLargeToMedium
35671
35237
-1.2%
1.01x (?)

DataAppendDataLargeToSmall
34570
34614
+0.1%
1.00x (?)

DataAppendDataMediumToLarge
38301
37858
-1.2%
1.01x (?)

DataAppendDataMediumToMedium
6684
6581
-1.5%
1.02x (?)

DataAppendDataMediumToSmall
5991
5913
-1.3%
1.01x (?)

DataAppendDataSmallToLarge
37715
37711
-0.0%
1.00x (?)

DataAppendDataSmallToMedium
6248
6102
-2.3%
1.02x (?)

DataAppendSequence
1983224
1970388
-0.6%
1.01x

DataCopyBytes
544
541
-0.6%
1.01x

DataCount
223
223
+0.0%
1.00x

DataMutateBytes
5220
5115
-2.0%
1.02x (?)

DataReplaceLarge
36597
36490
-0.3%
1.00x (?)

DataReplaceLargeBuffer
61224
60294
-1.5%
1.02x (?)

DataReplaceMedium
8045
7901
-1.8%
1.02x (?)

DataReplaceMediumBuffer
13981
13782
-1.4%
1.01x (?)

DataReplaceSmall
5750
5700
-0.9%
1.01x (?)

DataReplaceSmallBuffer
10332
9942
-3.8%
1.04x (?)

DataReset
2891
2859
-1.1%
1.01x (?)

DataSetCount
558
558
+0.0%
1.00x

DataSubscript
443
443
+0.0%
1.00x

DictOfArraysToArrayOfDicts
3654
3645
-0.2%
1.00x (?)

Dictionary
2133
2102
-1.5%
1.01x

Dictionary2
1283
1284
+0.1%
1.00x (?)

Dictionary2OfObjects
4192
4182
-0.2%
1.00x (?)

Dictionary3
809
798
-1.4%
1.01x

Dictionary3OfObjects
2072
2053
-0.9%
1.01x (?)

Dictionary4
1166
1170
+0.3%
1.00x (?)

Dictionary4Legacy
1422
1422
+0.0%
1.00x

Dictionary4OfObjects
1788
1882
+5.3%
0.95x (?)

DictionaryBridgeToObjC_Bridge
19
19
+0.0%
1.00x

DictionaryBridgeToObjC_BulkAccess
171
169
-1.2%
1.01x (?)

DictionaryCompactMapValuesOfCastValue
121527
126729
+4.3%
0.96x (?)

DictionaryCompactMapValuesOfNilValue
32470
31780
-2.1%
1.02x (?)

DictionaryCopy
300353
298261
-0.7%
1.01x (?)

DictionaryFilter
300002
296345
-1.2%
1.01x (?)

DictionaryGroup
4418
4331
-2.0%
1.02x

DictionaryGroupOfObjects
7115
6883
-3.3%
1.03x (?)

DictionaryKeysContainsNative
50
50
+0.0%
1.00x

DictionaryLiteral
8070
8041
-0.4%
1.00x (?)

DictionaryRemove
17351
17251
-0.6%
1.01x (?)

DictionaryRemoveOfObjects
54727
53419
-2.4%
1.02x (?)

DictionarySubscriptDefaultMutation
1721
1715
-0.3%
1.00x (?)

DictionarySubscriptDefaultMutationArray
1994
2025
+1.6%
0.98x (?)

DictionarySubscriptDefaultMutationArrayOfObjects
9181
9119
-0.7%
1.01x (?)

DictionarySubscriptDefaultMutationOfObjects
5101
5080
-0.4%
1.00x (?)

DictionarySwap
4556
4580
+0.5%
0.99x (?)

DictionarySwapAt
33166
32492
-2.0%
1.02x (?)

DictionarySwapAtOfObjects
114883
113685
-1.0%
1.01x (?)

DictionarySwapOfObjects
19414
19226
-1.0%
1.01x (?)

DoubleWidthDivision
0
0
+0.0%
1.00x

DropFirstAnyCollection
16080
15754
-2.0%
1.02x

DropFirstAnyCollectionLazy
108061
107575
-0.4%
1.00x (?)

DropFirstAnySeqCRangeIter
25320
24882
-1.7%
1.02x (?)

DropFirstAnySeqCRangeIterLazy
25533
25053
-1.9%
1.02x (?)

DropFirstAnySeqCntRange
15994
15787
-1.3%
1.01x

DropFirstAnySeqCntRangeLazy
16082
15788
-1.8%
1.02x

DropFirstAnySequence
12304
12307
+0.0%
1.00x (?)

DropFirstAnySequenceLazy
12353
12399
+0.4%
1.00x (?)

DropFirstArray
3512
3511
-0.0%
1.00x (?)

DropFirstArrayLazy
30448
30358
-0.3%
1.00x (?)

DropFirstCountableRange
346
346
+0.0%
1.00x

DropFirstCountableRangeLazy
36297
35904
-1.1%
1.01x (?)

DropFirstSequence
12060
11921
-1.2%
1.01x

DropFirstSequenceLazy
12021
11943
-0.6%
1.01x (?)

DropLastAnyCollection
5399
5281
-2.2%
1.02x

DropLastAnyCollectionLazy
35751
36799
+2.9%
0.97x (?)

DropLastAnySeqCRangeIter
39858
39503
-0.9%
1.01x

DropLastAnySeqCRangeIterLazy
39995
40272
+0.7%
0.99x (?)

DropLastAnySeqCntRange
5353
5272
-1.5%
1.02x (?)

DropLastAnySeqCntRangeLazy
5359
5269
-1.7%
1.02x (?)

DropLastAnySequence
28839
29099
+0.9%
0.99x (?)

DropLastAnySequenceLazy
29464
29448
-0.1%
1.00x (?)

DropLastSequence
28644
28806
+0.6%
0.99x (?)

DropLastSequenceLazy
29036
29189
+0.5%
0.99x (?)

DropWhileAnyCollection
20715
20333
-1.8%
1.02x (?)

DropWhileAnyCollectionLazy
23913
23534
-1.6%
1.02x (?)

DropWhileAnySeqCRangeIter
26425
25994
-1.6%
1.02x (?)

DropWhileAnySeqCRangeIterLazy
23752
23433
-1.3%
1.01x (?)

DropWhileAnySeqCntRange
20746
20446
-1.4%
1.01x (?)

DropWhileAnySeqCntRangeLazy
23836
23425
-1.7%
1.02x (?)

DropWhileAnySequence
13304
13228
-0.6%
1.01x (?)

DropWhileAnySequenceLazy
12059
12018
-0.3%
1.00x (?)

DropWhileArrayLazy
13463
13386
-0.6%
1.01x (?)

DropWhileCountableRange
5049
4938
-2.2%
1.02x

DropWhileCountableRangeLazy
22798
22260
-2.4%
1.02x

DropWhileSequence
12938
12888
-0.4%
1.00x (?)

DropWhileSequenceLazy
11554
11623
+0.6%
0.99x (?)

EqualStringSubstring
71
72
+1.4%
0.99x

EqualSubstringString
71
72
+1.4%
0.99x

EqualSubstringSubstring
72
72
+0.0%
1.00x

EqualSubstringSubstringGenericEquatable
58
56
-3.4%
1.04x

ErrorHandling
5195
5152
-0.8%
1.01x (?)

ExclusivityGlobal
191
186
-2.6%
1.03x

ExclusivityIndependent
72
71
-1.4%
1.01x (?)

FatCompactMap
284639
283628
-0.4%
1.00x (?)

FilterEvenUsingReduce
3598
3579
-0.5%
1.01x (?)

FilterEvenUsingReduceInto
1848
1829
-1.0%
1.01x

FloatingPointPrinting_Double_description_small
22403
22569
+0.7%
0.99x (?)

FloatingPointPrinting_Double_description_uniform
33883
34042
+0.5%
1.00x (?)

FloatingPointPrinting_Float80_description_small
29366
29383
+0.1%
1.00x (?)

FloatingPointPrinting_Float80_description_uniform
56628
56922
+0.5%
0.99x (?)

FloatingPointPrinting_Float80_interpolated
113100
114611
+1.3%
0.99x (?)

FloatingPointPrinting_Float_description_small
6739
6616
-1.8%
1.02x

FloatingPointPrinting_Float_description_uniform
17535
17880
+2.0%
0.98x

FloatingPointPrinting_Float_interpolated
67517
67140
-0.6%
1.01x (?)

FrequenciesUsingReduce
10451
10538
+0.8%
0.99x (?)

Hanoi
19323
19517
+1.0%
0.99x (?)

HashTest
20570
20236
-1.6%
1.02x (?)

Histogram
6107
6083
-0.4%
1.00x (?)

Integrate
586
586
+0.0%
1.00x

IterateData
4986
5012
+0.5%
0.99x (?)

Join
174
177
+1.7%
0.98x

LazilyFilteredArrayContains
736662
734487
-0.3%
1.00x (?)

LazilyFilteredArrays2
94949
94398
-0.6%
1.01x (?)

LazilyFilteredRange
552123
545389
-1.2%
1.01x

LessSubstringSubstring
72
72
+0.0%
1.00x

LessSubstringSubstringGenericComparable
57
57
+0.0%
1.00x

LinkedList
32667
32621
-0.1%
1.00x (?)

LuhnAlgoEager
5647
5746
+1.8%
0.98x (?)

MapReduce
24888
24912
+0.1%
1.00x (?)

MapReduceAnyCollection
24978
24824
-0.6%
1.01x (?)

MapReduceAnyCollectionShort
36508
35351
-3.2%
1.03x (?)

MapReduceClass
28931
28859
-0.2%
1.00x (?)

MapReduceClassShort
39643
40327
+1.7%
0.98x (?)

MapReduceLazyCollection
22263
22203
-0.3%
1.00x (?)

MapReduceLazyCollectionShort
32346
32897
+1.7%
0.98x (?)

MapReduceLazySequence
19912
19851
-0.3%
1.00x (?)

MapReduceSequence
30046
29958
-0.3%
1.00x (?)

MapReduceShort
37154
36510
-1.7%
1.02x (?)

MapReduceString
1706
1688
-1.1%
1.01x

Memset
24343
24343
+0.0%
1.00x

MonteCarloE
1132747
1124239
-0.8%
1.01x (?)

MonteCarloPi
5185025
5131501
-1.0%
1.01x

NSError
600
627
+4.5%
0.96x (?)

NSStringConversion
715
739
+3.4%
0.97x

NibbleSort
367965
366050
-0.5%
1.01x (?)

NopDeinit
200381
192339
-4.0%
1.04x (?)

ObjectAllocation
1229
1226
-0.2%
1.00x (?)

ObjectiveCBridgeFromNSArrayAnyObject
29285
28156
-3.9%
1.04x (?)

ObjectiveCBridgeFromNSArrayAnyObjectForced
8943
9111
+1.9%
0.98x (?)

ObjectiveCBridgeFromNSArrayAnyObjectToString
49066
47566
-3.1%
1.03x (?)

ObjectiveCBridgeFromNSArrayAnyObjectToStringForced
46853
46216
-1.4%
1.01x (?)

ObjectiveCBridgeFromNSDictionaryAnyObject
109876
109947
+0.1%
1.00x (?)

ObjectiveCBridgeFromNSSetAnyObject
50570
49784
-1.6%
1.02x (?)

ObjectiveCBridgeFromNSString
2889
2895
+0.2%
1.00x (?)

ObjectiveCBridgeFromNSStringForced
2575
2605
+1.2%
0.99x (?)

ObjectiveCBridgeStubDataAppend
6668
6493
-2.6%
1.03x (?)

ObjectiveCBridgeStubDateMutation
744
746
+0.3%
1.00x (?)

ObjectiveCBridgeStubFromNSString
1062
1082
+1.9%
0.98x (?)

ObjectiveCBridgeStubNSDataAppend
2968
2989
+0.7%
0.99x (?)

ObjectiveCBridgeStubToArrayOfNSString2
3966
3944
-0.6%
1.01x (?)

ObjectiveCBridgeStubToNSDate2
1589
1568
-1.3%
1.01x (?)

ObjectiveCBridgeStubToNSString
2421
2427
+0.2%
1.00x (?)

ObjectiveCBridgeStubToNSStringRef
151
151
+0.0%
1.00x

ObjectiveCBridgeStubURLAppendPathRef2
2939
2919
-0.7%
1.01x (?)

ObjectiveCBridgeToNSArray
14960
14670
-1.9%
1.02x (?)

ObjectiveCBridgeToNSDictionary
29607
28864
-2.5%
1.03x (?)

ObjectiveCBridgeToNSSet
18363
18659
+1.6%
0.98x (?)

ObjectiveCBridgeToNSString
538
536
-0.4%
1.00x (?)

ObserverClosure
6292
6354
+1.0%
0.99x (?)

ObserverForwarderStruct
4133
4130
-0.1%
1.00x (?)

ObserverPartiallyAppliedMethod
7847
7776
-0.9%
1.01x (?)

ObserverUnappliedMethod
7840
7869
+0.4%
1.00x (?)

OpaqueConsumingUsers
13415
13418
+0.0%
1.00x (?)

OpenClose
590
598
+1.4%
0.99x

Phonebook
16134
16190
+0.3%
1.00x (?)

PointerArithmetics
418017
407265
-2.6%
1.03x

PolymorphicCalls
2405
2416
+0.5%
1.00x

PopFrontArray
4331
4337
+0.1%
1.00x (?)

PopFrontArrayGeneric
5644
5651
+0.1%
1.00x (?)

PopFrontUnsafePointer
11888
11856
-0.3%
1.00x (?)

PrefixAnyCollection
16063
15728
-2.1%
1.02x

PrefixAnyCollectionLazy
104188
107804
+3.5%
0.97x (?)

PrefixAnySeqCRangeIter
20256
19955
-1.5%
1.02x

PrefixAnySeqCRangeIterLazy
20413
19956
-2.2%
1.02x (?)

PrefixAnySeqCntRange
16062
15762
-1.9%
1.02x

PrefixAnySeqCntRangeLazy
16106
15850
-1.6%
1.02x

PrefixAnySequence
9994
10041
+0.5%
1.00x

PrefixAnySequenceLazy
9949
10004
+0.6%
0.99x (?)

PrefixArray
3513
3451
-1.8%
1.02x

PrefixArrayLazy
30381
30330
-0.2%
1.00x (?)

PrefixCountableRange
346
345
-0.3%
1.00x

PrefixCountableRangeLazy
36319
35961
-1.0%
1.01x (?)

PrefixSequence
9643
9628
-0.2%
1.00x (?)

PrefixSequenceLazy
9601
9642
+0.4%
1.00x (?)

PrefixWhileAnyCollection
30072
29512
-1.9%
1.02x

PrefixWhileAnyCollectionLazy
19900
19674
-1.1%
1.01x (?)

PrefixWhileAnySeqCRangeIter
33685
33421
-0.8%
1.01x

PrefixWhileAnySeqCRangeIterLazy
19723
19427
-1.5%
1.02x (?)

PrefixWhileAnySequence
25635
25585
-0.2%
1.00x (?)

PrefixWhileAnySequenceLazy
10789
10615
-1.6%
1.02x (?)

PrefixWhileArray
10358
10346
-0.1%
1.00x

PrefixWhileArrayLazy
11867
11776
-0.8%
1.01x (?)

PrefixWhileSequence
25026
24995
-0.1%
1.00x (?)

Prims
8930
8799
-1.5%
1.01x

PrimsSplit
8916
8797
-1.3%
1.01x (?)

QueueConcrete
14161
14128
-0.2%
1.00x (?)

QueueGeneric
18788
18704
-0.4%
1.00x (?)

RC4
12925
12968
+0.3%
1.00x (?)

RGBHistogram
22265
22330
+0.3%
1.00x (?)

RGBHistogramOfObjects
72677
72917
+0.3%
1.00x (?)

Radix2CooleyTukey
47178
47008
-0.4%
1.00x (?)

Radix2CooleyTukeyf
41019
40674
-0.8%
1.01x (?)

RandomDoubleDef
83054
86351
+4.0%
0.96x (?)

RandomDoubleLCG
55126
55003
-0.2%
1.00x (?)

RandomIntegersDef
43727
43738
+0.0%
1.00x (?)

RandomIntegersLCG
32560
32674
+0.4%
1.00x (?)

RandomShuffleDef2
7225
7162
-0.9%
1.01x (?)

RandomShuffleLCG2
47174
47037
-0.3%
1.00x (?)

RangeAssignment
2736
2693
-1.6%
1.02x (?)

RangeIterationSigned
14620
14770
+1.0%
0.99x (?)

RangeReplaceableCollectionPlusDefault
11648
11998
+3.0%
0.97x (?)

RecursiveOwnedParameter
6063
6057
-0.1%
1.00x (?)

RemoveWhereFilterInts
2039
2037
-0.1%
1.00x (?)

RemoveWhereFilterString
1310
1301
-0.7%
1.01x (?)

RemoveWhereFilterStrings
2603
2608
+0.2%
1.00x

RemoveWhereMoveInts
3332
3321
-0.3%
1.00x (?)

RemoveWhereMoveStrings
3868
3863
-0.1%
1.00x (?)

RemoveWhereQuadraticInts
8509
8424
-1.0%
1.01x (?)

RemoveWhereQuadraticString
2594
2568
-1.0%
1.01x (?)

RemoveWhereQuadraticStrings
10276
10188
-0.9%
1.01x (?)

RemoveWhereSwapInts
5994
5963
-0.5%
1.01x (?)

RemoveWhereSwapStrings
6642
6634
-0.1%
1.00x (?)

ReversedArray2
14066
14019
-0.3%
1.00x (?)

ReversedBidirectional
43517
43555
+0.1%
1.00x (?)

ReversedDictionary2
15704
15717
+0.1%
1.00x (?)

SequenceAlgosAnySequence
13650
13279
-2.7%
1.03x

SequenceAlgosArray
753165
751673
-0.2%
1.00x (?)

SequenceAlgosContiguousArray
317220
309264
-2.5%
1.03x (?)

SequenceAlgosList
8559
8598
+0.5%
1.00x (?)

SequenceAlgosRange
1322959
1296335
-2.0%
1.02x

SequenceAlgosUnfoldSequence
6302
6326
+0.4%
1.00x

SetExclusiveOr
12819
12809
-0.1%
1.00x (?)

SetExclusiveOr_OfObjects
38519
38364
-0.4%
1.00x (?)

SetIntersect
3798
3802
+0.1%
1.00x (?)

SetIntersect_OfObjects
7593
7581
-0.2%
1.00x (?)

SetIsSubsetOf
848
846
-0.2%
1.00x (?)

SetIsSubsetOf_OfObjects
1881
1902
+1.1%
0.99x (?)

SetUnion
10436
10306
-1.2%
1.01x

SetUnion_OfObjects
28573
28521
-0.2%
1.00x (?)

SevenBoom
1051
1048
-0.3%
1.00x (?)

Sim2DArray
30291
30205
-0.3%
1.00x

SortAdjacentIntPyramids
199838
201801
+1.0%
0.99x

SortIntPyramid
233829
236787
+1.3%
0.99x

SortLargeExistentials
9852
9917
+0.7%
0.99x (?)

SortLettersInPlace
1597
1606
+0.6%
0.99x (?)

SortSortedStrings
881
890
+1.0%
0.99x (?)

SortStrings
1836
1832
-0.2%
1.00x (?)

SortStringsUnicode
2810
2844
+1.2%
0.99x

StackPromo
89733
91025
+1.4%
0.99x (?)

StaticArray
2293
2301
+0.3%
1.00x (?)

StrComplexWalk
6828
6827
-0.0%
1.00x (?)

StrToInt
77684
80859
+4.1%
0.96x (?)

StringAdder
751
761
+1.3%
0.99x

StringBuilder
4959
4944
-0.3%
1.00x (?)

StringBuilderLong
1519
1521
+0.1%
1.00x (?)

StringBuilderSmallReservingCapacity
5028
4976
-1.0%
1.01x (?)

StringComparison_abnormal
1282
1336
+4.2%
0.96x (?)

StringComparison_ascii
8924
8839
-1.0%
1.01x

StringComparison_emoji
1984
1992
+0.4%
1.00x (?)

StringComparison_fastPrenormal
4871
4864
-0.1%
1.00x (?)

StringComparison_latin1
3810
3779
-0.8%
1.01x

StringComparison_longSharedPrefix
2352
2346
-0.3%
1.00x (?)

StringComparison_nonBMPSlowestPrenormal
3671
3723
+1.4%
0.99x (?)

StringComparison_slowerPrenormal
4154
4161
+0.2%
1.00x (?)

StringComparison_zalgo
114483
114728
+0.2%
1.00x (?)

StringEnumRawValueInitialization
22507
22742
+1.0%
0.99x (?)

StringEqualPointerComparison
1775
1776
+0.1%
1.00x (?)

StringFromLongWholeSubstring
22
22
+0.0%
1.00x

StringFromLongWholeSubstringGeneric
194
194
+0.0%
1.00x

StringHasPrefixAscii
3279
3238
-1.3%
1.01x

StringHasPrefixUnicode
99874
100443
+0.6%
0.99x (?)

StringHasSuffixAscii
3333
3362
+0.9%
0.99x

StringHasSuffixUnicode
100635
101042
+0.4%
1.00x (?)

StringHashing_abnormal
1448
1465
+1.2%
0.99x (?)

StringHashing_ascii
210
209
-0.5%
1.00x (?)

StringHashing_emoji
2174
2206
+1.5%
0.99x (?)

StringHashing_fastPrenormal
8691
8638
-0.6%
1.01x (?)

StringHashing_latin1
2814
2800
-0.5%
1.00x (?)

StringHashing_longSharedPrefix
7878
7856
-0.3%
1.00x (?)

StringHashing_nonBMPSlowestPrenormal
2391
2405
+0.6%
0.99x (?)

StringHashing_slowerPrenormal
2969
2934
-1.2%
1.01x (?)

StringHashing_zalgo
3638
3637
-0.0%
1.00x (?)

StringInterpolation
11341
11641
+2.6%
0.97x (?)

StringInterpolationManySmallSegments
18379
18499
+0.7%
0.99x (?)

StringInterpolationSmall
5793
5805
+0.2%
1.00x (?)

StringRemoveDupes
709
711
+0.3%
1.00x (?)

StringUTF16Builder
7516
7716
+2.7%
0.97x (?)

StringUTF16SubstringBuilder
20891
21050
+0.8%
0.99x (?)

StringWalk
13365
13032
-2.5%
1.03x

StringWithCString2
1786
1786
+0.0%
1.00x

StringWordBuilder
2507
2484
-0.9%
1.01x

StringWordBuilderReservingCapacity
1836
1853
+0.9%
0.99x

SubstringComparable
1570
1571
+0.1%
1.00x (?)

SubstringEqualString
1709
1709
+0.0%
1.00x

SubstringEquatable
5240
5242
+0.0%
1.00x (?)

SubstringFromLongString
15
15
+0.0%
1.00x

SubstringFromLongStringGeneric
104
104
+0.0%
1.00x

SuffixAnyCollection
5371
5248
-2.3%
1.02x (?)

SuffixAnyCollectionLazy
36091
35401
-1.9%
1.02x (?)

SuffixAnySeqCRangeIter
36216
35722
-1.4%
1.01x

SuffixAnySeqCRangeIterLazy
36333
36559
+0.6%
0.99x (?)

SuffixAnySeqCntRange
5353
5251
-1.9%
1.02x

SuffixAnySeqCntRangeLazy
5346
5263
-1.6%
1.02x (?)

SuffixAnySequence
25164
25238
+0.3%
1.00x (?)

SuffixAnySequenceLazy
25974
25595
-1.5%
1.01x (?)

SuffixSequence
25021
25025
+0.0%
1.00x (?)

SuffixSequenceLazy
25038
25125
+0.3%
1.00x (?)

SumUsingReduce
156054
155397
-0.4%
1.00x

SumUsingReduceInto
148812
148578
-0.2%
1.00x

SuperChars
77687
78499
+1.0%
0.99x (?)

TwoSum
3658
3662
+0.1%
1.00x (?)

TypeFlood
204
198
-2.9%
1.03x (?)

UTF8Decode
28899
28797
-0.4%
1.00x

UTF8Decode_InitDecoding
1381
1406
+1.8%
0.98x (?)

UTF8Decode_InitDecoding_ascii
909
925
+1.8%
0.98x (?)

UTF8Decode_InitFromBytes
1185
1194
+0.8%
0.99x (?)

UTF8Decode_InitFromBytes_ascii
497
483
-2.8%
1.03x (?)

UTF8Decode_InitFromData
1250
1238
-1.0%
1.01x (?)

Walsh
7253
7218
-0.5%
1.00x (?)

WordCountHistogramASCII
36975
36873
-0.3%
1.00x (?)

WordCountHistogramUTF16
42429
42461
+0.1%
1.00x (?)

WordCountUniqueASCII
6790
6719
-1.0%
1.01x

XorLoop
12915
12916
+0.0%
1.00x (?)

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

authors: airspeedswift lorentey parkera swift-ci


text:
SIL devirtualization: Conservatively avoid filtering devirt candidates on generic base classes.

This is more comprehensively (but invasively) fixed in master by 77dd9b29920f5e161a1ec4cc0daac4a26aa6c78a. As a spot fix for 2.2, make devirt more conservative by not filtering devirt candidates on generic base classes at all. Fixes rdar://problem/25412647.

@swift-ci Please test

@swiftix Does this look like a reasonable conservative fix for 2.2?

@jckarter LGTM

@tkremenek Assuming tests pass, can we take this fix for 2.2.1?

@jckarter BTW, do you mind adding the new tests to the ToT branch as well? The more tests we have the better.

@swiftix I took the devirtualizer tests from the master branch already. I'll port over the new interpreter test case, though.

This looks like the likely culprit of test failures on the iOS simulator CI for swift-2.2-branch:
https://ci.swift.org/view/swift-2.2-branch/job/oss-swift-2.2_tools-RA_stdlib-RDA_test-simulator/5262/
********************
Testing: 0 .. 10
FAIL: Swift :: Interpreter/generic_objc_subclass.swift (1114 of 7908)
******************** TEST 'Swift :: Interpreter/generic_objc_subclass.swift' FAILED ********************
<SNIP>
Command Output (stderr):
--
SIL verification failed: downcast must convert to a subclass: SILType::getPrimitiveObjectType(fromCanTy). isSuperclassOf(SILType::getPrimitiveObjectType(toCanTy))
Verifying instruction:
     %319 = load %10 : $*A<Int>                   // users: %320, %3445, %3514, %3583, %3652, %3653
->   checked_cast_br [exact] %319 : $A<Int> to $B, bb227, bb237 // id: %3445
In function:

This change was reverted from swift-2.2-branch, checking to see if that fixes the iOS simulator tests.

Trying again with #1954.

source: gharchive/pull-request

authors: jckarter swiftix tkremenek

repo: apple/swift

license_type: permissive

license_source: github-api


text:
[Build System: CMake] Always copy the apinotes into the build directory when the apinotes directory is included via SWIFT_INCLUDE_APINOTES.

Follow-up to #24419, we should add the copy_apinotes target to the default build target.

@swift-ci please test


text:
[5.1]  [ClangImporter] Fix macOS app extension deprecated-as-unavailable check

Cherry-pick of #25399. Reviewed by @devincoughlin.
rdar://51417764

@swift-ci Please test

Build failed
Swift Test OS X Platform
Git Sha - 4ed1175a9ff635d51f18ee457fcb471e4ca7ba4c

@swift-ci Please test macOS

authors: jrose-apple swift-ci


text:
Driver: honour -use-ld on Windows static links

The librarian on Windows is a part of the linker.  Enabling -use-ld=
for driver for static linking on Windows enables the user to override
the linker.  This is particularly important for cross-linking Windows
from Linux where link.exe is not present as it is a part of the MSVC
toolset.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please test

@swift-ci please test Windows platform

Build failed
Swift Test OS X Platform
Git Sha - 75dbde3f7299d2294d856f05acfe9545e3387680

Build failed
Swift Test Linux Platform
Git Sha - 75dbde3f7299d2294d856f05acfe9545e3387680

@swift-ci please test

@swift-ci please test

authors: compnerd swift-ci


text:
[AutoDiff] Rename AdjointEmitter and corresponding uses of adjoint to PullbackEmitter.

As a first step for clarity, we are renaming the AdjointEmitter class to PullbackEmitter. As the function that differentiation uses is the pullback, not the adjoint. However, we still have AdjointValues.

@swift-ci please test tensorflow

Oh didn’t know about the sil tests will update those this morning!

@swift-ci please test tensorflow

@swift-ci please test tensorflow


text:
Disable ArrayNew.swift.gyb in armv7k or armv7s

rdar://problem/55944126

@swift-ci Please test

Build failed
Swift Test OS X Platform
Git Sha - 836b929bd08abd4a040bd6cb4b237bddc10c4817

@swift-ci Please test macOS

authors: rintaro swift-ci


text:
Specialize a test for Windows

An unfortunate workaround for rdar://59397376
Resolves rdar://59318361
Supersedes the not-env work in #29198

@swift-ci smoke test

@swift-ci test windows platform

@swift-ci test windows platform

@swift-ci smoke test macOS platform

⛵


text:
ClangImporter: pass _WASI_EMULATED_MMAN when triple is WASI

Defining _WASI_EMULATED_MMAN is required when compiling with WASI libc.

Related to SR-9307.
(cc @compnerd)

Is there no intention of ever supporting mmap on WASI?  If so, this is fine, otherwise, I think that we should just say that users are required to pass -Xcc -D_WASI_EMULATED_MMAN as embedding this into the driver makes that migration more difficult.

It doesn't look like they're going to support it in this form without emulation:

And, some features of mmap can lead to userspace triggering signals. Accessing memory beyond the end of the file, including in the case where someone else changes the size of the file, leads to a SIGBUS on POSIX-style systems. Protection modes other than PROT_READ|PROT_WRITE can produce SIGSEGV. While some VMs are prepared to catch such signals transparently, this is a burdensome requirement for others.
Another issue is that while WASI is a synchronous I/O API today, this design may change in the future. mmap can create situations where doing a load can entail blocking I/O, which can make it harder to characterize all the places where blocking I/O may occur.
And lastly, WebAssembly linear memory doesn't support the semantics of mapping and unmapping pages. Most WebAssembly VMs would not easily be able to support freeing the memory of a page in the middle of a linear memory region, for example.
To make things easier for people porting programs that just use mmap to read and write files in a simple way, WASI libc includes a minimal userspace emulation of mmap and munmap.

I would assume that if it's ever supported, WASI would provide a different API for it. I think it would still make sense to use the current emulation API by default.

Defaults here are problematic because WASI is still in flux.  I really would prefer that we document the differences and make users aware of them and intentionally be explicit about the fact that there are differences from standard expectations.

@compnerd since the original commit we've done plenty of changes on the WASI/Wasm side of things, for example we're requiring users to rely on import WASILibc instead of import Glibc to be explicit about the differences in libc behavior. Do you think that's explicit enough?
From that perspective the exact way mmap is implemented is an implementation detail. We could still require users to pass -Xcc -D_WASI_EMULATED_MMAN every time they build for WebAssembly. But given how WASI libc is designed, it looks like we'll have to require users targeting WASI to do it for indefinite time in the future. The vast majority of Swift users won't be concerned about this low-level implementation detail, and for those who care import WASILibc should be explicit know. WDYT?

@swift-ci please smoke test

Is mman emulation the default and standard behaviour? Can the wasm VM not support it?

It isn't a Wasm feature, but a feature of WASI libc, so in that sense the answer is "yes". It's default and "standard" as long as we rely on WASI libc, I'm not aware of other libc implementations for Wasm. If we require our users to pass -fwasm-features +emulated-mman, they'll have to do it every time they target Wasm and WASI.
I don't think there's a way to build Swift stdlib with WASI, but without _WASI_EMULATED_MMAN.

I think that my concern is that the libc itself doesn't define it.  Another option to consider, if we can get it to work - add a header that is implicitly pulled in by the WASILibc that defines the macro.  That should hopefully prevent he WASILibc module from being built, and it would also define the proper macros as necessary.

authors: MaxDesiatov compnerd


text:
[ownership] Move type dependent operand check out of the main visitor to eliminate another returning of an empty map from the visitor.

I may turn this into an assert, but for now I am preserving the current behavior
albeit moving the bad behavior out of the visitor to the front of the API.

@swift-ci smoke test

Fixed a thinko. Should have asserted(not type dependent operand)... :doh:

@swift-ci smoke test


text:
Improve diagnostics for comparisons to nil.

What's in this pull request?

Noticed by inspection, the diagnostics for comparing against literal nil were not treating the operands symmetrically, so we were only emitting a diagnostic if the nil was on the right hand side.

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

As implemented the diagnostic specific to nil was only firing when nil
was on the right hand side.

@swift-ci Please test.

@CodaFi Robert, it looks like you touched this last - mind reviewing?

@swift-ci Please smoke test.

LGTM.  Thank you for cleaning up that icky stretch of code.

@swift-ci Please smoke test.

authors: CodaFi rudkx


text:
[stdlib] Fix conversion from Float16 to unsigned integer types

Fixes a think-o, unblocking #36205, which will serve as the test for this change.

Resolves SR-14293.

@swift-ci smoke test

@swift-ci smoke test macOS platform

@swift-ci smoke test Windows platform

Thanks @xwu!

authors: stephentyrone xwu


text:
Create ReadAccessor benchmark

Create a benchmark to test the
performance of synthesized read
accessors generated to interop
with C++ [] operators.

@swift-ci Please smoke benchmark

@swift-ci please benchmark

I will look into it, but with the previous large non trivial struct, the benchmark did show performance improvements, but with this vector approach I'm not seeing anything.

@swift-ci please benchmark

I will look into it, but with the previous large non trivial struct, the benchmark did show performance improvements, but with this vector approach I'm not seeing anything.

Hmm that's really odd. Let's see what the CI says, but vector is really what we want to optimize. I guess we can look into the IR and see what's going on. If there isn't an improvement, I guess we can add both benchmarks 🤷♂

Anyway, we can land this PR I think and test it with the other patch. Then we can go from there.

@swift-ci please smoke test.

I am looking at the IR, the read accessor is generated properly, but for some reason the caller decides to copy from the address anyways.
Read Accessor:
// std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE.subscript.read
sil shared [transparent] @$sSo3stdO3__1O65__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEEVySo0hI0VSicir : $@yield_once @convention(method) (Int, @in_guaranteed std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE) -> @yields @in_guaranteed NonTrivial {
// %0 "__n"                                       // users: %5, %2
// %1 "self"                                      // users: %5, %3
bb0(%0 : $Int, %1 : $*std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE):
  debug_value %0 : $Int, let, name "__n", argno 1 // id: %2
  debug_value %1 : $*std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE, let, name "self", argno 2, implicit, expr op_deref // id: %3
  // function_ref _ZNKSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEixEm
  %4 = function_ref @_ZNKSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEixEm : $@convention(cxx_method) (Int, @in_guaranteed std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE) -> UnsafePointer<NonTrivial> // user: %5
  %5 = apply %4(%0, %1) : $@convention(cxx_method) (Int, @in_guaranteed std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE) -> UnsafePointer<NonTrivial> // user: %6
  %6 = struct_extract %5 : $UnsafePointer<NonTrivial>, #UnsafePointer._rawValue // user: %7
  %7 = pointer_to_address %6 : $Builtin.RawPointer to [strict] $*NonTrivial // user: %8
  %8 = begin_access [read] [unsafe] %7 : $*NonTrivial // users: %10, %13, %9
  yield %8 : $*NonTrivial, resume bb1, unwind bb2 // id: %9

Usage:
  // function_ref _ZNKSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEixEm
  %38 = function_ref @_ZNKSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEixEm : $@convention(cxx_method) (Int, @in_guaranteed std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE) -> UnsafePointer<NonTrivial> // user: %39
  %39 = apply %38(%35, %36) : $@convention(cxx_method) (Int, @in_guaranteed std.__1.__CxxTemplateInstNSt3__16vectorI10NonTrivialNS_9allocatorIS1_EEEE) -> UnsafePointer<NonTrivial> // user: %40
  %40 = struct_extract %39 : $UnsafePointer<NonTrivial>, #UnsafePointer._rawValue // user: %41
  %41 = pointer_to_address %40 : $Builtin.RawPointer to [strict] $*NonTrivial // user: %42
  %42 = begin_access [read] [unsafe] %41 : $*NonTrivial // users: %44, %45
  %43 = alloc_stack $NonTrivial                   // users: %59, %50, %48, %44
  copy_addr %42 to [initialization] %43 : $*NonTrivial // id: %44
  end_access %42 : $*NonTrivial                   // id: %45

No idea why yet, but I'll keep looking. Maybe something specific to std::vector?

From the CI:
Performance (x86_64): -O

Regression
OLD
NEW
DELTA
RATIO

Dictionary4
152
193
+27.0%
0.79x (?)

Dictionary4OfObjects
206
239
+16.0%
0.86x (?)

Calculator
109
122
+11.9%
0.89x (?)

Improvement
OLD
NEW
DELTA
RATIO

FlattenListFlatMap
3513
3201
-8.9%
1.10x (?)

Added
MIN
MAX
MEAN
MAX_RSS

ReadAccessor
117031
117396
117204
—

Code size: -O
Performance (x86_64): -Osize

Regression
OLD
NEW
DELTA
RATIO

Array2D
4288
4704
+9.7%
0.91x (?)

Improvement
OLD
NEW
DELTA
RATIO

DropWhileSequence
15
14
-6.7%
1.07x (?)

SetUnionInt25
76
71
-6.6%
1.07x (?)

Added
MIN
MAX
MEAN
MAX_RSS

ReadAccessor
122013
125432
123553
—

Code size: -Osize
Performance (x86_64): -Onone

Improvement
OLD
NEW
DELTA
RATIO

ParseFloat.Float.Exp
11
10
-9.1%
1.10x (?)

DataReplaceSmallBuffer
3000
2800
-6.7%
1.07x (?)

Added
MIN
MAX
MEAN
MAX_RSS

ReadAccessor
445319
452412
448067
—

Code size: -swiftlibs

✅
Benchmark Check Report

⛔⏱
ReadAccessor has setup overhead of 59346 μs (51.0%).  Move initialization of benchmark data to the setUpFunction registered in BenchmarkInfo.

⛔⏱
ReadAccessor execution took at least 57045 μs (excluding the setup overhead).  Decrease the workload of ReadAccessor by a factor of 64 (100), to be less than 1000 μs.

⚠Ⓜ
ReadAccessor has very wide range of memory used between independent, repeated measurements.  ReadAccessor mem_pages [i1, i2]: min=[6, 6] 𝚫=0 R=[19, 9]

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini8,1
  Processor Name: 6-Core Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 32 GB

@NuriAmari maybe try addressing those warning at the bottom as well. Not sure exactly why the copy is there. Is that with optimizations enabled?

@NuriAmari maybe try addressing those warning at the bottom as well. Not sure exactly why the copy is there. Is that with optimizations enabled?

Not sure what to do about the last one, but the first two I think I can fix.

Not sure what to do about the last one, but the first two I think I can fix.

Yeah me neither. I think it's fine to leave it. I suspect making the vector a bit smaller would help, but other than that, idk. Maybe 1000 elements instead?

@swift-ci please benchmark

@swift-ci please smoke test.

@swift-ci please benchmark

Performance (x86_64): -O

Regression
OLD
NEW
DELTA
RATIO

FlattenListLoop
1004
1580
+57.4%
0.64x (?)

Dictionary4
153
192
+25.5%
0.80x

FlattenListFlatMap
3612
4332
+19.9%
0.83x (?)

Dictionary4OfObjects
207
239
+15.5%
0.87x (?)

Calculator
109
122
+11.9%
0.89x (?)

DropWhileAnySequence
1251
1354
+8.2%
0.92x (?)

Improvement
OLD
NEW
DELTA
RATIO

IterateData
872
807
-7.5%
1.08x (?)

Set.subtracting.Seq.Empty.Int
122
114
-6.6%
1.07x (?)

Added
MIN
MAX
MEAN
MAX_RSS

ReadAccessor
11527
11772
11612
—

Code size: -O
Performance (x86_64): -Osize

Regression
OLD
NEW
DELTA
RATIO

Array2D
4304
4688
+8.9%
0.92x (?)

PrefixWhileAnySequence
186
201
+8.1%
0.93x (?)

Improvement
OLD
NEW
DELTA
RATIO

FlattenListLoop
1416
1028
-27.4%
1.38x (?)

FlattenListFlatMap
3119
2717
-12.9%
1.15x (?)

StringBuilderWithLongSubstring
1070
990
-7.5%
1.08x (?)

Added
MIN
MAX
MEAN
MAX_RSS

ReadAccessor
11743
12184
11890
—

Code size: -Osize
Performance (x86_64): -Onone

Added
MIN
MAX
MEAN
MAX_RSS

ReadAccessor
50167
50491
50298
—

Code size: -swiftlibs

✅
Benchmark Check Report

⛔⏱
ReadAccessor has setup overhead of 5850 μs (51.1%).  Move initialization of benchmark data to the setUpFunction registered in BenchmarkInfo.

⚠⏱
ReadAccessor execution took at least 5588 μs (excluding the setup overhead).  Decrease the workload of ReadAccessor by a factor of 8 (10), to be less than 1000 μs.

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini8,1
  Processor Name: 6-Core Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 32 GB

FlattenListLoop | 1004 | 1580 | +57.4% | 0.64x (?)

Just shows how flakey benchmarks are, lol.

Move initialization of benchmark data to the setUpFunction registered in BenchmarkInfo.

IDK what this is about...
Anyway this looks good to merge.

@swift-ci please smoke test.

@swift-ci Please smoke test Linux platform

From the Linux failure:
x86_64-unknown-linux-gnu/home/build-user/swift/benchmark/cxx-source/ReadAccessor.swift:37:22: error: cannot convert value of type 'Int' to expected argument type 'std.size_t' (aka 'UInt')      let row = vec![j];

Will try converting the index to a UInt on Linux.

@swift-ci please smoke test

@swift-ci please benchmark

@swift-ci please smoke test

@swift-ci please benchmark

Build bots have seen better days, but I'll keep trying throughout the day.

@swift-ci please benchmark

@swift-ci Please smoke test Linux platform

authors: NuriAmari zoecarver


text:
[SR-2451] Clarify function_type_argument_label error msg

This pull request seeks to add clarity to the error message that is displayed when a function type contains argument labels.

Resolves SR-2451.

LGTM, thanks @nathanhosselton !

@swift-ci Please smoke test

@nathanhosselton Looks like some tests need to be updated to expect the new diagnostic:
https://ci.swift.org/job/swift-PR-osx-smoke-test/1454/consoleFull#-1455303460ee1a197b-acac-4b17-83cf-a53b95139a76

@jckarter Apologies. I made the poor assumption that nothing would depend on the original string and skipped the tests. Lesson learned: never skip the tests.
Will fix it up.

Tests are now passing for me. Should be good to go.

Thanks @nathanhosselton! Let me try again.

@swift-ci Please smoke test

@shahmishal Linux CI seems to be down, or at least, not reporting status. Do you mind merging this?

@swift-ci Please smoke test linux

Looks good now. Thanks @nathanhosselton!

Thanks, @jckarter! Want me to close SR-2451?

Sure, go ahead.

authors: gottesmm jckarter nathanhosselton


text:
[cxx-interop][SwiftCompilerSources] Workaround for std::string crash on arm64 Linux

std::string constructor crashes when called from SILBridging.cpp, likely due to a miscompile. This is a workaround that fixes the crash.

@swift-ci please smoke test


text:
[build-tooling-libs] Add option to specify the swiftc compiler to build compiler sources

This is needed to build the most recent state of main if it uses C++ interop features that aren't in the host's toolchain yet.

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test macOS


text:
Fix typo in InstOptUtils.cpp

addres -> address

@swift-ci smoke test

@swift-ci please smoke test and merge

authors: CodaFi WowbaggersLiquidLunch eltociear


text:
Update CODEOWNERS for static linking code

Added myself to track changes related to static linking on Linux.

@swift-ci smoke test

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci test windows


text:
[Diagnostics] Display correct debug note for compound references typo suggestions

This PR tries to address the issue where functions with multiple arguments would just be diagnosed incorrectly ignoring their attributes.

Resolves SR-3254.

@swift-ci Please smoke test

@swift-ci please smoke test

@modocache updated with code-style comments. Thanks for the eyes on this!

@CodaFi Fixed your comments. Thanks!

@OscarSwanros What's the status of this pull request?  If you're still interested in this bug fix, could you rebase this pull request and give me a ping?

This patch has fallen behind after a month.  @OscarSwanros feel free to reopen this when you find the time.

Oh, sorry @CodaFi — have been swamped and missed your notification. Will try to find the time soon.

authors: CodaFi OscarSwanros modocache


text:
NFC: Fix a couple of warnings

Fixes the following warnings:
.../swift-project/swift/lib/Sema/CSSimplify.cpp:2943:13: warning: function 'isPreconcurrency' is not needed and will not be emitted [-Wunneeded-internal-declaration]
static bool isPreconcurrency(ConstraintSystem &cs, DeclContext *dc) {
            ^

.../swift-project/swift/lib/AST/Decl.cpp:6758:3: warning: ignoring return value of function declared with 'nodiscard' attribute [-Wunused-result]
  std::remove(getAccessorsBuffer().begin(), getAccessorsBuffer().end(),
  ^~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@swift-ci please smoke test


text:
[AST] Change some builtins to conform their result to Escapable

Some of these builtins were not constraining their result type to conform to Escapable. This caused some inference failures when building the standard library.
Specifically I changed:

Builtin.load
Builtin.take
Builtin.copy
Builtin.allocWithTailElems_N
Builtin.COWBufferForReading
Builtin.castReference
Builtin.reinterpretCast
Builtin.convertUnownedUnsafeToGuaranteed

@swift-ci please smoke test

Merging because I want to start filing downstream bugs. Apologies for not waiting for a full CI test.

authors: Azoy atrick


text:
Fix type lowering of ~Copyable and ~Escapable generics.

Factor AbstractionPattern::conformsToKnownProtocol and lower ~Escapable using the same logic as ~Copyable.
Adds support for conditionally Escapable enums.
Correctly sets the SILType::isTrivial flags for conditionally escapable structs and enums in environments (extensions) that provide an Escapable conformance, such as:
struct NE<E: ~Escapable> : ~Escapable {}

extension NE: Escapable {
  func foo() -> Self {
    // Self is both Escapable and trivial here.
    self
  }
}

Fixes rdar://125950218 ([nonescapable] support conditionally escapable enums)

struct NE<E: ~Escapable> : ~Escapable {}

extension NE: Escapable {
  func foo() -> Self {
    // Self is both Escapable and trivial here.
    self
  }
}

I don't see a test case that covers this specific situation from your PR description -- how can we observe the triviality of self here?

Joe already wrote tests to check triviality. I reused those by adding ~Escapable

struct MyStruct<T: ~Copyable & ~Escapable>: ~Copyable & ~Escapable
enum MyEnum<T: ~Copyable & ~Escapable>: ~Copyable & ~Escapable

// CHECK-LABEL: sil{{.*}} @{{.*}}13trivialStruct
func trivialStruct() -> Int {
    // CHECK: [[ALLOC:%.*]] = alloc_stack $MyStruct<Trivial>
    // CHECK-NOT: destroy_addr [[ALLOC]] :
    // CHECK: dealloc_stack [[ALLOC]] :
     return MemoryLayout.size(ofValue: MyStruct(x: Trivial.a))
}
// CHECK-LABEL: sil{{.*}} @{{.*}}11trivialEnum
func trivialEnum() -> Int {
    // CHECK: [[ALLOC:%.*]] = alloc_stack $MyEnum<Trivial>
    // CHECK-NOT: destroy_addr [[ALLOC]] :
    // CHECK: dealloc_stack [[ALLOC]] :
     return MemoryLayout.size(ofValue: MyEnum.x(Trivial.a))
}

struct MyAssortment {
    var a: MyStruct<Trivial>
    var b: MyEnum<Trivial>
}

// CHECK-LABEL: sil{{.*}} @{{.*}}4frob
func frob(x: MyAssortment) -> Int {
    // CHECK: [[ALLOC:%.*]] = alloc_stack $MyAssortment
    // CHECK-NOT: destroy_addr [[ALLOC]] :
    // CHECK: dealloc_stack [[ALLOC]] :
    return MemoryLayout.size(ofValue: x)
}

This raises a good point that I was planning to bring up. We have a fair amount of complexity in AbstractionPattern to recognize inverse protocols. But any of that logic could be wrong and we'll never find out about it, at least for ~Escapabe, because the only effect is to set SILType::isTrivial in more cases. If we fail to set isTrivial, codegen is likely still correct and we'll never notice. None of the diagnostics exercise this logic, so it could be inconsistent.

@nate-chandler I can't remove the remaining uses of canBeEscapable yet because TypeConverter::visitAggregateLeaves recursively evaluates interface types. This may be as simple as mapping them into a context, but I don't understand this well enough to do it. So, for example:
struct Boxx<each T : _BitwiseCopyable> {
  var ts: (repeat each T)
}

Here, TypeConverter::verifyTrivialLowering is asked to evaluate the type of the ts member, which is a pack type with interface types:
(pack_expansion_type
  (pattern=pack_archetype_type address=0x150962278 conforms_to="Swift.(file)._BitwiseCopyable" name="each T"
    (interface_type=generic_type_param_type depth=0 index=0 decl="testbitwisecopyable.(file).Boxx.T@./testbitwisecopyable.swift:15:18" pack))
  (count=pack_archetype_type address=0x150962278 conforms_to="Swift.(file)._BitwiseCopyable" name="each T"
    (interface_type=generic_type_param_type depth=0 index=0 decl="testbitwisecopyable.(file).Boxx.T@./testbitwisecopyable.swift:15:18" pack)))

That's not going to work with any type system queries, including AbstractionPattern::isNoncopyable or, in this PR, AbstractionPattern::conformsToKnownProtocol.

@atrick Okay, I will address this in a follow-up.

@jckarter I included a fix for AbstractionPattern::isNoncopyable in this PR.
@nate-chandler I included several unit tests involving BitwiseCopyable which, ultimately, should result in trivial lowering. But it's not high enough priority to debug right now, so I left TODOs, which we may want to track in a bug report.

@swift-ci test

@atrick As a reminder, having conformance to BitwiseCopyable imply SIL trivial when appropriate (not always) is already tracked by rdar://123661042 and is not a correctness issue.

This is currently blocked on a segfault in stdlib/ArrayTraps.swift.gyb on iphonesimulator-x86_64 which I haven't been able to reproduce locally

This passes for me locally with the same build-script invocation as CI:
lit ./validation-test-iphonesimulator-x86_64 --filter stdlib/ArrayTraps.swift.gyb -a

@swift-ci test

@swift-ci smoke test windows

authors: atrick nate-chandler


text:
[Test] Fix signature mismatch in issue-58123-invalid-debug-info.swift

rdar://128431000
Made the matcher more robust for potential future added modifiers.

@swift-ci smoke test


text:
Ownership verifier refactoring

This PR refactors the ownership checker so that its underlying functionality can be used in simple passes.
rdar://29870610

@swift-ci smoke test and merge

I double checked that the last commit does not cause errors in a non-assert build.


text:
Individual stylesheets must be in the sass directory.

Hello all,
I just updated Gulp and I have to face a problem I didn't have 'til now.

Individual stylesheets must be in the sass directory.
events.js:72
throw er; // Unhandled 'error' event
^
Error: Compass failed

Here is my gulpfile.js

var gulp = require('gulp'),
	compass = require('gulp-compass'),
	livereload = require('gulp-livereload');

gulp.task('compass', function()
{
	return gulp.src('src/assets/sass/**/*')
		.pipe(compass())
		.pipe(gulp.dest('src/assets/css/dev'));
});

gulp.task('watch', function()
{
	var server = livereload();

	gulp.watch('src/assets/sass/**/*', ['compass']).on('change', function(e){
		console.log(e.path);
	});

	gulp.watch(['src/assets/css/**/*.css']).on('change', function(e){
		server.change(e.path);
	});
});

gulp.task('default', ['compass'], function(){

});

The folders didn't change:
|-- gulpfile.js
|-- src
|   |-- assets
|   |   |-- bower
|   |   |-- css
|   |   |   |-- dev
|   |   |   |-- prod
|   |   |   |-- vendor
|   |   |-- js
|   |   |   |-- dev
|   |   |   |-- prod
|   |   |   |-- vendor
|   |   |-- img
|   |   |-- fonts
|   |   |-- sass

Any idea?

I have the same issue with current compass installation, but if I install an older one (1.0.0.alpha.16) everything work fine.
Any idea why?

Here is my log:
18:54:07] gulp-compass: Running command: /usr/local/bin/compass compile . /Users/adrian/Desktop/Vivre/Setup-Centos-PuPHPet/vivre/scss/updates.scss --no-line-comments --debug-info --images-dir images --css-dir css --sass-dir scss --require susy --require modular-scale
[BS] Proxying: http://vivre.adrian.ro
[BS] Now you can access your site through the following addresses:
[BS] Local URL: http://localhost:3000
[BS] External URL: http://192.168.100.1:3000
[18:54:07] Individual stylesheets must be in the sass directory.

I solved this way passing the whole rute to de gulpfile.js. It seams that de gulpfile.js is mandatory over config.rg
gulp.task('compass', function() {
gulp.src('./app/*.scss')
.pipe(compass({
config_file: 'config.rb',
css: '/Users/jaume/workspace/sass/app',
sass: '/Users/jaume/workspace/sass/app'
}))
.pipe(gulp.dest('./app/'));
});

source: gharchive/issue

authors: adyz jaumesalatantinya spyesx

repo: appleboy/gulp-compass

license: mit

license_source: bigquery


text:
Dynamic App Title

Hi,
First of all this is a wonderful layout!!!
It would be appreciated if it would be possible to set dynamically the App title based on viewed page.
Thanks in advance
Luigi

This should already be possible.
The LeftLayouts have a setTitleComponent so you only need to get access to the AppLayout. As much as I know you should be able to get it from the VaadinSession under the AppLayout-Token.

@gigiobix Can you give an example how the API is supposed to support this?

I think it would be a good Idea to use something like the Page title mechanism via HasTitle Interface.
I.e. if the component which use your layout as Router  inherit from some Interface exposing getTitle method then the layout could invoke this method to set the title evrerytime the page is rendered.
Another way could be the one exposed by @Springrbua, get a reference to the Applayout and use the setTitleComponent method
Another good Idea would be the ability to change the title during user interaction
I hope this could help your work.
Thanks

It would probably be a combination of both methods.
As I've said, the AppLayout already has a setTitleComponent, so changing the title should be pretty easy.
But the AppLayoutRouterLayout could implement an Interface (AppLayoutContent?), which has default methods to set the title etc.:
default void setAppLayoutTitleComponent(Component title) {
    UI.getCurrent().getSession().getAttribute(AppLayout.class).setTitleComponent(title);
}

Thanks to post of @Springrbua I've implemented a workaround to have dynamic title.
In the class extending AppLayoutRouterLayout, which I use as layout of all my routes, first to invoke the init method a set the Applayout generated in the session:
AppLayout layout = AppLayoutBuilder.get(Behaviour.LEFT_OVERLAY)
                                   .withTitle("GenericName")
                                   .build();

UI.getCurrent().getSession().setAttribute(AppLayout.class, layout);

init(layout);

Then in every class that use this layout after constructor, the I arrange the view I get the class from the Session and set the title
Optional.ofNullable(UI.getCurrent()
                      .getSession()
                      .getAttribute(AppLayout.class)).ifPresent(l -> {
			logger.info("Aggiorno il titolo a 'Gestione Processo'");
			 Span span = new Span("New Title");
		        span.setWidth("100%");
		        span.getStyle()
		                .set("white-space", "nowrap")
		                .set("overflow", "hidden")
		                .set("text-overflow", "ellipsis");
		        l.setTitleComponent(span);
		});

I hope this can help.

@gigiobix I have just seen, that the AppLayoutRouterLayoutBase (base-class for AppLayoutRouterLayout) has a static method getCurrent, which gives you the current AppLayout instance from the session.
So you could simply use getCurrent() if you are in a subclass of AppLayoutRouterLayout, or AppLayoutRouterLayout.getCurrent() from anywhere else.

@Springrbua , I've tried your suggestion, and it works fine.
I think it would be cool if AppLayoutRouterLayoutBase could expose the metod void setTitle (String title) for semplicity
Thanks a lot

@Springrbua Sorry I'm still a huge noob. Can you provide a sample code for this?
When I'm calling AppLayoutRouterLayout.getCurrent() at the end of my ViewConstructer, which uses the AppLayout from here as a parent i get a nullpointer.

@cedricaebi, I've tried thr method suggested by @Springrbua , but the method always return null value.
To solve the problem, I use this tecnique:
At the end of layout creation, I store the result of build method in session:
AppLayout layout =
		(AppLayoutBuilder.get(Behaviour.LEFT)
		 .withTitle("My Title")
		 .withAppMenu(menuBuilder.build())
		 .build());
UI.getCurrent().getSession().setAttribute(AppLayout.class, layout);

Then I created an Helper class with this static method, called to set view title:
	public static void setTitle(String title) {
		Span span = new Span(title);
		span.setWidth("100%");
		span.getStyle()
			.set("white-space", "nowrap")
			.set("overflow", "hidden")
			.set("text-overflow", "ellipsis");
		Optional.ofNullable(UI.getCurrent().getSession().getAttribute(AppLayout.class)).ifPresent(l -> l.setTitleComponent(span));
	}
}

I hope this could help you.

@gigiobix thanks! It worked. I called Helper.setTitle() in the public void beforeEnter() of the view.
Again thanks :)

@cedricaebi @gigiobix does this work if you have multiple tabs?
As much as I know, multiple tabs share the same Session and therefore the same attributes. But the AppLayout instance should not be the same as they have different DOMs.

@Springrbua our app is for internal usage, only one tab per time is opened, so I don't care about multi tab. I've tried to use the solution you suggested to me but it didn't function. If you can suggest a new solution I will try it.
Thanks

@gigiobix @cedricaebi
I just tested the solution I provided and it works as expected.
Here the code:
public class MainView extends AppLayoutRouterLayout {
    public MainView() {
        init(AppLayoutBuilder.get(Behaviour.LEFT_RESPONSIVE)
            .withTitle("Test")
            .withAppBar(AppBarBuilder.get().add(new Button(new Icon(VaadinIcon.USER))).build())
            .withAppMenu(LeftAppMenuBuilder.get()
                .add(new LeftClickableItem("Test", VaadinIcon.ABACUS.create(), click -> {
                    getCurrent().setTitleComponent(new Span("Clicked"));
                }))
                .build()
            ).build()
        );
    }
    @Route(value = "", layout=MainView.class)
    public static class InnerView extends Div {
        protected void onAttach(AttachEvent attachEvent) {
            setText("Content");
        }
    }
}

The important line is inside the LeftCLickableItems ClickListener:
getCurrent().setTitleComponent(new Span("Clicked"));
Outside the AppLayoutRouterLayout you hsould be able to do the same by calling AppLayoutRouterLayout.getCurrent().setTitleComponent(...).
I also tested it with multiple tabs and noticed that it works only for the last tab.
The reason is probably the following:
Each browser tab shares the same VaadinSession and therefore the same Attributes.
The last tab you opened writes it's AppLayout into the attribute and is therefore the only tab that can modify it.
Since all other tabs don't have this AppLayout instance attached, they are not allowed to change it.
So I guess we should really look for another solution and remove the AppLayoutRouterLayout.getCurrent.
The only solution I can think about right now is to go through all children of the UI, until we find the AppLayoutRouterLayout and return it.
@appreciated what do you think about this?

@Springrbua I'm not enough expert on Vaadin, but your thought on UI seems to be the right one, Perhaps it would be possible to assign an unique ID to the Title Container and refer to that instead of navigating the DOM.
I how this could help you

@appreciated what do you think about this?

This is a bug, and a misthinking of mine. Currently working on a fix for this.

@Springrbua , I've tried your suggestion, and it works fine.
I think it would be cool if AppLayoutRouterLayoutBase could expose the metod void setTitle (String title) for semplicity
Thanks a lot

To avoid a bloating of the  AppLayoutRouterLayoutBase with methods that do not belong in there, I disagree in adding a setTitle. Actually even getCurrent does not belong here. I have to think about this how to refactor this properly. Also since this is a breaking change this will be not be added in 2.* but in 3.0.0

Actually even getCurrent does not belong here. I have to think about this how to refactor this properly. Also since this is a breaking change this will be not be added in 2.* but in 3.0.0
Opened #264.

Each browser tab shares the same VaadinSession and therefore the same Attributes.
The last tab you opened writes it's AppLayout into the attribute and is therefore the only tab that can modify it.
Since all other tabs don't have this AppLayout instance attached, they are not allowed to change it.
Closed by ffd3372205c3df4e3f7c5aa74c48b1f82911da4a.

authors: Springrbua appreciated cedricaebi gigiobix

repo: appreciated/vaadin-app-layout


text:
[Feature]: Schema for unstructured databases like Google Sheets

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
Need to have a schema implementation for unstructured databases. It can allow users to define the datatype of columns.
This can solve data inconsistent problem by narrowing the options for users to add data of different datatype on a same column.
Implementation:
(1) Provide a User Interface popup in the query page to preview / define / override the column datatype.
(2) Validate button can preview existing data and auto suggest column datatype.
(2.1) Validate function also alerts data inconsistencies that would have been added manually.
(3) Should prevent users from adding inconsistent data.
Why should this be worked on?
Data stores like google sheets cannot define datatype for a column, at the same time they accept any datatype data for a column. so working with different datatype on the same column gives error while fetching condition based queries.
 Front conversations

Related #7794

I have a list of invoice "numbers" in GSheet. When using it as source for a table, and the first row is truly numeric, any non-numeric values get stripped at API-level.
I can see in my Fetch SheetRows RAW result that AS strips string values for invoice as it could not coerce to Number.
An invoice number is actually more an ID, and can be in any string-format e.g. ABC-123
Workaround:

create a dummy second (after headers) row with values of 1 or a
add a row offset of 1 to the Fetch API
-> luckily AS autodetects before offsetting so it uses the 1 and a to guess the column datatype, respectively Number and Plain Text

I've that problem too. Using the workaround for now!

Unfortunately the workaround of a dummy top row does not always work. I am using Connected Sheets in GSheets for a way to read BigQuery data (BQ -> Sheets -> A/S) and the extracted data cannot be changed, hence cannot insert a row.
Has this feature request got any traction ?

authors: leotom2000 nidhi-nair trialsin yan-hic

repo: appsmithorg/appsmith


text:
[Bug]: Keeping API request body in the right order

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When making a request to an API, appsmith re-arranges the order of the request body.
Here's the API body -
{
    "ConfirmedFields": [{
        "Id": 13,
        "Value": {
            "Item": {
            "$type": "DocumentIndexFieldTable",
            "Row": [{ }]
        },
        "ItemElementName": "Table"
        }
    }]
}

When I sent this through Appsmith, my API got it as -  { ConfirmedFields: [ { Value: [Object], Id: 13 } ] }
When I sent it through post man, my API got it as -  { ConfirmedFields: [ { Id: 13, Value: [Object] } ] }
It seems appsmith re-arranges the order of the fields in the request body.
Steps To Reproduce

Create an API request
Add a request body, you'll see the order of the object fields get re-arranged.

Public Sample App
No response
Environment
Production
Issue video log
No response
Version
Cloud & Self - Hosted > 1.9.7

Hi @narhzih can you please mention if there is any specific requirement for which the order of keys is important ?

This might be helpful here: https://stackoverflow.com/questions/9909066/how-to-maintain-the-order-of-a-jsonobject

@sumitsum it has more to do that you can expect exactly what you send. I use AWS Signature V4 and for this, you need to hash the body. I use the localstorage of Appsmith to have the values be exactly the same. When I calculate the signature to send with in my headers, I use this local storage. In my body, I use the local storage as well.
When calculating the signature, the payload needs to match exactly what the HTTP client sends out. This is because the payload is being hashed to SHA256. If the order of the keys is different, this will mean that the payload is different thus the hash will be different.
But, for this particular use case, there is already a merge request open to add AWS Signature V4 as an auth type to Appsmith.

@RickVerkuijlen thanks for sharing info.

Another BE user reported this issue.

What is the status of this issue?

This issue has been closed for several weeks now and also merged in the release branch. But none of the past releases indicate if this issue has been resolved. What is the status of this?

I've reopened the issue because this issue only fixed first order trees. i.e.
{"d" : 1, "c":2 , "b" : 3, "a" : 4 } was preserved and would appear as ->  {"d" : 1, "c":2 , "b" : 3, "a" : 4 }.
however second order trees i.e. {"b" : {"z" : 1, "x": 2 , "y" : 3}, "a" : 2}  gets ordered {"b" : {"x": 2 , "y" : 3, "z" : 1}, "a" : 2}
this pattern is also true for nth order trees where n > 1.
Working on a holistic fix

Can the initial fix, which only solves top level order, be deployed so that we can at least use AppSmith for these kind of requests?
Furthermore, I appreciate AppSmith putting in the effort, but what took almost four weeks for this issue to be reopened? We have been let to believe it was solved and would be released shortly, but almost 5 months after our initial comment, it is still an issue.

@Peterkrol12 the top level fix is already deployed

@sondermanish - Just checked, seems this is indeed the case. Customer support could not give me this answer and we could not find this issue mentioned in a changelog.
Thanks for the partial fix, we are looking forward to see the remaining work

@Peterkrol12 @RickVerkuijlen
I understand how frustrating it can be to face delays in resolving an issue, and I truly appreciate your patience during this time. As you have seen that the partial fix has been implemented to alleviate some of the immediate concerns. However, achieving a complete resolution is going to take a bit more time, particularly with the year-end holidays approaching.
These times can often slow down processes, but please rest assured that your issue remains a priority for us. We are committed to delivering a full resolution as soon as possible. In the meantime, if there's anything specific that I can assist you with or any additional support you need, please don't hesitate to let me know. Your understanding and patience are greatly valued, and we're here to support you every step of the way.

authors: Peterkrol12 RickVerkuijlen ame-appsmith narhzih riteshkew sondermanish sumitsum


text:
[Bug]: Renaming workflow from within a workflow throws error

Is there an existing issue for this?

[X] I have searched the existing issues

Description

Steps To Reproduce

Go inside workflow
Rename workflow from the General settings of Workflows or from the Workflow's page.
Observe it throws error

Public Sample App
No response
Environment
Release
Issue video log
No response
Version
Release

Hey team! Please add your planning poker estimate with Zenhub @ayushpahwa @nsarupr @Parthvi12


text:
[Bug] When any of the widgets is placed at the bottom of the canvas the property pane of that widget goes out the canvas/page

Description
Release - It is observed that when any of the widgets are placed at the bottom of the canvas that particular widgets property pane goes out of the page
Expected result:
The page should get expanded when the property pane of any of the widget which are placed at the bottom of the page is opened. The page should get expanded similarly when the widget is placed at the bottom of the canvas
Steps to reproduce the behaviour:
1.Launch Appmsith app in the release environment
2.Drag and drop few widgets to the canvas
3.Drag few more at the bottom so that page gets expanded
4.Click on the widget name of any of the widget which are at the bottom and observe
VideoLink:

Important Details

Version: [11.3]
OS: [MacOS]
Browser [chrome, safari]
Environment [Release]

Duplicate of #6040

authors: YogeshJayaseelan somangshu


text:
fix: remove branch protection when user downgraded from ee

Description
The list of protected branches should be reset when user downgrades from EE to CE
PR fixes following issue(s)
Fixes #28734
Media
Type of change

Bug fix (non-breaking change which fixes an issue)

Testing
How Has This Been Tested?

[x] Manual
[x] JUnit

Test Plan
Issues raised during DP testing
Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/ok-to-test

/ok-to-test sha=1de983deefed34f5024d852bc950c83c908722ef


text:
Fix/additional date formats

Description
Ensure date types in table widget, and date picker widget are consistent.
Changed date format dropdown to include example date and date format in each option.
Fixes #2304
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Jest tests are failing. Leading to a failed build.

Additional formats:

moment().format("LLL") "March 12, 2021 1:52 PM"
moment().format("LL") "March 12, 2021"
moment().format("D MMMM, YYYY") "12 March, 2021"
moment().format("H:mm A D MMMM, YYYY") "1:52 PM 12 March, 2021"
moment().format("MM-DD-YYYY") "03-12-2021"
moment().format("DD-MM-YYYY") "12-03-2021"
moment().format("MM/DD/YYYY") "03/12/2021"
moment().format("DD/MM/YYYY") "12/03/2021"
moment().format("DD/MM/YY") "12/03/21"
moment().format("MM/DD/YY") "12/03/21"

@vicky-primathon Let's rename the YYYY-MM-DDTHH:mm:ss.sssZ label to ISO8601 and right align all the labels.

authors: riodeuno vicky-primathon


text:
fix: bg color for selected option in multiselect widget

Fixes #15493
Added bg color styles to selected option(s)
Added cypress test.

Summary by CodeRabbit
Summary by CodeRabbit

New Features

Introduced automated tests for the MultiSelect widget to validate functionality and appearance.

Enhancements

Improved the styling of selected options in the MultiSelect widget for better visual feedback, including dynamic background colors and hover effects.

Tests

Added a comprehensive test suite for the MultiSelectWidget to ensure correct rendering and user interaction behavior.

@SaiCharanChetpelly31, We have seen there is change in src with business logic. This logic can be tested with Jest unit tests or React testing library. Cypress is redundant here.

@SaiCharanChetpelly31, We have seen there is change in src with business logic. This logic can be tested with Jest unit tests or React testing library. Cypress is redundant here.

@sagar-qa007 The bug involves adding a background color for a selected item. I wrote a Cypress test for it since it pertains to CSS. I didn't add any extra logic to the code; I simply added CSS for the selected option in the index.styles.tsx file.
Regarding the need for a new Jest test case for this bug fix, the Appsmith team hasn't written any Jest test cases yet. Is Cypress testing sufficient for this fix, or do I need to write Jest test cases as well?
Thanks in advance. Looking forward to your reply.

Hi @sagar-qa007 @ApekshaBhosale @ramsaptami Can you please take this pr forward for review?
Thank you.