I don't see this as worthwhile use of time.
On Jan 21, 2013, at 10:49 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>
> On Mon, Jan 21, 2013 at 10:21 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> It will introduced much to much of a burden on PETSc developers to constantly
> be balancing what is in petscsysinline.h and petsc-private/petscimpl.h. In
> the end since any "inline stuff" needs to know essentially the EXACT
> underlying struct data structures there is nothing that is truly private.
> {For example, VecGetArray() could be done with hacks but then those hacks
> have to be kept in mind forever more.}
>
> It qualifies as a hack of sorts, but in the case of VecGetArray, we can have
>
> extern const size_t _petsc_vec_data_offset;
>
> that is defined in an implementation file as
>
> const size_t _petsc_vec_data_offset = offsetof(struct _p_Vec,data);
>
> This would take the definition of _p_Vec out of the ABI (so we could add new
> stuff to _p_PetscObject without recompiling user code). If we could remove
> the other ABI dependencies this way (and if there are not too many of them),
> I'd be in favor of doing it just to tighten the ABI.