<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 5, 2016, at 5:57 PM, Kevin Lundberg via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" class="">
  
  <div bgcolor="#FFFFFF" text="#000000" class="">
    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.)<br class="">
    <br class="">
    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:<br class="">
    <br class="">
    var a = [AnyObject]()<br class="">
    (a as NSArray).addObject(NSObject()) // should this work on all
    platforms?<br class="">
    <br class="">
    swift-corelibs-foundation uses its own protocol named
    _ObjectTypeBridgeable (defined here:
    <a class="moz-txt-link-freetext" href="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</a>)
    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.<br class="">
    <br class="">
    -Kevin<br class=""><div class="moz-cite-prefix"><br class="">
    </div>
    </div></div></blockquote></div><div class=""><br class=""></div><div class="">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).</div><div class=""><br class=""></div><br class=""><div class="">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.&nbsp;</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Russ</div></body></html>