<html><head></head><body>Yes, I think that's the reason we moved it to private :-)<br><br>Sometimes I see _Internal. I thought _Private is preferred for static functions visible only within a single object file?<br><br>Vaclav<br><br><br><div class="gmail_quote">20. června 2019 21:50:29 SELČ, "Smith, Barry F." <bsmith@mcs.anl.gov> napsal:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail"><br>It HAS A hid_t argument! Making it public means making HDF5 includes public, means all PETSc applications have the HDF5 includes open in them. Likely it should just get _Private <br><br>   Barry<br><br><br>On Jun 20, 2019, at 9:01 AM, Hapla Vaclav via petsc-dev <petsc-dev@mcs.anl.gov> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><br>On 20 Jun 2019, at 15:56, Vaclav Hapla <vaclav.hapla@erdw.ethz.ch> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"><br>/home/sandbox/petsc/petsc.next-3/src/mat/impls/dense/seq/densehdf5.c:62: undefined reference to `PetscViewerHDF5Load'<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;"><br>Does it mean I need to change visibility of PetscViewerHDF5Load in isimpl.h to PETSC_EXTERN?<br>Are you OK with that?<br></blockquote><br>Yes, and when doing that, it needs a Developer level man page.<br></blockquote><br>OK, thanks.<br></blockquote><br>So as a rule of thumb, every PETSC_EXTERN function should be documented, although in private headers?<br><br>Then src/vec/is/utils/hdf5io.c should have<br>#include <petsc/private/isimpl.h> /*I "petsc/private/isimpl.h" I*/<br>?<br>Looks a bit weird, doesn't it?<br><br>I think there are countless cases petsc-wide which break this.<br></blockquote><br>dev manual page 15 bullet 15:<br>"private functions may need to be marked PETSC_EXTERN"<br>There is an example of MatHeaderReplace. It hasn't a manpage.<br><br></blockquote><br>Well, I'm not against making it public (it originally was) and write a manpage, but then it should be also moved to the public header file.<br><br>Sorry for sending a few previous emails only to Jed.<br><br>Vaclav<br><br></blockquote><br></pre></blockquote></div></body></html>