<div dir="rtl"><div dir="ltr">There are overviews of Dwarf EH in the gcc wiki</div><div dir="ltr"><br></div><div dir="ltr"> <a href="http://gcc.gnu.org/wiki/Dwarf2EHNewbiesHowto">http://gcc.gnu.org/wiki/Dwarf2EHNewbiesHowto</a><br>

</div><div class="gmail_extra"><br></div><div class="gmail_extra" dir="ltr">and in Mortoray blog</div><div class="gmail_extra" dir="ltr"><br></div><div class="gmail_extra" dir="ltr"> <a href="http://mortoray.com/2013/09/12/the-true-cost-of-zero-cost-exceptions/">http://mortoray.com/2013/09/12/the-true-cost-of-zero-cost-exceptions/</a><br>

</div><div class="gmail_extra" dir="ltr"> <a href="http://mortoray.com/2012/03/08/the-necessity-of-exceptions/">http://mortoray.com/2012/03/08/the-necessity-of-exceptions/</a></div><div class="gmail_extra" dir="ltr"> <a href="http://mortoray.com/2012/04/02/everything-wrong-with-exceptions/">http://mortoray.com/2012/04/02/everything-wrong-with-exceptions/</a></div>

<div class="gmail_extra" dir="ltr"><br></div><div class="gmail_extra" dir="ltr"><br></div><div class="gmail_extra"><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr">2013/11/23 Joshua Cranmer <span dir="ltr"><<a href="mailto:pidgeot18@gmail.com" target="_blank">pidgeot18@gmail.com</a>></span></div>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">On 11/23/2013 12:18 AM, Mikael Lyngvig wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Thanks, you have a lot of valid points there.  I have myself long ago abandoned the path of using C as a backend language due to the very factors you mention.<br>
<br>
However, as I said, the document was put together in 30 minutes.  Not exactly ready for prime time :-)<br>
<br>
I do agree that all of the things you mention should be described, including Lambdas, closures, and generators, but I must admit up front that I don't know how to implement half of them.  But I suppose I could do a lot of research and perhaps occasionally ask you guys for specifics.<br>


<br>
We are not going to find much common ground on the issue of "calling propagated return values for exception handling", I think :-)  See <a href="https://www.lyngvig.org/Teknik/A-Proposal-for-Exception-Handling-in-C" target="_blank">https://www.lyngvig.org/<u></u>Teknik/A-Proposal-for-<u></u>Exception-Handling-in-C</a> for the details.<br>


</blockquote>
<br>
That appears to be comparing return value propagation to setjmp/longjmp, which is not considered a good exception handling model. Most low-cost (or no-cost!) exception handling mechanisms are based on an unwind approach, where a thrown exception causes the stack trace to be inspected to find the appropriate catch block. If exceptions are not thrown, there is no execution cost to setting up a try/catch block, although this is paid for by a relatively expensive throw implementation. Details of such an implementation can be found in the Itanium ABI <<a href="http://mentorembedded.github.io/cxx-abi/abi-eh.html" target="_blank">http://mentorembedded.github.<u></u>io/cxx-abi/abi-eh.html</a>> (which, despite its name, is the ABI used by gcc and clang).<span class=""><font color="#888888"><br>


<br>
-- <br>
Joshua Cranmer<br>
News submodule owner<br>
DXR coauthor<br>
<br>
______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvmdev</a><br>
</font></span></blockquote></div><br></div></div>