← Back to team overview

dolfin team mailing list archive

Re: Hierarchical wrapping troubles

 


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.

Garth

> No, then we probably need to keep the mess...
> 
> Johan
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help   : https://help.launchpad.net/ListHelp



Follow ups

References