On Sat, May 17, 2008 at 8:13 PM, Nathan Bell <[EMAIL PROTECTED]> wrote: > On Sat, May 17, 2008 at 7:48 PM, Robert Kern <[EMAIL PROTECTED]> wrote: >> For the purposes to which SWIG was applied in that case, the findings >> are accurate. > > IMO it's deliberately misleading. The following three layers are > spurious and have no analog on the Cython stack: > Python code to provide a clean interface > Handcode C++ Integer class > GMP's C++ Interface
If you want to end up with a class, that's more or less what you would do in SWIG. Some bits in Python, because they're dealing with Python types and exceptions and such. Some bits in C++ because you need to touch C/C++ structures. Just wrapping the functions in SWIG and then making the class in pure Python can sometimes work, but often you need to make a C++ class sitting on top of your library. Except for possibly the GMP C++ layer (perhaps the handwritten C++ class could just have used the GMP C API, I don't know), they're not spurious. All of that functionality that was implemented in those layers were implemented in the single Cython layer. > A more honest comparison would list 3 layers for SWIG vs. 2 layers for Cython. > > I don't have a hard time believing that Cython is a better choice for > fine-grained access to C/C++ code. However contrived scenarios like > the above don't inspire my confidence either. It was not contrived. It's production code. It was a real and perfectly valid use case. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion