[swift-evolution] [Review] SE-0005 Better Translation of Objective-C APIs Into Swift

Douglas Gregor dgregor at apple.com
Mon Feb 1 15:40:15 CST 2016


> On Feb 1, 2016, at 1:38 PM, Drew Crawford <drew at sealedabstract.com> wrote:
> 
> 
>> On Feb 1, 2016, at 1:02 PM, Tony Parker <anthony.parker at apple.com <mailto:anthony.parker at apple.com>> wrote:
>> 
>> Types like NSURL are intended to be the canonical URL for everyone to use,
> 
> 
> I think the "canonical URL for everyone to use" must be a value type / struct.  To me this seems axiomatic.
> 
> Meanwhile (NS)URL cannot be a value type because of the Darwin compatibility mandate, and to change from value->reference semantics would be "off the charts" breakage severity.
> 
> This is a requirements conflict.  corelibs-foundation can either be Darwin-compatible or it can be canonical, but we cannot do both.  Right now we have chosen Darwin-compatible, so we must let the canonical requirement go.   Unprefixed "URL" should be reserved for the value type that can actually work as a canonical API.

One could imagine bridging NSURL to a value type URL (provided by Foundation, and initially implemented as a value-semantic wrapper around NSURL), the same way we bridge NSArray/NSDictionary/NSSet/NSString. 

	- Doug


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160201/79e34d95/attachment.html>


More information about the swift-evolution mailing list