<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><span></span></div><div><span style="font-family: SFHello-Regular;">Hi everyone,</span><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;">One of the goals for Swift 5 is to start laying the *groundwork* for a concurrency model.&nbsp;</div><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;">From&nbsp;<a href="https://github.com/apple/swift-evolution:" class="">https://github.com/apple/swift-evolution:</a></div><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;"><blockquote type="cite" class=""><span class="" style="box-sizing: border-box; font-weight: 600; color: rgb(36, 41, 46); font-family: -apple-system, system-ui, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;; font-size: 16px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);">Laying groundwork for a new concurrency model</span><span class="" style="color: rgb(36, 41, 46); font-family: -apple-system, system-ui, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;; font-size: 16px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);">. We will lay groundwork for a new concurrency model, especially as needed for ABI stability. Finalizing such a model, however, is a&nbsp;</span><em class="" style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system, system-ui, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;; font-size: 16px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);">non-goal</em><span class="" style="color: rgb(36, 41, 46); font-family: -apple-system, system-ui, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;; font-size: 16px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);">&nbsp;for Swift 5. A key focus area will be on designing language affordances for creating and using asynchronous APIs and dealing with the problems created by callback-heavy code.</span></blockquote></div><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;">Concurrency is a topic with many axes of design to explore, as the different domains we wish Swift to be successful will place different demands on a model. &nbsp;That exploration will take time: there will be tradeoffs with any model, and evaluating those tradeoffs will take discussion and iteration.</div><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;">Today I’d like to open up swift-evolution to start some discussions about concurrency. &nbsp;Some of those discussions will focus on broader designs and concerns, and some will focus on specific use cases which we want to work great in Swift. &nbsp;Some opinions will likely differ significantly in the directions we should take — that’s fine. &nbsp;We intentionally want to explore different design spaces here, as a concurrency model for Swift has far reaching impact in the long-term on Swift as a language.</div><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;">To kick things off, Chris Lattner has been sharing privately with a few people his own ideas for concurrency, which I have encouraged him to send out after this email. &nbsp;These are just his ideas and **not** an official plan of record, but beyond having some interesting points to discuss I think the way he has framed some of his thinking is a good model for others to follow when bringing up alternate design directions&nbsp;<span class="" style="font-size: 14px;">—&nbsp;</span>which I encourage people to do.</div><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;">Once the Discourse forum comes online (which we are making progress on) we will likely tag or somehow segregate/mark discussions related to concurrency so they can easily be found. &nbsp;For now, one useful trick is to add “[Concurrency]” to the subject line, and when we move to the forum we’ll look to correctly tagging them.</div><div class="" style="font-family: SFHello-Regular;"><br class=""></div><div class="" style="font-family: SFHello-Regular;">Cheers,</div><div class="" style="font-family: SFHello-Regular;">Ted</div></div></body></html>