<html><body><p>Hi,<br><br> I've been making some progress on the Swift 3 overlay for dispatch on a branch [1]. It builds, but doesn't do much more beyond that yet. I expect to raise a pull request within a week (once basic programs are working). <br>--dave<br><br>[1] <a href="https://github.com/dgrove-oss/swift-corelibs-libdispatch/tree/wrapping-overlay-stage-1">https://github.com/dgrove-oss/swift-corelibs-libdispatch/tree/wrapping-overlay-stage-1</a><br><br><img width="16" height="16" src="cid:1__=0ABBF54DDF1163F68f9e8a93df938690918c0AB@" border="0" alt="Inactive hide details for Joseph Bell ---06/26/2016 05:30:37 PM---David, Chris, Thanks again for the responses regarding libdis"><font color="#424282">Joseph Bell ---06/26/2016 05:30:37 PM---David, Chris, Thanks again for the responses regarding libdispatch (GCD) on Linux with</font><br><br><font size="2" color="#5F5F5F">From: </font><font size="2">Joseph Bell <joe@iachieved.it></font><br><font size="2" color="#5F5F5F">To: </font><font size="2">David P Grove/Watson/IBM@IBMUS, Chris Bailey <BAILEYC@uk.ibm.com></font><br><font size="2" color="#5F5F5F">Cc: </font><font size="2">swift-corelibs-dev@swift.org</font><br><font size="2" color="#5F5F5F">Date: </font><font size="2">06/26/2016 05:30 PM</font><br><font size="2" color="#5F5F5F">Subject: </font><font size="2">Re: [swift-corelibs-dev] libdispatch/GCD for Swift 3.0 on Linux</font><br><hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br><br><br><font size="4">David, Chris,</font><br><br><font size="4">Thanks again for the responses regarding libdispatch (GCD) on Linux with Swift 3.0. I took a stab at building what was there and indeed, I see there are missing components to the overlay. For example, I see where Dispatch.swift contains things like "public extension DispatchGroup" but there is no actual DispatchGroup defined anywhere (just extensions to it). The same goes for DispatchSemaphore, DispatchQueue, DispatchWorkItem, etc. Unless I am offbase and that is defined (I certainly couldn't find it).</font><br><br><font size="4">At any rate, thanks again for the work you're doing bringing GCD to Linux; I'm looking forward to it.</font><br><br><font size="4">Joe</font><br><br><br><font size="4">On Tue, Jun 21, 2016 at 10:24 AM, David P Grove <</font><a href="mailto:groved@us.ibm.com" target="_blank"><u><font size="4" color="#0000FF">groved@us.ibm.com</font></u></a><font size="4">> wrote:</font><ul><tt><font size="4">Joseph Bell <</font></tt><a href="mailto:joe@iachieved.it" target="_blank"><tt><u><font size="4" color="#0000FF">joe@iachieved.it</font></u></tt></a><tt><font size="4">> wrote on 06/21/2016 09:15:00 AM:</font></tt><font size="4"><br></font><tt><font size="4"><br>> <br>> Thanks for the details, I appreciate it. I have seen the term <br>> "Swift overlay" used, particularly in the context of libdispatch. <br>> What does that mean exactly in this regard (searching for it returns<br>> tutorials on overlay UIViews which I doubt is appropriate here).<br>> </font></tt><font size="4"><br></font><tt><font size="4"><br>Hi,</font></tt><font size="4"><br></font><tt><font size="4"><br>There's a layer of Swift code that sits on top of the non-Swift implementation of libdispatch to provide the Swift-level API for the library. This is called the overlay. </font></tt><font size="4"><br></font><tt><font size="4"><br>In Swift 2, the overlay for libdispatch was relatively thin. In Swift 3 it became thicker and on Darwin platforms more reliant on compiler support for importing Objective-C API declarations in a "Swifty" way. The main work item for getting the libdispatch Swift 3 APIs on Linux is to compensate for the lack of Objective-C by manually writing a layer (in Swift) that sits between the basic C-level APIs libdispatch provides on Linux and the desired user-visible Swift-3 APIs. </font></tt><font size="4"><br></font><tt><font size="4"><br>--dave</font></tt></ul><br><font size="4"><br></font><br><br><font size="4">-- </font><br><font size="4">Joseph Bell</font><br><a href="http://dev.iachieved.it/iachievedit/" target="_blank"><u><font size="4" color="#0000FF">http://dev.iachieved.it/iachievedit/</font></u></a><br><font size="4">@iachievedit</font><br><br><BR>
</body></html>