[petsc-dev] Removed functions in MPI 3

Barry Smith bsmith at mcs.anl.gov
Tue Jan 22 07:18:51 CST 2013


   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.




More information about the petsc-dev mailing list