ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
NOTE: All comments on diffs in this document are based on https://github.dev/plotfi/cxx-interop-diff/pull/4
2
3
 Foundation (iOS/iPhoneOS)Content DiffTake Action?Fix?
4
Foundation (top level)Just Comments (probably old vs new run)Ignore
5
CombineJust Comments (probably old vs new run)Ignore
6
CoreFoundationadded: @_exported import std_configIgnore for now
7
Dispatchadded: @_exported import std_config

added: var __bool_true_false_are_defined: Int32 { get }

removed: var DISPATCH_QUEUE_PRIORITY_BACKGROUND: Int32 { get }

removed: @available(*, unavailable, message: "use 'nil' instead of this imported macro")
removed: var DISPATCH_QUEUE_SERIAL: ()

removed: @available(*, unavailable, message: "use 'nil' instead of this imported macro")
removed: var DISPATCH_TARGET_QUEUE_DEFAULT: ()

removed: @available(*, unavailable, message: "use 'nil' instead of this imported macro")
removed: var DISPATCH_CURRENT_QUEUE_LABEL: ()

removed: @available(*, unavailable, message: "use 'nil' instead of this imported macro")
removed: var DISPATCH_DATA_DESTRUCTOR_DEFAULT: ()
INVESTIGATE missing DISPATCH_.* macros and __boot_true_false.*
8
Foundation.NSArray
withOptions versus unit (likely another omit words bug):
func difference(from other: [Any], withOptions options: ...
@available(swift, obsoleted: 3, renamed: "difference(from:
withOptions:usingEquivalenceTest:)")

ignoring typedef from NS_OPTIONS typealias
INVESTIGATE omit wordsYES
9
Foundation.NSAttributedString__ missing from __NSAttributedStringFormattingOptions
ignoring typedef from NS_OPTIONS typealias
INVESTIGATE missing __ might be APINotes
10
Foundation.NSByteCountFormatterignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
11
Foundation.NSCalendarofUnit versus unit (likely another omit words bug):
func minimumRange(ofUnit unit: NSCalendar.Unit) -> NSRange
@available(swift, obsoleted: 3, renamed: "minimumRange(
ofUnit:)")
Also matchingUnit
ignoring typedef from NS_OPTIONS typealias
INVESTIGATE omit wordsYES
12
Foundation.NSComparisonPredicateignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
13
Foundation.NSDataJust Comments (probably old vs new run)
ignoring typedef from NS_OPTIONS typealias
Ignore
14
Foundation.NSDateComponentsFormattermissing @available(iOS 8.0, *)
ignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
INVESTIGATE missing @available, ignore the rest
15
Foundation.NSDecimalmissing var NSDecimalNoScale: Int32 { get }
INVESTIGATE missing NSDecimalNoScale
16
Foundation.NSExpressionadded fields to struct and init for _expressionFlags:
var _usesKVC: UInt32
var _validatedExpression: UInt32
var _validatedKeys: UInt32
Ignore for now
17
Foundation.NSExtensionContextmany missing @availables:
@available(iOS 8.2, *)
@available(swift, obsoleted: 3

missing extension NSNotification.Name {

NSExtensionHost.* types changed from NSNotification.Name to String

Is this intentional?
INVESTIGATE missing @available, extension, etc.
18
Foundation.NSFileCoordinatorignoring typedef from NS_OPTIONS typealiasIgnore
19
Foundation.NSFileManagerinDomain versus domain (likely another omit words bug):
func getRelationship(..., inDomain domainMask:
@available(swift, obsoleted: 3, renamed: "getRelationship(_:of:
inDomain:toItemAt:)")

ignoring typedef from NS_OPTIONS typealias
INVESTIGATE omit wordsYES
20
Foundation.NSFileVersionignoring typedef from NS_OPTIONS typealiasIgnore
21
Foundation.NSFileWrapperignoring typedef from NS_OPTIONS typealiasIgnore
22
Foundation.NSHashTableignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop:
specifically NSPointerFunctions.Options instead of Int
Ignore for now
23
Foundation.NSISO8601DateFormatterignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
24
Foundation.NSItemProviderignoring typedef from NS_OPTIONS typealiasIgnore
25
Foundation.NSJSONSerializationignoring typedef from NS_OPTIONS typealiasIgnore
26
Foundation.NSKeyValueObservingignoring typedef from NS_OPTIONS typealiasIgnore
27
Foundation.NSLinguisticTaggerignoring typedef from NS_OPTIONS typealiasIgnore
28
Foundation.NSMapTableignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop:
specifically NSPointerFunctions.Options instead of Int
Ignore for now
29
Foundation.NSMeasurementFormatterignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
30
Foundation.NSNetServicesignoring typedef from NS_OPTIONS typealiasIgnore
31
Foundation.NSNotificationQueueignoring typedef from NS_OPTIONS typealiasIgnore
32
Foundation.NSObjCRuntimeignoring typedef from NS_OPTIONS typealiasIgnore
33
Foundation.NSOrderedCollectionDifferenceignoring typedef from NS_OPTIONS typealiasIgnore
34
Foundation.NSOrderedSet
withOptions versus options (likely another omit words bug):
func difference(from other: NSOrderedSet, withOptions options: ...
@available(swift, obsoleted: 3, renamed: "difference(from:
withOptions:usingEquivalenceTest:)")
INVESTIGATE omit wordsYES
35
Foundation.NSPathUtilitiesignoring typedef from NS_OPTIONS typealiasIgnore
36
Foundation.NSPersonNameComponentsFormatterignoring typedef from NS_OPTIONS typealiasIgnore
37
Foundation.NSPointerFunctionsignoring typedef from NS_OPTIONS typealiasIgnore
38
Foundation.NSPortignoring typedef from NS_OPTIONS typealiasIgnore
39
Foundation.NSProcessInfoignoring typedef from NS_OPTIONS typealiasIgnore
40
Foundation.NSPropertyListignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop

class func propertyListWithStream(...options opt: PropertyListSerialization.ReadOptions = [],
IS MISSING = [] default val
INVESTIGATE missing = [ ]
41
Foundation.NSRegularExpressionignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
42
Foundation.NSStreamignoring typedef from NS_OPTIONS typealias

Missing:
optional func stream(_ aStream: Stream, handle eventCode: Stream.Event)
@available(swift, obsoleted: 3, renamed: "stream(_:handle:)")

In protocol StreamDelegate : NSObjectProtocol {
INVESTIGATE missing func + @available inside protocol
43
Foundation.NSStringignoring typedef from NS_OPTIONS typealiasIgnore
44
Foundation.NSTextCheckingResultignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
45
Foundation.NSURLignoring typedef from NS_OPTIONS typealiasIgnore
46
Foundation.NSXPCConnectionignoring typedef from NS_OPTIONS typealiasIgnore
47
48
49
50
51
 UIKit (iOS/iPhoneOS)Content DiffTake Action?
52
TOP LEVEL UIKit NOTE ➡️Note that inorder to get UIKit to load with C++-Interop and the intended changes to CFAvailability.h
(for CF_OPTIONS) that it was needed to remove FILEPROVIDER_API_AVAILABILITY_V3 and
FILEPROVIDER_API_AVAILABILITY_V3_1 from being applied to certain NS_OPTIONS because
the C++-Interop NS/CF_OPTIONS is now two separate statements and the macro would only
apply to the first one causing the second one to cause a compile error for the unavailable typedef.
Need to figure how how to get the enum : NSFooTypedefType {'s
avaiability to be subsumed from the typedef peceeding it (it's QualType).
53
UIKit.NSAttributedStringignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
54
UIKit.NSLayoutConstraintignoring typedef from NS_OPTIONS typealiasIgnore
55
UIKit.NSLayoutManagershouldUseAction versus "shouldUse Action" (likely another omit words bug):
optional func layoutManager(_ layoutManager: NSLayoutManager, shouldUseAction action: ...
@available(swift, obsoleted: 3, renamed: "layoutManager(_:
shouldUseAction:forControlCharacterAt:)")

ignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
INVESTIGATE omit wordsYES
56
UIKit.NSParagraphStyleignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
57
UIKit.NSStringDrawingignoring typedef from NS_OPTIONS typealiasIgnore
58
UIKit.NSTextContentManagerignoring typedef from NS_OPTIONS typealiasIgnore
59
UIKit.NSTextLayoutFragmentignoring typedef from NS_OPTIONS typealiasIgnore
60
UIKit.NSTextLayoutManagerignoring typedef from NS_OPTIONS typealiasIgnore
61
UIKit.NSTextSelectionNavigationignoring typedef from NS_OPTIONS typealiasIgnore
62
UIKit.NSTextStorage__ missing from __NSAttributedStringFormattingOptions
"ignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop "
Same problem mentioned above in Foundation section:

INVESTIGATE missing __ might be APINotes
63
UIKit.UIAccessibilityignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
64
UIKit.UIAccessibilityConstantsdefault init() for UIAccessibility is addedINVESTIGATE, I believe this may affect production code
65
UIKit.UIActioncomments dropped
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
66
UIKit.UIApplicationignoring typedef from NS_OPTIONS typealiasIgnore
67
UIKit.UIBackgroundConfigurationignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
68
UIKit.UIBandSelectionInteractionignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
69
UIKit.UIBarButtonItemmissing function and @available:
func setBackgroundImage(_ backgroundImage: UIImage?, ...
@available(iOS 5.0, *)
@available(swift, obsoleted: 3, renamed: "setBackgroundImage(_:for:barMetrics:)")

forState versus "for state" (likely another omit words bug):
func backgroundImage(forState state: ...
@available(swift, obsoleted: 3, renamed: "backgroundImage(
forState:barMetrics:)")
INVESTIGATE omit words, INVESTIGATE missing function+@availYES
70
UIKit.UIBarItem
missing function and @available:
func setTitleTextAttributes(_ attributes: [NSAttributedString.Key : Any]?, for state: UIControl.State)
@available(iOS 5.0, *)
@available(swift, obsoleted: 3, renamed: "setTitleTextAttributes(_:for:)")

forState versus "for state" (likely another omit words bug):
func titleTextAttributes(forState state: UIControl.State) -> [NSAttributedString.Key : Any]?
@available(iOS 5.0, *)
@available(swift, obsoleted: 3, renamed: "titleTextAttributes(
forState:)")
INVESTIGATE omit words, INVESTIGATE missing function+@availYES
71
UIKit.UIButtonEXACT SAME AS PREVIOUS TWO (UIKit.UIBarButtonItem and UIKit.UIBarItem)INVESTIGATE omit words, INVESTIGATE missing function+@availYES
72
UIKit.UIButtonConfigurationignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
73
UIKit.UICloudSharingControllerignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
74
UIKit.UICollectionView (NEW??)ignoring typedef from NS_OPTIONS typealias

func scrollToItem(at indexPath: IndexPath, atScrollPosition scrollPosition: UICollectionView.ScrollPosition, animated: Bool)
@available(swift, obsoleted: 3, renamed: "scrollToItem(at:atScrollPosition:animated:)")
INVESTIGATE atScrollPosition
75
UIKit.UICollectionViewCompositionalLayoutignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
76
UIKit.UICollisionBehaviorignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
77
UIKit.UICommandcomments dropped
ignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
78
UIKit.UIControlignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop

Dropped function+@available:
func removeTarget(_ target: Any?, action: Selector?, for controlEvents: UIControl.Event)
@available(swift, obsoleted: 3, renamed: "removeTarget(_:action:for:)")

forControlEvents versus "for controlEvents" (likely another omit words bug):
func sendActions(forControlEvents controlEvents: UIControl.Event)
@available(swift, obsoleted: 3, renamed: "sendActions(forControlEvents:)")
INVESTIGATE omit words, INVESTIGATE missing function+@avail
79
UIKit.UIDataDetectorsignoring typedef from NS_OPTIONS typealiasIgnore
80
UIKit.UIDocumentignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
81
UIKit.UIDocumentBrowserActionignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
82
UIKit.UIEvent
comments dropped
ignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop

Missing Extension:
extension UIEvent.ButtonMask {
/// Convenience initializer for a button mask where `buttonNumber` is a one-based index of the button on the input device
/// .button(1) == .primary
/// .button(2) == .secondary
@available(iOS 13.4, *)
static func button(_ buttonNumber: Int) -> UIEvent.ButtonMask
}
INVESTIGATE missing Extension
83
UIKit.UIFocusignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
84
UIKit.UIFontDescriptorignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
85
UIKit.UIFontPickerViewControllerConfigurationignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
86
UIKit.UIGeometryignoring typedef from NS_OPTIONS typealiasIgnore
87
UIKit.UIGestureRecognizerignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
88
UIKit.UIGuidedAccessignoring typedef from NS_OPTIONS typealiasIgnore
89
UIKit.UIKeyignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
90
UIKit.UIKeyCommandcomments dropped
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
91
UIKit.UILabelignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
92
UIKit.UIListContentConfigurationignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
93
UIKit.UILocalNotificationignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
94
UIKit.UIMenucomments dropped
ignoring typedef from NS_OPTIONS typealias
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
95
UIKit.UIMenuElementignoring typedef from NS_OPTIONS typealiasIgnore
96
UIKit.UIPanGestureRecognizercomments dropped
ignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop
Ignore for now
97
UIKit.UIPointerInteractionignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
98
UIKit.UIPointerRegionignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
99
UIKit.UIPopoverBackgroundViewignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now
100
UIKit.UIPopoverControllerignoring Int versus OptionsStruct.InnerStruct type since we want raw int for OPTIONS C++-Interop Ignore for now