> On Apr 5, 2016, at 5:57 PM, Kevin Lundberg via swift-evolution
> <[email protected]> wrote:
>
> Generally I'm +1 on this, but I do have a concern. It's not made explicit in
> the proposal, but I presume that this is meant to only be available on
> Darwin, and not Linux or other platforms that don't have swift using the
> Objective-C runtime? (Please correct me if I am mistaken.)
>
> I ask because of the swift-corelibs-foundation project; Presumably once that
> is complete for Swift 3, code that makes use of this type bridging should be
> able to be run cross-platform. For example:
>
> var a = [AnyObject]()
> (a as NSArray).addObject(NSObject()) // should this work on all platforms?
>
> swift-corelibs-foundation uses its own protocol named _ObjectTypeBridgeable
> (defined here:
> https://github.com/apple/swift-corelibs-foundation/blob/338f4bf3a89c75a0420b49f5701466e106af02b5/Foundation/NSSwiftRuntime.swift#L205
>
> <https://github.com/apple/swift-corelibs-foundation/blob/338f4bf3a89c75a0420b49f5701466e106af02b5/Foundation/NSSwiftRuntime.swift#L205>)
> to simulate what happens today on Darwin platforms, but there is no language
> support for it so API consumers must explicitly call its bridging methods. It
> would be great if corelibs-foundation (and any code designed to work on
> Linux) could take advantage of this proposal to provide the language support,
> and if the proposal as written is not intended to have an effect on Linux at
> all, then I would suggest we modify it so that the resulting implementation
> is not tied to Objective-C and Darwin only.
>
> -Kevin
>
The original intent was to be available on platforms that have an Objective-C
runtime (Darwin only at the moment, I guess in theory Windows if someone were
determined enough).
You bring up a good point; there is nothing in the protocol that absolutely
requires Objective-C, only that it requires AnyObject be the root object type.
However in some hypothetical world where we support importing C++ types, Rust
types, or JavaScript (only half trolling) types it would be nice for this
protocol to have something tying it to the idea that we are bridging to the
Objective-C/corelibs-foundation runtime specifically.
Russ
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution