On Jan 6, 2006, at 6:55 PM, Stephen Langer wrote:
On Jan 6, 2006, at 11:33 AM, Bob Ippolito wrote:
On Jan 6, 2006, at 8:19 AM, Phillip J. Eby wrote:
The issue for the PyICU/PyLucene etc. use cases is that there are a whole bunch of SWIG wrappers for different extensions, but with a large common library for type mapping etc. The authors want a shared library for *their own code* that is used by multiple extensions. This is not separately distributed code.
It'd be better if these projects just fixed themselves to do things the "right" way, using a Python extension and a function table.
Can you explain to me in more detail what the "right" way is? I have a large number of swig wrapper files for a large number of C++ files. The program has a small number of core shared libraries that are always loaded, and a few that are optional. The shared library code is written in C++. Sometimes classes defined in the core libraries are used as base classes for classes defined in the optional libraries. All of this can be handled easily with shared libraries. How can it be done with function tables?
Numeric, Numarray, pygame, PyObjC, etc. are good references for how to export bits of C API as a function table. I don't use C++ unless I have to, so I'm not familiar enough with it to say whether or not it's going to cause problems given how you want to use it. Maybe it's not possible without refactoring the optional library code to work some other way.