<div dir="ltr"><br><div>On Thu, Feb 7, 2013 at 6:10 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
On Feb 7, 2013, at 4:31 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
<br>
><br>
><br>
> I think we have all the facts on the high level discussion. Concrete proposals to be voted on:<br>
><br>
>   1) Get rid of all function-like CPP things<br>
<br>
</div>    Right now we can get rid of any CPP macro functions that can be trivially converted to C functions. The ones we cannot get rid of are ones that take "types" or block sizes as arguments. (these are used as code generation macros; generating a chunk of C code for each type).<br>
</blockquote><div><br></div><div style>We should work on eliminating those first. This is a good test of how usable the code generation would be.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">><br>
>   2) Get rid of (Matt says) innocuous CPP things, like CHKERRQ<br>
<br>
</div>   We don't need to get rid of them. These can all be swept out by one massive automated regular expression sed type operation when the time is right. In fact I should just write that now for experimentation purposes.</blockquote>
<div><br></div><div style>Yes.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
><br>
>   3) Generate full functions for missing LAPACK stuff, which will probably necessitate changing petscblaslapack.h<br>
<br>
</div>    I don't see that this should require any change to petscblaslapack.h (though we may want to change petscblaslapack.h at some point for other reasons)<br></blockquote><div><br></div><div style>Okay, I will try and do this in a week.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
4)<br>
#undef __FUNC__<br>
#define __FUNC__<br>
<br>
   Can all be swept out automatically at the right time.<br></blockquote><div><br></div><div style>Yes.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

5)<br>
#define KSPGMRES "gmres"<br>
<br>
?<br></blockquote><div><br></div><div style>We had this argument. The typedef behaves in a weird was with 'const'.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

6)<br>
#if defined(PETSC_HAVE_SOMEINCLUDE)<br>
#include <someinclude.h><br>
<br>
   I was thinking we could auto generate empty someinclude.h for these (putting in $PETSC_ARCH/include) Cheesy but ?<br></blockquote><div><br></div><div style>Hmm, that seems fragile. I would rather generate the header lists.</div>
<div><br></div><div style>    Matt</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
7) Some other uses of CPP<br>
<span class="HOEnZb"><font color="#888888"><br>
  Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
>     Matt<br>
><br>
> --<br>
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
> -- Norbert Wiener<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>