<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">On Jul 5, 2016, at 5:41 PM, Saleem Abdulrasool &lt;<a href="mailto:compnerd@compnerd.org" class="">compnerd@compnerd.org</a>&gt; wrote:<div><blockquote type="cite" class="">On Tuesday, July 5, 2016, Chris Lattner &lt;<a href="mailto:clattner@apple.com" class="">clattner@apple.com</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jul 5, 2016, at 5:28 PM, Saleem Abdulrasool &lt;<a href="javascript:_e(%7B%7D,'cvml','compnerd@compnerd.org');" target="_blank" class="">compnerd@compnerd.org</a>&gt; wrote:</div><br class=""><div class="">On Tuesday, July 5, 2016, Chris Lattner &lt;<a href="javascript:_e(%7B%7D,'cvml','clattner@apple.com');" target="_blank" class="">clattner@apple.com</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jul 5, 2016, at 2:59 PM, Brian Gesiak via swift-evolution &lt;<a class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><div dir="ltr" class=""><div class=""><p style="margin:0px 0px 1.2em!important" class="">Sorry to resurrect such an old thread! I understand getting this in Swift 3.0 might not be realistic anymore, but this is still something I’d love to see added to Swift. Could someone advise on whether it still makes sense to spend time on this proposal? Or is this part of Swift too solidified to change at this point?</p></div></div></div></blockquote><div class="">It is definitely beyond Swift 3.0, but I’d love to see this happen at some point, we really need someone to drive the (surely to be contentious) design process.</div></div></div></blockquote><div class=""><br class=""></div><div class="">I'm probably going to regret this, but given that I had originally proposed this to Brian and would really like to see this happen, what does this entail?</div><div class="">&nbsp;</div></div></blockquote><br class=""></div><div class="">1) get some consensus on list for an overall approach</div><div class="">2) formalize a proposal and submit a PR to swift-evolution</div><div class="">3) iterate</div><div class=""><br class=""></div><div class="">#1 is the hardest I think.&nbsp; I don’t think a truly minimal wrapper of the POSIX APIs is interesting, I think we should at least make a Swifty POSIX API, which is portable and low-abstraction overhead.&nbsp; However, it should fix the mistakes of errno and “creat” among other things.</div></div></blockquote><div class=""><br class=""></div>That sounds pretty reasonable.&nbsp; Especially if we do this earlier, breaking from expectations in terms of mapping for things like "creat" would be less intrusive.<div class=""><br class=""></div><div class="">Not sure what you had in mind for errno.&nbsp; It seems like if we have an SDK overlay for posix, we could hide errno, handling it similar to NSError.&nbsp; However, I think that violates the low overhead.</div></blockquote><br class=""></div><div>It seems that we should either go down the “typed result type” route, or implement support for typed throws (my personal preference), allowing us to say “func f() throws POSIXError {}”.</div><div><br class=""></div><div>-Chris</div><br class=""></body></html>