<div dir="ltr">Hi Vibhu,<div><br></div><div>Thanks for sharing your thoughts. Indeed, rewriting function bodies in the case of tail recursion is an option. However, do we know which percentage of TCO calls can be optimized by using deftro? So far, I have not spent any energy on TCO because my idea is that the benefit is just too small -- in other words, I expect that the number of cases that would benefit from TCO without getting optimization is just too big...</div><div><br></div><div>Do you have any idea/ numbers?</div><div><br></div><div><br></div><div>Regards,</div><div><br></div><div><br></div><div>Erik.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 20, 2014 at 8:54 PM, Vibhu Mohindra <span dir="ltr"><<a href="mailto:vibhu.mohindra@gmail.com" target="_blank">vibhu.mohindra@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">One idea I have is to use deftro (described below) instead of defun<br>
for tail recursive functions. On TCO Lisps define deftro to just<br>
be defun. On others define it to rewrite the body. It won't optimise<br>
all tail calls, just those are self-recursive.<br>
<br>
<a href="http://www.wispym.com/notes/tech/lisp/tco.txt" target="_blank">http://www.wispym.com/notes/tech/lisp/tco.txt</a><br>
<br>
I haven't used this myself. But I might start, because it's not<br>
ugly in the following sense. Writing a tail recursive function and<br>
depending implicitly on TCO is non-portable. deftro is a portability<br>
layer.<br>
<span class=""><br>
<br>
_______________________________________________<br>
Armedbear-devel mailing list<br>
<a href="mailto:Armedbear-devel@common-lisp.net">Armedbear-devel@common-lisp.net</a><br>
</span><a href="http://mailman.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel" target="_blank">http://mailman.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Bye,<div><br></div><div>Erik.</div><div><br></div><div><a href="http://efficito.com/" target="_blank">http://efficito.com</a> -- Hosted accounting and ERP.</div><div>Robust and Flexible. No vendor lock-in.</div></div></div>
</div>