← Back to team overview

dolfin team mailing list archive

Re: FunctionSpace error in python

 

On Friday 23 January 2009 11:27:31 Ola Skavhaug wrote:
> On Fri, Jan 23, 2009 at 10:32 AM, Johan Hake <hake@xxxxxxxxx> wrote:
> > On Friday 23 January 2009 10:09:12 Martin Sandve Alnæs wrote:
> > > On Fri, Jan 23, 2009 at 9:39 AM, Johannes Ring <johannr@xxxxxxxxx>
> >
> > wrote:
> > > > On Thu, January 22, 2009 19:10, Johan Hake wrote:
> > > >> On Thursday 22 January 2009 17:02:41 A Navaei wrote:
> > > >>> Johan,
> > > >>>
> > > >>> Thanks, instant-clean did the trick! Maybe this should be somehow
> > > >>> automated.
> > > >>
> > > >> Yes, I have thought about it.
> > > >>
> > > >> Is it possible to add a call to instant-clean in the install script
> > > >> of the ffc
> > > >> and dolfin packages Johannes?
> > > >
> > > > Yes, it is possible to add post installation scripts to the FFC and
> > > > DOLFIN packages (and perhaps Instant) that runs instant-clean. Should
> > > > I add this?
> > > >
> > > > Johannes
> > >
> > > Can you add it to SyFi as well please? But we don't want this in
> > > development versions though, we should at least have an option
> > > to avoid it.
> >
> > I think it will be sufficient to add the automatic cleaning in the ubuntu
> > scripts.
> >
> > I can add the swig version to the signature generation in ffc and dolfin.
> >
> > While on the topic, does instant check whether swig is installed, when a
> > module is built? Also I have on several occasions now checked for the
> > swig version. Should I put this code in instant, e.g.
> >
> >   check_swig_version("1.3.35")
> >
> > It will return false if the current swig version is lesser than "1.3.35"?
> > I think it would be natural for instant to provide such a function.
>
> There is a related problem that needs to be adressed here. If you build an
> extension of a module wrapped with version x of swig, you should require
> the same version of swig in instant. Perhaps the
> check_swig_version("1.3.35") should only return true if you have exactly
> that version. Another function, a-la
>
> assert_swig_min_version("1.3.35")

This could probably be kept in one function. By default the function returns 
whether a version of swig is equal or greater than the prescribed version, 
and:

   check_swig_version("1.3.35", equal = True)

will return true only if the version is the same as the prescribed one? 

The assertion functionality will then be handled by the function that use 
instant, i.e., ffc, sfc, dolfin compile_function a.s.o.

> could be used to make sure you got a recent enough swig.
>
> For example, if I have built dolfin with version 1.3.36 of swig, and then
> upgraded swig to 1.3.37, chances are good that the type info in the
> instant-generated extension (swig v1.3.36) will not be compatible.

Sounds also like a nice feature. If we want this we need to include that in 
the call to the ffc.jit(). Then can PyDOLFIN call jit with the version of 
swig it was compiled with. 

This information could probably be stored by letting scons produce a file with 
the function swig_version(). This makes it a bit more complex, but it is 
doable and makes this multi-swig-module thing we are doing a bit more robust.

Johan

> Ola
>
> > Even better would be adding version numbers to the checksum,
>
> Ok, this was what Anders suggested? If so I can probably add this too.
>
> > > make instant keep a most recently used list, add a max cache size
> > > option to ~/.instant/intantrc, and let instant clean up the oldest
> > > modules whenever it adds stuff to the cache which exceeds its
> > > quota.
> >
> > Sounds nice.
> >
> > > And we should probably add another feature to instant:
> > > providing a cache subfolder name. Then instant-clean can
> > > take an argument to clean only the "ffc" cache subfolder etc.
> >
> > This should be quite easy to add right? Just add:
> >
> >  cache_subfolder=None,
> >
> > to build_module(), copy_to_cache() and get_default_cache_dir() in
> > instant, and
> > of course implement the functionality. Then instant-clean has to be
> > altered.
> >
> >
> > Johan
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/mailman/listinfo/dolfin-dev<https://www.fenics.org/
> >mailman/listinfo/dolfin-dev>




Follow ups

References