Skip to content

[stdlib] Resolve unnecessary buffer copy in HashedCollections #6211

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 14, 2016

Conversation

dtorres
Copy link
Contributor

@dtorres dtorres commented Dec 11, 2016

This patch creates a new buffer instead of removing items if the buffer is not uniquely referenced
Applied fix suggested in FIXME and ran tests locally

@airspeedswift airspeedswift changed the title Resolve unnecessary buffer copy in HashedCollections [stdlib] Resolve unnecessary buffer copy in HashedCollections Dec 11, 2016
@airspeedswift
Copy link
Member

@swift-ci please test

@slavapestov
Copy link
Contributor

@airspeedswift Is this ready to merge?

@airspeedswift
Copy link
Member

@gankro can you have a quick review since you were the last one looking at hashed collections? LGTM.

@Gankra
Copy link
Contributor

Gankra commented Dec 13, 2016

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Build failed before running benchmark.


@Gankra
Copy link
Contributor

Gankra commented Dec 13, 2016

@swift-ci please bench

@Gankra
Copy link
Contributor

Gankra commented Dec 13, 2016

The change looks good to me, I just want to verify that there isn't any weird perf voodoo.

@Gankra
Copy link
Contributor

Gankra commented Dec 13, 2016

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Build failed before running benchmark.


@dtorres
Copy link
Contributor Author

dtorres commented Dec 13, 2016

Guess there is a problem with the CI.

@Gankra
Copy link
Contributor

Gankra commented Dec 14, 2016

@swift-ci please benchmark

@Gankra
Copy link
Contributor

Gankra commented Dec 14, 2016

(maintenance just finished)

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (0)
Improvement (0)
No Changes (147)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeStubNSDateMutationRef 12268 11797 -3.8% 1.04x(?)
Calculator 36 35 -2.8% 1.03x
StaticArray 2750 2685 -2.4% 1.02x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 117821 116911 -0.8% 1.01x(?)
ArrayAppendGenericStructs 1233 1223 -0.8% 1.01x(?)
ObjectiveCBridgeStubToNSDate 13554 13474 -0.6% 1.01x(?)
StringInterpolation 11090 11012 -0.7% 1.01x(?)
ObjectiveCBridgeStubURLAppendPathRef 241710 238804 -1.2% 1.01x(?)
SetIntersect 445 441 -0.9% 1.01x(?)
ObjectiveCBridgeToNSDictionary 62694 62203 -0.8% 1.01x(?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 100643 100122 -0.5% 1.01x(?)
146 3124501 3097088 -0.9% 1.01x
TwoSum 1332 1319 -1.0% 1.01x(?)
ArraySubscript 1453 1447 -0.4% 1.00x(?)
ObjectiveCBridgeToNSString 1075 1075 +0.0% 1.00x
DictionarySwapOfObjects 6258 6255 -0.1% 1.00x(?)
StackPromo 21652 21596 -0.3% 1.00x(?)
ObjectiveCBridgeFromNSDictionaryAnyObject 178076 177417 -0.4% 1.00x(?)
RecursiveOwnedParameter 1934 1934 +0.0% 1.00x
Integrate 238 238 +0.0% 1.00x
ClassArrayGetter 12 12 +0.0% 1.00x
Array2D 2038 2046 +0.4% 1.00x(?)
Histogram 307 307 +0.0% 1.00x
SortStrings 1831 1830 -0.1% 1.00x(?)
DictionaryBridge 3694 3707 +0.3% 1.00x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5399 5399 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDateRef 3862 3860 -0.1% 1.00x(?)
MonteCarloPi 45148 45133 -0.0% 1.00x(?)
StringWithCString 198688 198784 +0.1% 1.00x(?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6226 6257 +0.5% 1.00x(?)
ObjectiveCBridgeFromNSStringForced 2610 2608 -0.1% 1.00x(?)
Prims 731 729 -0.3% 1.00x(?)
SortLettersInPlace 975 972 -0.3% 1.00x(?)
DictionarySwap 412 412 +0.0% 1.00x
PopFrontArray 1254 1254 +0.0% 1.00x
ArrayOfGenericPOD 220 220 +0.0% 1.00x
Dictionary3OfObjects 871 871 +0.0% 1.00x
RangeAssignment 281 281 +0.0% 1.00x
StringHasPrefix 754 753 -0.1% 1.00x(?)
ByteSwap 0 0 +0.0% 1.00x
SuperChars 210829 210958 +0.1% 1.00x(?)
ArrayAppendLazyMap 847 846 -0.1% 1.00x(?)
XorLoop 380 380 +0.0% 1.00x
ArrayAppendReserved 536 536 +0.0% 1.00x
ObserverClosure 1982 1988 +0.3% 1.00x(?)
ObjectiveCBridgeStubToNSString 1280 1282 +0.2% 1.00x(?)
ArrayAppendStrings 12112 12110 -0.0% 1.00x(?)
ObjectiveCBridgeStubFromNSStringRef 140 140 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 757 756 -0.1% 1.00x(?)
ProtocolDispatch 3038 3040 +0.1% 1.00x(?)
ObjectAllocation 153 153 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
ObjectiveCBridgeFromNSSetAnyObject 85192 85334 +0.2% 1.00x(?)
ArrayLiteral 1176 1181 +0.4% 1.00x(?)
ProtocolDispatch2 159 159 +0.0% 1.00x
Walsh 321 322 +0.3% 1.00x(?)
Dictionary3 522 522 +0.0% 1.00x
Dictionary2 2000 2001 +0.1% 1.00x(?)
StrComplexWalk 2890 2902 +0.4% 1.00x(?)
SetIntersect_OfObjects 1498 1497 -0.1% 1.00x(?)
Join 464 464 +0.0% 1.00x
ArrayOfRef 3525 3534 +0.3% 1.00x(?)
ObserverUnappliedMethod 2411 2411 +0.0% 1.00x
ObjectiveCBridgeToNSSet 39736 39833 +0.2% 1.00x(?)
ObjectiveCBridgeToNSArray 30387 30490 +0.3% 1.00x(?)
NSError 326 327 +0.3% 1.00x(?)
DictionaryOfObjects 2282 2278 -0.2% 1.00x(?)
ObjectiveCBridgeStubToNSDateRef 3247 3250 +0.1% 1.00x(?)
PopFrontUnsafePointer 9178 9181 +0.0% 1.00x(?)
StringEqualPointerComparison 7299 7301 +0.0% 1.00x(?)
CaptureProp 4140 4145 +0.1% 1.00x(?)
PolymorphicCalls 22 22 +0.0% 1.00x
RC4 165 165 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 124 124 +0.0% 1.00x
MapReduce 342 342 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 273 273 +0.0% 1.00x
AngryPhonebook 2832 2837 +0.2% 1.00x(?)
IterateData 2518 2517 -0.0% 1.00x(?)
DictionaryLiteral 1267 1266 -0.1% 1.00x(?)
Hanoi 3456 3464 +0.2% 1.00x(?)
OpenClose 57 57 +0.0% 1.00x
DictionaryRemoveOfObjects 19366 19384 +0.1% 1.00x(?)
UTF8Decode 288 288 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 239024 239482 +0.2% 1.00x(?)
SortStringsUnicode 8298 8299 +0.0% 1.00x(?)
SetIsSubsetOf 250 250 +0.0% 1.00x
NopDeinit 37904 38049 +0.4% 1.00x(?)
ObjectiveCBridgeFromNSArrayAnyObject 75869 76071 +0.3% 1.00x(?)
ObjectiveCBridgeStubDataAppend 3361 3366 +0.1% 1.00x(?)
SetExclusiveOr 2903 2915 +0.4% 1.00x(?)
NSDictionaryCastToSwift 4992 4986 -0.1% 1.00x(?)
ObjectiveCBridgeStubNSDateRefAccess 308 308 +0.0% 1.00x
StrToInt 5305 5302 -0.1% 1.00x(?)
ArrayInClass 63 63 +0.0% 1.00x
ArrayOfGenericRef 3612 3619 +0.2% 1.00x(?)
StringHasSuffix 831 830 -0.1% 1.00x(?)
Phonebook 7579 7577 -0.0% 1.00x(?)
ObjectiveCBridgeStubDateAccess 182 182 +0.0% 1.00x
Sim2DArray 277 277 +0.0% 1.00x
SetExclusiveOr_OfObjects 7532 7535 +0.0% 1.00x(?)
ArrayAppendRepeatCol 643 643 +0.0% 1.00x
MonteCarloE 10591 10595 +0.0% 1.00x(?)
SetUnion_OfObjects 6308 6337 +0.5% 1.00x(?)
StringHasSuffixUnicode 63183 63189 +0.0% 1.00x(?)
HashTest 1751 1751 +0.0% 1.00x
SetIsSubsetOf_OfObjects 306 307 +0.3% 1.00x(?)
ArrayAppend 775 775 +0.0% 1.00x
DictionaryRemove 2329 2330 +0.0% 1.00x(?)
StringHasPrefixUnicode 13551 13545 -0.0% 1.00x(?)
LinkedList 7207 7210 +0.0% 1.00x(?)
RGBHistogramOfObjects 21545 21486 -0.3% 1.00x(?)
NSStringConversion 812 813 +0.1% 1.00x(?)
RGBHistogram 2269 2266 -0.1% 1.00x(?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4649 4647 -0.0% 1.00x(?)
ArrayAppendSequence 1061 1062 +0.1% 1.00x(?)
ArrayAppendArrayOfInt 599 599 +0.0% 1.00x
ArrayOfPOD 182 182 +0.0% 1.00x
Chars 630 629 -0.2% 1.00x(?)
StringBuilder 1317 1318 +0.1% 1.00x(?)
DeadArray 182 182 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
BitCount 1 1 +0.0% 1.00x
AnyHashableWithAClass 62141 62196 +0.1% 1.00x(?)
SevenBoom 1364 1365 +0.1% 1.00x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 89819 89795 -0.0% 1.00x(?)
StringWalk 5914 5913 -0.0% 1.00x(?)
ArrayValueProp 6 6 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 58235 58465 +0.4% 1.00x(?)
ObjectiveCBridgeFromNSString 1765 1764 -0.1% 1.00x(?)
GlobalClass 0 0 +0.0% 1.00x
Memset 235 235 +0.0% 1.00x
Dictionary2OfObjects 3419 3425 +0.2% 1.00x(?)
ArrayValueProp4 6 6 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2409 2402 -0.3% 1.00x(?)
ArrayValueProp3 6 6 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 3599 3600 +0.0% 1.00x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 197366 198961 +0.8% 0.99x(?)
ArrayAppendOptionals 1224 1234 +0.8% 0.99x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 127539 128226 +0.5% 0.99x(?)
Dictionary 721 727 +0.8% 0.99x(?)
ObjectiveCBridgeStubToArrayOfNSString 29173 29481 +1.1% 0.99x(?)
ObjectiveCBridgeFromNSSetAnyObjectToString 136068 137204 +0.8% 0.99x(?)
SetUnion 2464 2484 +0.8% 0.99x(?)
ObserverForwarderStruct 921 930 +1.0% 0.99x(?)
ObserverPartiallyAppliedMethod 3378 3397 +0.6% 0.99x(?)
ErrorHandling 2924 2976 +1.8% 0.98x(?)
PopFrontArrayGeneric 1092 1119 +2.5% 0.98x(?)
**Unoptimized (Onone)**
Regression (0)
Improvement (0)
No Changes (147)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 221560 210151 -5.2% 1.05x(?)
TypeFlood 181 173 -4.4% 1.05x(?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 115205 111552 -3.2% 1.03x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 135619 133590 -1.5% 1.02x(?)
NSStringConversion 3053 3006 -1.5% 1.02x(?)
ArrayAppendGenericStructs 1298 1282 -1.2% 1.01x(?)
SetIntersect_OfObjects 12018 11909 -0.9% 1.01x
PolymorphicCalls 1154 1138 -1.4% 1.01x(?)
ObjectiveCBridgeStubURLAppendPath 242471 240192 -0.9% 1.01x(?)
SortStringsUnicode 9182 9126 -0.6% 1.01x(?)
Phonebook 63467 63015 -0.7% 1.01x(?)
SetExclusiveOr_OfObjects 40398 40191 -0.5% 1.01x(?)
ObjectiveCBridgeFromNSSetAnyObjectToString 151979 150869 -0.7% 1.01x(?)
Dictionary2OfObjects 5959 5925 -0.6% 1.01x
ArraySubscript 5637 5630 -0.1% 1.00x(?)
DictionarySwapOfObjects 19273 19191 -0.4% 1.00x(?)
StackPromo 129912 129447 -0.4% 1.00x(?)
RecursiveOwnedParameter 10878 10865 -0.1% 1.00x(?)
Integrate 368 368 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObjectToString 118971 118408 -0.5% 1.00x(?)
ClassArrayGetter 1266 1266 +0.0% 1.00x
Array2D 813654 813940 +0.0% 1.00x(?)
Histogram 10042 10074 +0.3% 1.00x(?)
SortStrings 2689 2690 +0.0% 1.00x(?)
DictionaryBridge 3776 3769 -0.2% 1.00x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7770 7770 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDateRef 4076 4081 +0.1% 1.00x(?)
ArrayOfGenericPOD 6634 6603 -0.5% 1.00x(?)
StringWithCString 151634 151339 -0.2% 1.00x(?)
ObjectiveCBridgeFromNSStringForced 3049 3047 -0.1% 1.00x(?)
Prims 13142 13201 +0.5% 1.00x(?)
SortLettersInPlace 2573 2565 -0.3% 1.00x(?)
DictionarySwap 6054 6025 -0.5% 1.00x(?)
ObjectiveCBridgeFromNSString 5086 5068 -0.3% 1.00x(?)
PopFrontArray 24263 24167 -0.4% 1.00x(?)
Dictionary3OfObjects 2003 2003 +0.0% 1.00x
RangeAssignment 13285 13310 +0.2% 1.00x(?)
StringHasPrefix 1672 1675 +0.2% 1.00x(?)
ByteSwap 9 9 +0.0% 1.00x
SuperChars 263098 262559 -0.2% 1.00x(?)
ArrayAppendLazyMap 244708 244341 -0.1% 1.00x(?)
XorLoop 20013 20002 -0.1% 1.00x(?)
ArrayAppendReserved 3307 3307 +0.0% 1.00x
StringInterpolation 15842 15861 +0.1% 1.00x(?)
ObserverClosure 7249 7262 +0.2% 1.00x(?)
ObjectiveCBridgeStubToNSString 1337 1337 +0.0% 1.00x
ArrayAppendStrings 11846 11844 -0.0% 1.00x(?)
Join 1462 1460 -0.1% 1.00x(?)
ObjectiveCBridgeStubFromNSStringRef 157 157 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 790 789 -0.1% 1.00x(?)
ProtocolDispatch 6147 6137 -0.2% 1.00x(?)
ObjectAllocation 567 566 -0.2% 1.00x(?)
ObjectiveCBridgeFromNSSetAnyObject 89632 89741 +0.1% 1.00x(?)
ArrayLiteral 1251 1251 +0.0% 1.00x
ProtocolDispatch2 443 444 +0.2% 1.00x
Walsh 13282 13295 +0.1% 1.00x(?)
Dictionary3 1385 1384 -0.1% 1.00x(?)
Dictionary2 4045 4045 +0.0% 1.00x
StrComplexWalk 7623 7609 -0.2% 1.00x(?)
ErrorHandling 3780 3795 +0.4% 1.00x(?)
ArrayOfRef 9137 9114 -0.2% 1.00x(?)
ObserverUnappliedMethod 8749 8733 -0.2% 1.00x(?)
ObjectiveCBridgeToNSSet 40044 40111 +0.2% 1.00x(?)
NSError 690 688 -0.3% 1.00x(?)
DictionaryOfObjects 4591 4571 -0.4% 1.00x(?)
PopFrontUnsafePointer 258907 259077 +0.1% 1.00x(?)
StringEqualPointerComparison 9869 9875 +0.1% 1.00x(?)
RC4 9389 9386 -0.0% 1.00x(?)
ObjectiveCBridgeStubToNSStringRef 156 156 +0.0% 1.00x
Calculator 1016 1015 -0.1% 1.00x(?)
MapReduce 44954 44950 -0.0% 1.00x(?)
ObjectiveCBridgeStubDateMutation 426 427 +0.2% 1.00x
AngryPhonebook 3010 3001 -0.3% 1.00x(?)
IterateData 10670 10674 +0.0% 1.00x(?)
DictionaryLiteral 15785 15818 +0.2% 1.00x(?)
Hanoi 19276 19323 +0.2% 1.00x(?)
DictionaryRemoveOfObjects 46540 46534 -0.0% 1.00x(?)
UTF8Decode 43359 43359 +0.0% 1.00x
SetIsSubsetOf 2130 2138 +0.4% 1.00x(?)
Dictionary 1868 1859 -0.5% 1.00x(?)
NopDeinit 61077 61073 -0.0% 1.00x(?)
ObjectiveCBridgeFromNSArrayAnyObject 78960 78981 +0.0% 1.00x(?)
ObjectiveCBridgeStubDataAppend 3495 3481 -0.4% 1.00x(?)
RGBHistogramOfObjects 89426 89480 +0.1% 1.00x(?)
ObjectiveCBridgeStubNSDateRefAccess 1229 1230 +0.1% 1.00x(?)
ArrayInClass 3958 3958 +0.0% 1.00x
ArrayOfGenericRef 10067 10081 +0.1% 1.00x(?)
ObjectiveCBridgeStubDateAccess 1125 1125 +0.0% 1.00x
Sim2DArray 14813 14814 +0.0% 1.00x(?)
ArrayAppendRepeatCol 213565 214266 +0.3% 1.00x(?)
ObjectiveCBridgeToNSDictionary 62396 62602 +0.3% 1.00x(?)
MonteCarloPi 53585 53585 +0.0% 1.00x
MonteCarloE 117412 117298 -0.1% 1.00x(?)
SetUnion_OfObjects 28374 28272 -0.4% 1.00x(?)
StringHasSuffixUnicode 64969 64905 -0.1% 1.00x(?)
HashTest 5245 5249 +0.1% 1.00x(?)
SetIsSubsetOf_OfObjects 1907 1903 -0.2% 1.00x(?)
ArrayAppend 3554 3553 -0.0% 1.00x(?)
DictionaryRemove 16751 16797 +0.3% 1.00x(?)
StringHasPrefixUnicode 15711 15705 -0.0% 1.00x(?)
LinkedList 27883 27901 +0.1% 1.00x(?)
RGBHistogram 40294 40244 -0.1% 1.00x(?)
ArrayAppendArrayOfInt 640 640 +0.0% 1.00x
ArrayOfPOD 2450 2451 +0.0% 1.00x(?)
SetUnion 12216 12216 +0.0% 1.00x
Chars 4990 4993 +0.1% 1.00x(?)
StrToInt 5779 5772 -0.1% 1.00x(?)
ObserverForwarderStruct 5302 5300 -0.0% 1.00x(?)
DeadArray 122170 121810 -0.3% 1.00x(?)
ArrayValueProp2 3129 3127 -0.1% 1.00x(?)
BitCount 97 97 +0.0% 1.00x
AnyHashableWithAClass 77771 77761 -0.0% 1.00x(?)
SevenBoom 1504 1510 +0.4% 1.00x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 91740 91362 -0.4% 1.00x(?)
StringWalk 23811 23753 -0.2% 1.00x(?)
ArrayValueProp 2612 2611 -0.0% 1.00x(?)
ObjectiveCBridgeStubFromArrayOfNSString 59295 59198 -0.2% 1.00x(?)
ObjectiveCBridgeStubNSDateMutationRef 14673 14699 +0.2% 1.00x(?)
GlobalClass 0 0 +0.0% 1.00x
Memset 20977 20955 -0.1% 1.00x(?)
ArrayValueProp4 3101 3110 +0.3% 1.00x(?)
TwoSum 4926 4915 -0.2% 1.00x(?)
ObjectiveCBridgeStubNSDataAppend 2814 2817 +0.1% 1.00x(?)
ObjectiveCBridgeStubFromNSDate 3717 3716 -0.0% 1.00x(?)
ObserverPartiallyAppliedMethod 8646 8655 +0.1% 1.00x(?)
ObjectiveCBridgeToNSString 1101 1110 +0.8% 0.99x(?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 10170 10296 +1.2% 0.99x(?)
ObjectiveCBridgeStubToNSDate 13944 14154 +1.5% 0.99x(?)
StaticArray 34874 35193 +0.9% 0.99x(?)
ObjectiveCBridgeStubURLAppendPathRef 241968 244059 +0.9% 0.99x(?)
ObjectiveCBridgeToNSArray 30392 30808 +1.4% 0.99x(?)
ObjectiveCBridgeStubToNSDateRef 3311 3348 +1.1% 0.99x(?)
PopFrontArrayGeneric 9464 9564 +1.1% 0.99x(?)
CaptureProp 116286 117590 +1.1% 0.99x(?)
ObjectiveCBridgeStubToArrayOfNSString 29448 29816 +1.2% 0.99x(?)
SetIntersect 13094 13225 +1.0% 0.99x
SetExclusiveOr 23733 23918 +0.8% 0.99x(?)
StringHasSuffix 1765 1778 +0.7% 0.99x(?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7546 7596 +0.7% 0.99x(?)
ArrayAppendSequence 104799 105921 +1.1% 0.99x
146 6029626 6075090 +0.8% 0.99x
ObjectiveCBridgeFromNSDictionaryAnyObject 184496 188672 +2.3% 0.98x(?)
ArrayAppendOptionals 1286 1306 +1.6% 0.98x(?)
OpenClose 449 460 +2.5% 0.98x(?)
NSDictionaryCastToSwift 6239 6347 +1.7% 0.98x(?)
ArrayValueProp3 3078 3155 +2.5% 0.98x(?)
StringBuilder 2729 2812 +3.0% 0.97x(?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

@Gankra Gankra merged commit 41d8b2f into swiftlang:master Dec 14, 2016
@Gankra
Copy link
Contributor

Gankra commented Dec 14, 2016

Thanks!

@dtorres dtorres deleted the unique-removeAll branch December 14, 2016 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants