[petsc-dev] Stricter header includes

Barry Smith bsmith at mcs.anl.gov
Tue Feb 12 16:46:24 CST 2013


On Feb 12, 2013, at 4:41 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> 
> On Tue, Feb 12, 2013 at 4:37 PM, Matthew Knepley <knepley at gmail.com> wrote:
> On Tue, Feb 12, 2013 at 5:34 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
>    Certain PETSc "functions" are documented as being "Developer" level. Does this mean they will be in a "developer" API as opposed to the "user" API (for example in xxximpl.h instead of petscxxx.h)?  Or will there not be a "developer" API at all and xxximpl.h merely provides access to the direct data structure.
> 
> I thought Developer meant "we are still figuring this out", or "you can really hurt yourself here", not "this is secret".
> 
> That was my impression too. I thought the actual internal stuff did not have a generated man page.

   So we don't need documentation for our own stuff? Consider the manual page for PetscHeaderCreate(), that is truly a "developer" operation which has a manual page and is in petscimpl.h (where it should be, it needn't be public). Maybe we need both a "Developer" level and a "Experimental"/"Dangerous"/"New" level?

   Barry

> 
> It's possible to be a bit more strict about this by enabling visibility. When configured using --with-visibility, internal functions become "invisible" outside the shared library (even those that aren't file-local). To make that more precise and explicit, we could use PETSC_INTERNAL instead of PETSC_EXTERN for those functions.




More information about the petsc-dev mailing list