<div dir="ltr">On Thu, Apr 11, 2013 at 10:39 AM, Satish Balay <span dir="ltr"><<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Thu, 11 Apr 2013, Satish Balay wrote:<br>
<br>
> On Thu, 11 Apr 2013, Matthew Knepley wrote:<br>
><br>
> > On Thu, Apr 11, 2013 at 10:12 AM, Satish Balay <<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>> wrote:<br>
> ><br>
> > > On Thu, 11 Apr 2013, Satish Balay wrote:<br>
> > ><br>
> > > > > > > > > We have had this same discussion a million times, and we always<br>
> > > > > > > > eventually<br>
> > > > > > > > > get to the same answer and forget. Do we need our own error<br>
> > > message<br>
> > > > > > for<br>
> > > > > > > > > petsc-dev?<br>
> > > > > > > > ><br>
> > > > > > > > > We cannot possibly guess everything that can go wrong. What we<br>
> > > need<br>
> > > > > > is a<br>
> > > > > > > > > system<br>
> > > > > > > > > where the user can specify what he actually wants and we check<br>
> > > it.<br>
> > > > > > So,<br>
> > > > > > > > zlib<br>
> > > > > > > > > and<br>
> > > > > > > > > everything else are optional dependencies for hdf5. If<br>
> > > something is<br>
> > > > > > not<br>
> > > > > > > > > specified, it<br>
> > > > > > > > > fails, and the user goes back and specifies the right thing.<br>
> > > > > > > ><br>
> > > > > > > > Sure - but specify how? specify everything with<br>
> > > > > > > > --with-hdf5-lib,--with-hdf5-include options?<br>
> > > > > > > ><br>
> > > > > > > > Or somehow he knows that he has to specify<br>
> > > > > > > > --with-zlib-include/-with-zlib-lib options?<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > > > > This. It would be nice if HDF5 would tell us about its<br>
> > > dependencies, but<br>
> > > > > > if<br>
> > > > > > > it does not, then<br>
> > > > > > > the user has to, and this is our system (packages).<br>
> > > > > ><br>
> > > > > > So we would start adding zlib.py, szip.py and manymore [and support<br>
> > > > > > --download-zlib --download-szip]. And if user gets the error:<br>
> > > > > ><br>
> > > > > > --with-hdf5-dir=/foo/bar does not work.<br>
> > > > > ><br>
> > > > > > So he/she send us configure.log<br>
> > > > > ><br>
> > > > > > Then we look at it and respond saying: you need to specify<br>
> > > --with-zlib-dir<br>
> > > > > > --with-szip-dir options aswell.<br>
> > > > > ><br>
> > > > > > Does this look right?<br>
> > > > ><br>
> > > > ><br>
> > > > > Yes, that is what I think makes sense.<br>
> > > > ><br>
> > > > > We can always try to add another layer that 'greps' for libz in the<br>
> > > hdf5<br>
> > > > > error message and guesses that<br>
> > > > > the user forgot it, but hopefully before we get to it, a sane storage<br>
> > > > > library appears, or HDF5 gets its act<br>
> > > > > together.<br>
> > > ><br>
> > > > In this case - why bother with libz.py and szip.py? Why not tell the<br>
> > > > user to specify hdf5 completely with --with-hdf5-include and<br>
> > > > --with-hdf5-lib options?<br>
> > > ><br>
> > > > Just printing the link errors on the screen might be sufficient to<br>
> > > > clue in the user. Currently its hidden inside configure. [And its not<br>
> > > > clear which of the 10 tests configure did for this case should be<br>
> > > > printed on the screen as the appropriate message]<br>
> > ><br>
> > > I might have been the one that advocated self.needsCompression approach<br>
> > > thats<br>
> > > currently in configure.<br>
> > ><br>
> > > This is currently used only by hdf5.py.<br>
> > ><br>
> > > My current thought is to strip it out - and just add it to hdf5.py as:<br>
> > ><br>
> > >     self.liblist   =<br>
> > > [['libhdf5.a','libhdf5_hl.a'],'['libhdf5.a','libhdf5_hl.a','libz.a'],['libhdf5.a','libhdf5_hl.a','zlib.lib']]<br>
> > ><br>
> > > This would be equivalent to the current functionality - and perhaps<br>
> > > what was there previously - before we wanted better error messages and<br>
> > > detection of zlib. Since this is not possible anyway why bother<br>
> > > with the additional complexity?<br>
> ><br>
> ><br>
> > What is not possible? Detecting zlib? Of course this is possible, and we do<br>
> > it.<br>
><br>
> The primary thing we need is detecting hdf5 provided by user requires<br>
> zlib [and or szip]. This is not poissible.<br>
><br>
> And current code can't detect zlib anyway [outside system locations]<br>
> so we need libz.py to detect it better.  But whats the point of it?<br>
> [detecting zlib or szip via --with-zlib-dir and --with-szip-dir options?]<br>
><br>
> When use has a mesages:<br>
><br>
> --with-hdf5=foo/bar provides does not work<br>
><br>
> I'd rather respond with:<br>
><br>
> Specify hdf5 and all its dependencies correctly with<br>
> --with-hdf5-lib,--with-hdf5-include options.<br>
><br>
><br>
> > It is not possible to know without testing what crazy link line is<br>
> > required by HDF5, at least I don't know how to do that.<br>
><br>
> yes<br>
><br>
> > This is no way affects the utility of testing for zlib.<br>
><br>
> But whats the point of testing for zlib - if not for hdf5? And if we<br>
> can't relate them automatically.<br>
<br>
</div></div>I'll concede that having zlib.py szip.py will be useful if you need<br>
them for --download-hdf5 [either as mandatory dependencies or optonal<br>
dependencies].<br>
<br>
Currently --download-hdf5 isn't built with either.<br>
<br>
My contention here is - depencency management stuff in configure<br>
doesn't help for the optional dependencies of user installed packages<br>
that are specified to petsc configure with the option<br>
--with-package-dir</blockquote><div><br></div><div style>Okay, I would like to distinguish between good behavior and HDF5. If we</div><div style>can ask whether the package enables it, we are fine. If there is a simple</div>
<div style>test we can do, we are fine. What can we do for HDF5?</div><div style><br></div><div style>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
Satish<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>