Well, there’s always the option of Swift._NonObjcSwiftObject…but to be honest 
what this class looks like from the Swift side is much less of a concern to me. 
Getting “Swift” in the mangled name is probably good enough.

Saagar Jha

> On Jan 8, 2018, at 15:00, Greg Parker <gpar...@apple.com> wrote:
> 
> Adding "Swift" to the mangled name is reasonable. The class is not ordinarily 
> visible, so most of the time that people see it will be in potentially 
> mangled contexts like crash logs.
> 
> I'm reluctant to put too much ObjC into the name, because this is the base 
> class for classes that are *not* @objc. 
> 
> 
>> On Jan 6, 2018, at 7:21 PM, Saagar Jha <saa...@saagarjha.com 
>> <mailto:saa...@saagarjha.com>> wrote:
>> 
>> Just my 2¢, from the point of view of someone runs into SwiftObject 
>> frequently: I’d really appreciate it if this class had “Swift” in it’s name. 
>> At first glance, it’s name in mangled form (“_TtCs7_Object”) gives no 
>> indication as to where it’s from. Obviously it’s not a “pure” Objective-C 
>> object, but it’s not clear that it’s a Swift object either–maybe it’s C++? 
>> Saagar’s cool new language that also does name mangling? Who knows. I guess 
>> “_T” is kind of enough to figure it out, but since you’re changing the name 
>> anyways it would be great if it was something that reduced my cognitive 
>> overload, like Swift._SwiftObject.
>> 
>> If you’re going to expose this to Swift as well, a similar argument applies: 
>> from it’s name, it’s not clear that it’s part of Objective-C interop. I’m 
>> not sure if this is visible to Swift programmers, and if it isn’t this isn’t 
>> an issue, but in the case that it is Swift._Object looks more like a private 
>> implementation detail of a base class akin to NSObject in Objective-C or 
>> Object in Java than a compatibility shim with Objective-C.
>> 
>> Saagar Jha
>> 
>>> On Jan 4, 2018, at 19:10, Greg Parker via swift-evolution 
>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>> 
>>> SwiftObject is an Objective-C class that is the base class of all "pure 
>>> Swift" class types. It needs to be renamed for the Swift stable ABI in 
>>> order to avoid ObjC class name collisions between the stable ABI's Swift 
>>> runtime and the runtime embedded into existing Swift apps.
>>> 
>>> I suggest `Swift._Object`, mangled as _TtCs7_Object like other Swift ObjC 
>>> class names. 
>>> 
>>> Any comments?
>>> 
>>> https://github.com/apple/swift/pull/13748 
>>> <https://github.com/apple/swift/pull/13748>
>>> 
>>> 
>>> -- 
>>> Greg Parker     gpar...@apple.com <mailto:gpar...@apple.com>     Runtime 
>>> Wrangler
>>> 
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to