Thanks, Michiel. If you read between the lines of what I was saying, that is basically where I fall as well. There seems to be a lot of desire to use Cython to make the code more accessible, however, and I'm willing to consider it if it can be shown to be superior to the raw C/API for this task -- I'm not sure it is -- I always seem to end up with things that are more lines of code with more obscure workarounds than just coding in C directly.
Cheers, Mike On 11/29/2012 08:47 PM, Michiel de Hoon wrote: > Hi, > > The Mac OS X backend is entirely written in C (with some Objective-C elements > where necessary). AFAICT, this is the largest C/C++ code in matplotlib. This > backend was written from scratch without using Cython, SWIG, or Boost.Python. > From my experience, I would prefer to write such extensions in C directly > rather than relying on Cython, SWIG, or Boost.Python, because those > approaches would lead to another dependency (for developers at least), and > requires developers to learn how to code in them. Which may not be very hard, > but we may as well avoid that if possible. > > I'd be happy to help out with the conversion of the other extensions from CXX > to C. I would need some help though to use github appropriately. > > Best, > -Michiel. > > > --- On Thu, 11/29/12, Michael Droettboom <md...@stsci.edu> wrote: > >> From: Michael Droettboom <md...@stsci.edu> >> Subject: [matplotlib-devel] Experiments in removing/replacing PyCXX >> To: "matplotlib-devel@lists.sourceforge.net" >> <matplotlib-devel@lists.sourceforge.net> >> Date: Thursday, November 29, 2012, 11:59 AM >> Given the slow pace of development on >> PyCXX, I know it has been the >> desire of some here to remove our dependency on it. >> >> I thought a helpful starting point to evaluate the >> alternatives would be >> to restructure one of our extensions to not use PyCXX >> anymore. I've >> taken the PNG extension, which is reasonably straightforward >> in that it >> doesn't define any custom types, but does have some low >> level C-wrapping >> challenges, and separated out the Python-specific parts from >> the >> libpng-specific parts. The Python-specific parts are >> now written using >> the "raw" Python C/API. The other part still uses C++ (not >> C) and does >> throw exceptions, but doesn't use classes or templates or >> anything else >> that can be difficult to wrap. All of this is on my >> "no_cxx" branch. >> >> Now here's the challenge: can we do better than this using >> any of the >> available wrapping tools? Cython, SWIG, Boost.Python >> etc.? I've not had >> much luck with Cython for this kind of thing in the past, >> but I know it >> is popular. Perhaps someone with more Cython >> experience would want to >> take a crack at this and then we could have something >> concrete to compare... >> >> Cheers, >> Mike >> >> ------------------------------------------------------------------------------ >> Keep yourself connected to Go Parallel: >> VERIFY Test and improve your parallel project with help from >> experts >> and peers. http://goparallel.sourceforge.net >> _______________________________________________ >> Matplotlib-devel mailing list >> Matplotlib-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> ------------------------------------------------------------------------------ Keep yourself connected to Go Parallel: TUNE You got it built. Now make it sing. Tune shows you how. http://goparallel.sourceforge.net _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel