This used to be hacky code in blaslapack.py. I think I must have moved it into a function - instead of inline hacks in there. (and updated code as we saw breakages)
Perhaps at some point it was also needed by superlu [since it has some blas equivalent - that should be skipping the optimization flags] - so it got moved into package.py. I guess we didn't do the alternative of identifying optimization flags used - and strip them out - as we don't know what they can be. Perhaps we could assume optimization flags are stored separately - and look for it [instead of assuming] - I don't know.. Satish On Tue, 30 Sep 2014, Barry Smith wrote: > This does not belong in package.py, where does it belong? > > def checkNoOptFlag(self): > flag = '-O0' > if self.setCompilers.checkCompilerFlag(flag): return flag > return '' > > def getSharedFlag(self,cflags): > for flag in ['-PIC', '-fPIC', '-KPIC', '-qpic']: > if cflags.find(flag) >=0: return flag > return '' > > def getPointerSizeFlag(self,cflags): > for flag in ['-m32', '-m64', '-xarch=v9','-q64']: > if cflags.find(flag) >=0: return flag > return '' > > def getWindowsNonOptFlags(self,cflags): > outflags = [] > for flag in cflags.split(): > if flag in ['-MT','-MTd','-MD','-MDd','-threads']: > outflags.append(flag) > return ' '.join(out flags) > > And having a Windows and Not Windows functions for Opt flags in the API is > disgraceful. > > Barry > > > On Sep 30, 2014, at 4:09 PM, Matthew Knepley <[email protected]> wrote: > > > On Tue, Sep 30, 2014 at 4:00 PM, Barry Smith <[email protected]> wrote: > > > > Matt, > > > > Can all the “provider” stuff in package.py like > > > > def getDefaultPrecision(self): > > '''The precision of the library''' > > if hasattr(self, 'precisionProvider'): > > if hasattr(self.precisionProvider, 'precision'): > > return self.precisionProvider.precision > > return self._defaultPrecision > > def setDefaultPrecision(self, defaultPrecision): > > '''The precision of the library''' > > self._defaultPrecision = defaultPrecision > > return > > defaultPrecision = property(getDefaultPrecision, setDefaultPrecision, doc > > = 'The precision of the library’) > > > > be cleaned up/simplified/removed with the new BuildSystem model? > > > > 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. > > > > The provider stuff is intended to support out-of-package ways to say > > something about the configuration. So we have an object > > that can come from anywhere. The stuff around it just access the object > > automatically, instead of making the user pull it out and > > reference it. I thought that was easier. > > > > Do you want to just set a flag? I thought that was limiting, and duplicated > > information. > > > > You can get rid of all this boilerplate code in newer version of Python. We > > have been > > outlawing newer versions. If we reopen that discussion, I vote for > > autoinstalling Python > > 2.7. > > > > Thanks, > > > > Matt > > > > Barry > > -- > > What most experimenters take for granted before they begin their > > experiments is infinitely more interesting than any results to which their > > experiments lead. > > -- Norbert Wiener > >
