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.

Reply via email to