"Stelios Xanthakis" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] >> - hacking SWIG. Shouldn't be too hard and will instantly give >> us access to wx, qt, etc.
Have you ever written a non-trivial extension using Swig? It isn't as simple as you would think. There are a lot of little things to deal with, usually because because of the mismatch between C/C++ semantics and convention and Python library expectations. You have to do a fair amount of work to fix all that using C code, Python code and sometimes parts of the internals of Swig-Python. wxPython has used a modified version of Swig for most of its lifetime. Some people also have issues with Swig staying compatible with itself: http://bob.pythonmac.org/archives/2005/03/11/swig-hate/ PyQT uses another tool to do the wrapping - SIP. Tools like Swig have been in the business of exposing C/C++ to Python for years and are still suboptimal. I believe you will find "hacking SWIG" and actually porting an existing project that uses it to be hard. I would suggest looking in the lib/python directory of Swig to get an idea of what you have to start with. Note how there is minimal overlap with the Java directory to pick one example. >> The thing is that the C API of pyvm is IMHO superior and much more fun. That is not under dispute. The suggestion is that you *also* provide a way of running existing extensions, even if it is slow and inferior, ideally without even having to recompile them. (If you do require a recompile then you'll also have to port/invent an equivalent to distutils). >> You can wrap the entire sockets module in a couple of hours and also >> enjoy it. sockets are easy. There are no structures, plain integer handles, no pointers, about 8 methods and a few constants. About the only thing to remember is to deal with threading correctly. >> I wish I could clone myself to port the entire std library >> to pyvm -- so much fun it is:) Well, if you don't provide an easy way to move existing stuff across, you'll end up doing just that yourself! Roger -- http://mail.python.org/mailman/listinfo/python-list