changes for next PETSc release
Boyce Griffith
griffith at cims.nyu.edu
Mon Mar 17 13:47:39 CDT 2008
Matthew Knepley wrote:
> On Mon, Mar 17, 2008 at 1:06 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> Fortran90 has namespaces??????
>
> Not in the way I was thinking. Damn F90. Anyway, it looks like you can
> selectively
> use interface modules, so we might be able to get away with redundant names
> by just not using them together.
>
> I jsut really hate the idea of putting "PETSc" in front of every word
> in the package.
> It is really the ugliest thing I can imagine and will make programming that much
> more of a slog.
I'm not confident that what I'm about to suggest is actually a good
idea, but perhaps there could be two interfaces: one for C and one for C++.
The C interface could use something like "petsc_" as a prefix for all
PETSc functions and structs (e.g., petsc_Mat and petsc_KSPSolve()), and
the C++ interface could define everything in the petsc namespace (e.g.,
petsc::Mat and petsc::KSPSolve()). I think that it should be
straightforward to make a script to automate the generation of the C++
interface from the C interface, e.g. using typedefs for the various
structs and inline functions that simply call the appropriate C function.
Folks who really want to avoid re-writing large amounts of code could
switch to using a C++ compiler instead of a C compiler and use "using
namespace petsc". Possibly the "using namespace" declaration could be
done automatically in the PETSc headers when an appropraite variable is
#define'd (e.g., whenever PETSC_COMPATIBILITY_MODE is #define'd).
-- Boyce
More information about the petsc-dev
mailing list