On Tue, Feb 12, 2013 at 5:34 PM, Barry Smith <bsmith@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".

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

> The PetscObjectState* and PetscObjectComposedData* routines are in petscimpl, but documented as a public API. It would be nice to turn all these macros into functions (which will change their signature).

   I'm a big fan of turning CPP macros into functions so would be happy to see this happen.

   Barry

> I'm dubious of any claims that these are called in a context where a static function call would be a performance limitation.
>
>
> On Tue, Feb 12, 2013 at 9:39 AM, Jed Brown <jedbrown@mcs.anl.gov> wrote:
> petscsys.h no longer includes petscimpl.h (including the _p_PetscObject definition) and petscvec.h no longer includes vecimpl.h (including _p_Vec). Users that need direct access can include the private headers, but we encourage you to explain your use case here so that we can provide a suitable public API.
>
> Merged here:
>
> https://bitbucket.org/petsc/petsc-dev/commits/5c59734726c7c41f493a5f5b9303cfab5c66ae21
>




--
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener