<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 30, 2014 at 4:40 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">  This does not belong in package.py, where does it belong?<br>
<br>
  def checkNoOptFlag(self):<br>
    flag = '-O0'<br>
    if self.setCompilers.checkCompilerFlag(flag): return flag<br>
    return ''<br>
<br>
  def getSharedFlag(self,cflags):<br>
    for flag in ['-PIC', '-fPIC', '-KPIC', '-qpic']:<br>
      if cflags.find(flag) >=0: return flag<br>
    return ''<br>
<br>
  def getPointerSizeFlag(self,cflags):<br>
    for flag in ['-m32', '-m64', '-xarch=v9','-q64']:<br>
      if cflags.find(flag) >=0: return flag<br>
    return ''<br>
<br>
  def getWindowsNonOptFlags(self,cflags):<br>
    outflags = []<br>
    for flag in cflags.split():<br>
      if flag in ['-MT','-MTd','-MD','-MDd','-threads']:<br>
        outflags.append(flag)<br>
    return ' '.join(out flags)<br>
<br>
  And having a Windows and Not Windows functions for Opt flags in the API is disgraceful.</blockquote><div><br></div><div>These should not be anywhere:</div><div><br></div><div> 1) The first check should just be in compilerOptions.py I think. Not sure what it is for.</div><div><br></div><div> 2) We already check for shared library flags, and I think they are compilers.sharedLibraryFlags</div><div><br></div><div> 3) I am not sure why we need a check for pointer size flags, but it should be a test in types.py</div><div>     if we do need it.</div><div><br></div><div> 4) These should go with 1)</div><div><br></div><div>   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">
   Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On Sep 30, 2014, at 4:09 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
<br>
> On Tue, Sep 30, 2014 at 4:00 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
>   Matt,<br>
><br>
>     Can all the “provider” stuff in package.py like<br>
><br>
>   def getDefaultPrecision(self):<br>
>     '''The precision of the library'''<br>
>     if hasattr(self, 'precisionProvider'):<br>
>       if hasattr(self.precisionProvider, 'precision'):<br>
>         return self.precisionProvider.precision<br>
>     return self._defaultPrecision<br>
>   def setDefaultPrecision(self, defaultPrecision):<br>
>     '''The precision of the library'''<br>
>     self._defaultPrecision = defaultPrecision<br>
>     return<br>
>   defaultPrecision = property(getDefaultPrecision, setDefaultPrecision, doc = 'The precision of the library’)<br>
><br>
> be cleaned up/simplified/removed with the new BuildSystem model?<br>
><br>
> What was the original need for the provider stuff and is there still a need? If there is still a need can it be satisfied some other way. Is there every a need for a different provide for different packages? For example hypre gets one xxx provider and some other package gets a different xxxx provider.<br>
><br>
> The provider stuff is intended to support out-of-package ways to say something about the configuration. So we have an object<br>
> that can come from anywhere. The stuff around it just access the object automatically, instead of making the user pull it out and<br>
> reference it. I thought that was easier.<br>
><br>
> Do you want to just set a flag? I thought that was limiting, and duplicated information.<br>
><br>
> You can get rid of all this boilerplate code in newer version of Python. We have been<br>
> outlawing newer versions. If we reopen that discussion, I vote for autoinstalling Python<br>
> 2.7.<br>
><br>
>   Thanks,<br>
><br>
>     Matt<br>
><br>
>   Barry<br>
> --<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<br>
<br>
</div></div></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>