<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 5, 2013 at 11:57 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":3y8">This is very nice, much better than before, no confusing macros and complicated #if conditions, simpler for the users to understand also.<br>

<br>
  Does this mean we shouldn't/don't need to/should continue to mark functions used in a single file as static?<br></div></blockquote><div><br></div><div style>If we use --with-visibility, unadorned functions behave like PETSC_INTERN except that their names will be mangled for clanguage=C++. (The symbols aren't visible outside the library so that doesn't matter, except to language purists and possibly C++ exception propagation.) I would still prefer to use 'static' whenever possible because it makes it easier to determine how much code could depend on that function.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":3y8">
  I found a few problems so far<br>
<br>
   0) Do these really need PETSC_EXTERN? Note that they are not declared PETSC_EXTERN when defined, only in snesimpl.h<br>
<br>
PETSC_EXTERN PetscErrorCode SNESReset_VI(SNES);<br>
PETSC_EXTERN PetscErrorCode SNESDestroy_VI(SNES);<br>
PETSC_EXTERN PetscErrorCode SNESView_VI(SNES,PetscViewer);<br>
PETSC_EXTERN PetscErrorCode SNESSetFromOptions_VI(SNES);<br>
PETSC_EXTERN PetscErrorCode SNESSetUp_VI(SNES);<br>
PETSC_EXTERN_TYPEDEF typedef PetscErrorCode (*SNESVIComputeVariableBoundsFunction)(SNES,Vec,Vec);<br>
PETSC_EXTERN PetscErrorCode SNESVISetComputeVariableBounds_VI(SNES,SNESVIComputeVariableBoundsFunction);<br>
PETSC_EXTERN PetscErrorCode SNESVISetVariableBounds_VI(SNES,Vec,Vec);<br>
PETSC_EXTERN PetscErrorCode SNESDefaultConverged_VI(SNES,PetscInt,PetscReal,PetscReal,PetscReal,SNESConvergedReason*,void*);<br></div></blockquote><div><br></div><div style>They can all become PETSC_INTERN unless we have reason to support plugin authors or petscts calling those directly instead of using an interface.</div>
<div><br></div></div><br></div></div>