On Wed, Feb 02, 2011 at 09:43:58AM +0100, Harish Narayanan wrote: > On 2/2/11 12:39 AM, Anders Logg 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. > > Dorsal has long-supported swig because of genius distributions like Red > Hat. In theory you should be able to version-bump swig.package and > include it in the platform files.
ok, let's move to SWIG 2.0 after 0.9.10. -- Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

