<div class="gmail_quote">On Mon, Mar 14, 2011 at 17:00, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">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;">
<div id=":1wt">Then basically almost all the headers belong in include/something because they can and sometimes are used by outsiders. For example access to the guts of any matrix class for implementation in heritence, access to the guts of the gmres data-structure to implement a modified gmres like fgmres, lgmres etc. pc_mg for sure<br>

<br>
   So how do we organize private? Same as the source tree?   mat/impls/aij/seq    etc etc?  dump everything in one directory yuck?</div></blockquote><div><br></div><div>I see a total of 70 implementation headers, not sure what fraction of those should be "open". Mirroring the source tree makes it easy to find the location of the "primary" user (*.c files) of a given header, but it also forces that there always be a primary user. Perhaps it's reasonable for things with no primary user to go directly into private/*.h instead of private/pkg/**/*.h.</div>
<div><br></div><div>I don't have a strong preference either way.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":1wt">
   I had resisted doing this but maybe it is the way to go.</div></blockquote></div><br><div>I think it's the right thing if plugin developers/users and prefix installs are to be first-class citizens.</div>