On 02/02/11 15:46, Johan Hake wrote: > On Wednesday February 2 2011 02:31:02 Johannes Ring wrote: >> On Wed, Feb 2, 2011 at 12:39 AM, Anders Logg <[email protected]> wrote: >>> On Tue, Feb 01, 2011 at 11:35:28PM +0000, Garth N. Wells wrote: >>>> On 01/02/11 23:19, Johan Hake wrote: >>>>> On Tuesday February 1 2011 15:14:21 Anders Logg wrote: >>>>>> On Tue, Feb 01, 2011 at 03:12:05PM -0800, Johan Hake wrote: >>>>>>> On Tuesday February 1 2011 14:53:55 Anders Logg wrote: >>>>>>>> Something seems to go wrong with the Hierarchical Python wrappers. >>>>>>>> >>>>>>>> C++ program: >>>>>>>> UnitSquare mesh(3, 3); >>>>>>>> mesh._debug(); >>>>>>>> >>>>>>>> Output: >>>>>>>> >>>>>>>> Debugging hierarchical object. >>>>>>>> >>>>>>>> has_parent() = 0 >>>>>>>> _parent.get() = 0 >>>>>>>> _parent.count() = 0 >>>>>>>> has_child() = 0 >>>>>>>> _child.get() = 0 >>>>>>>> _child.count() = 0 >>>>>>>> >>>>>>>> Debugging hierarchical object. >>>>>>>> >>>>>>>> has_parent() = 0 >>>>>>>> _parent.get() = 0 >>>>>>>> _parent.count() = 0 >>>>>>>> has_child() = 0 >>>>>>>> _child.get() = 0 >>>>>>>> _child.count() = 0 >>>>>>>> >>>>>>>> Python program: >>>>>>>> mesh = UnitSquare(3, 3) >>>>>>>> mesh._debug() >>>>>>>> >>>>>>>> Debugging hierarchical object. >>>>>>>> >>>>>>>> has_parent() = 0 >>>>>>>> _parent.get() = 0 >>>>>>>> _parent.count() = 0 >>>>>>>> has_child() = 0 >>>>>>>> _child.get() = 0 >>>>>>>> _child.count() = 0 >>>>>>>> >>>>>>>> Debugging hierarchical object. >>>>>>>> >>>>>>>> has_parent() = 1 >>>>>>>> _parent.get() = cbd47290 >>>>>>>> _parent.count() = -878438560 >>>>>>>> has_child() = 1 >>>>>>>> _child.get() = cbd47290 >>>>>>>> _child.count() = -878438560 >>>>>>>> >>>>>>>> The first call to Hierarchical::_debug is made from the constructor >>>>>>>> of Hierarchical and is correct in both C++ and Python, but then >>>>>>>> the Python object seems to lose contact with the reality. >>>>>>> >>>>>>> Yes quite so... >>>>>>> >>>>>>> I changed locally to swig 2.0 and the problem went away. shared_ptr >>>>>>> support has been rewritten in 2.0. I might be able to hack the >>>>>>> interface of Hierarchical in a similar manner as I did for >>>>>>> Variables. Just implementing the interface again in the C++ layer. >>>>>>> >>>>>>> But I am not sure. The shared_ptr part of the SWIG interface starts >>>>>>> to be quite complex now with supporting SWIG version 1.3.37 to >>>>>>> 1.3.40 and 2.0 >>>>>>> >>>>>>> Maybe we should force SWIG 2.0? >>>>>> >>>>>> Is that possible? It's not in Ubuntu yet, or is it? >>>> >>>> It's in 11.04 >>>> >>>> Swig is super easy to install. >>> >>> If we can include SWIG installation in Dorsal and Johannes is able to >>> make packages that rely on SWIG 2.0 then we might as well move to 2.0 >>> to save us (mainly Johan) a lot of trouble. >> >> I tried to build UFC and DOLFIN in Debian unstable with the swig2.0 >> package (same package as in Ubuntu 11.04). One problem is that this >> package does not contain /usr/bin/swig but only /usr/bin/swig2.0. I >> fixed this by setting -DSWIG_EXECUTABLE:FILEPATH=/usr/bin/swig2.0 when >> building UFC and DOLFIN, but running the poisson Python demo failed >> because Instant was unable to find swig. The reason for naming the >> binary "swig2.0" is probably that SWIG 1.3 is still the default in >> Debian (and Ubuntu). > > Ok then it might be difficult. We could maybe add some funcitonality to > instant to define what executable it shold look for? >
We should definitely have that - DOLFIN should be able to pass the Swig executable name and path. I've already seen that having two versions of Swig installed is problematic. Garth > Johan > >> Johannes >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~dolfin >> Post to : [email protected] >> Unsubscribe : https://launchpad.net/~dolfin >> More help : https://help.launchpad.net/ListHelp > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : [email protected] > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

