dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #11865
Re: FunctionSpace error in python
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.
>> 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.org/
>> >mailman/listinfo/dolfin-dev>
>
>
>
Follow ups
References