I'll just assume for the sake of argument that there's someone listening on the other side... :-)
Enclosed is a patch that significantly improves the implementation of substitution in the Itanium C++ ABI code. Now the "hello" demo can resolve the call to QObject::Connect(), and Tests.ManglingTests.TestCompression completes successfully. It also fixes several bugs in the existing implementation.
I decided to try to add more classes to the QtGui binding, with the goal of getting larger Qt programs to run, but got stuck at QMainWindow. I couldn't get it to handle the QFlags<Qt.Gui.Qt.WindowType> parameter to the QMainWindow constructor.
It was easy enough to add '<External implementation="struct">QFlags<Qt::WindowType></External>' to examples/qt/qt-gui-filters.xml, and to create a local variable of that type, but I couldn't create the mangled C++ name of the constructor method. It appears that src/generator/Generator.cs isn't adding template-modifiers to CppType, and from reading the gccxml FAQ, it appears that its handling of templates is incomplete. It still should handle instantiated templates, though, if not the generic version. It appears straightforward enough to add support for simple templates to src/Mono.Cxxi/Abi/Impl/ItaniumAbi.cs .
So...any suggestions on how to move forward? Is it as easy as fixing src/generator/Generator.cs to pass along information on
template-modifiers? And is anyone else working on these issues?
Steven Boswell