<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 8, 2013 at 12:05 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Regardless of the craziness of my plan, I think we can all agree that the more structure, consistency, maintainability, and ability to introspect on the code of the PETSc source code we have the better off we are. So any work (ok so most work) I do on upgrading the PETSc source code in pursuit of the whale means better code.</blockquote>
</div><br>I agree, but I think we need to keep things in context. I don't think that completely eradicating CPP is feasible or even particularly beneficial. Even without macros, there are way too many things that happen in C to do these far-reaching transformations. Even if you could do the transformations safely, you still have to understand their performance and to explain why one seemingly-innocuous change to the source file causes radically different transformations to be performed.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">My experience with Haskell is that you end up with very confusing performance effects unless you really understand how the compiler is implemented.</div></div>