<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 26, 2017, at 8:33 AM, John McCall <<a href="mailto:rjmccall@apple.com" class="">rjmccall@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 24, 2017, at 2:10 PM, Andrew Trick via swift-dev <<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>> wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I’m sending out a proposal for fundamentally changing SIL. This work feeds into generic code optimization, resilience, semantic ARC, and SIL ownership. This was discussed at length back in October—some info went out on swift-dev—but I realized there hasn’t been a formal proposal. So here it is. I want to make sure enough people have seen this before pushing my PR that puts the infrastructure in place: <a href="https://github.com/apple/swift/pull/6922" class="">https://github.com/apple/swift/pull/6922</a>.</div><div class=""><br class=""></div><div class="">Rendered Proposal: <a href="https://gist.github.com/atrick/38063a90bf4a6ebae05fe83ea9ebc0b7" class="">https://gist.github.com/atrick/38063a90bf4a6ebae05fe83ea9ebc0b7</a></div><div class=""><br class=""></div><div class="">Markdown:</div></div><span id="cid:122B63E5-36DD-44CC-BAD2-926207474FBC@verizon.net" class=""><silval-proposal-1.md></span></div></blockquote><div class=""><br class=""></div>We've already talked about this at length, so I just want to say for the record that it looks great, and thanks for taking this on.</div><div class=""><br class=""></div><div class="">What's the purpose of SILFunctionConventions? To provide a context with which to interpret the information in SILFunctionType?</div><div class=""><br class=""></div><div class="">John.</div></div></div></blockquote></div><br class=""><div class="">Yes, that’s the motivating factor. SILFunctionTypes are created as part of the ASTContext and I believe they should be immutable. A function's type should never change. SILFunctionConventions is a transient view of that type corresponding to the module’s current conventions.</div><div class=""><br class=""></div><div class="">I hope the separation of APIs also helps make the distinction between lowered types and SIL types. It’s hard for me to even talk about that distinction since they’ve always been the same thing.</div><div class=""><br class=""></div><div class="">-Andy</div></body></html>