<div dir="ltr">Hi,<div><br></div><div>I started another thread on @pure in swift, luckily Chris Lattner reminded me about this one. I'm going to continue any discussion here so we don't fragment the conversation.</div><div><br></div><div>The other thread was a pre-proposal discussion called "Proposal proposal: @pure keyword", it isn't archived so I cannot link it.</div><div><br></div><div>I've summarised the progress so far here (it's in the proposals directory for convenience):</div><div><br></div><div><a href="https://github.com/therealbnut/swift/blob/therealbnut-pure-preproprosal/docs/proposals/PureKeyword.rst">https://github.com/therealbnut/swift/blob/therealbnut-pure-preproprosal/docs/proposals/PureKeyword.rst</a></div><div><br></div><div>If I've missed anything or you want to update, clarify, fix typos, etc. please submit a PR :) I'm trying to keep it focused on things that have little contention.</div><div><br></div><div>I've tried to unify the ideas from both the other thread and this one into that summary. As it's not really a proposal I haven't included the excellent justifications that Jimmy initially stated, they can be added if it becomes a proposal. Please add a PR if you would like them there.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 22, 2015 at 9:08 AM, Joe Groff via swift-evolution <span dir="ltr"><<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Dec 21, 2015, at 2:04 PM, Alex Popov via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br>
><br>
> Slight tangent, would a guarantee of purity also allow for more Tail-Call Optimizations? A cursory glance at SO seems to point to TCO not always being applied, especially when ARC is involved.<br>
<br>
<br>
</span>I don't think any reasonable meaning for `pure` in Swift would affect the possibility of TCO. There was another thread about TCO here you might read back on; as I explained there, ARC is not a barrier to TCO, our ownership and machine-level calling conventions are. We would need to be able to use a specific calling convention for guaranteed-TCOable entry points.<br>
<br>
-Joe<br>
<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div>