dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #11867
Re: FunctionSpace error in python
On Friday 23 January 2009 11:54:50 Martin Sandve Alnæs wrote:
> On Fri, Jan 23, 2009 at 11:48 AM, Johan Hake <hake@xxxxxxxxx> wrote:
> > 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.
>
> But FFC isn't compiled with SWIG. Dolfin will have to do that, for
> example at import time.
No, but it produces code that is compiled with swig. And this code should be
compiled with the same swig version that dolfin is compiled with. Then dolfin
need to hand its swig version to ffc when it is using it so ffc can check
which version is installed while swigging compiled forms. If this version is
not the same as the handed version from dolfin -> raise error.
Johan
>
> >> 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.
>
> Why not just use the SWIG_VERSION variable Ola mentioned?
>
> > 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.o
> >> >rg/ mailman/listinfo/dolfin-dev>
Follow ups
References