[Metakit] [Fwd: memory leaks in python interface [was Hash view questions]]

Jean-Claude Wippler jcw at equi4.com
Fri Mar 17 11:33:57 CET 2006


Ralf Schmitt wrote:

> Brian Kelley schrieb:
>> Well, I should get off my butt here.   I agree that the metakit
>> interface needs to be rewritten and I have started a swig'd version
>> that is going slowly.  The first pass is a "low-level" interface that
>> acts like C++.  If anyone wants to help me flesh it out, I'll start a
>> sourceforge repository so we can make the second pass to be more
>> pythonic.
>>
> After working a bit with the existing codebase, I thought the best  
> thing to do, was to clean it up a bit, remove some C++ magic and be  
> done with it - after all this is working code. JCW  is  a bit quiet  
> on this topic and so my motivation to  heavily patch the python  
> interface is near zero as this makes integrating patches made in  
> the metakit cvs repository a pain in the ass.

Quiet, but definitely interested.  I decided to wait a bit to gauge  
what the response is - besides, I'm afraid to stifle any good  
initiatives.

I don't know what the barrier is for fixing things and altering  
whatever needs to be improved.  Gordon's code was written a long time  
ago, and from what I remember he wrote the SCXX wrapper to simplify  
the Mk4py wrapper (there was an older very crude wrapper by me, ages  
before that).  SWIG wasn't good enough to wrap MK's C++ code back  
then, but no doubt it'll be much better at it now.

Have got no personal preference w.r.t. tweaking Mk4py vs. creating a  
new Python wrapper over a SWIG binding.  I can see some pro's and  
con's either way.

In terms of integrating changes, I can't open up the equi4.com site  
to CVS check-in, but the least I can do is accept patches and changes  
on the existing CVS repository (there's now also a CVStrac web-based  
issue tracker which may help ensure that no details fall through the  
cracks).  For a more concerted collaborative effort, I agree that the  
current public project sites offer more flexibility.

> You know Joel's attitude on this topic?
> http://www.joelonsoftware.com/articles/fog0000000069.html

Spot on.  I feel that pain EVERY DAY, in my work on the Vlerq project  
(which is very much alive, but essentially a one-man effort).

Looking forward, I would think that a Python-code-on-top-of-a-thin-C/C 
++-binding has the most chances of creating a really good fit for the  
language.  I see my task as coming up with an engine and a bunch of  
super-thin C bindings, letting different language experts create a  
good fit for each case.  In my experience, both tasks are hard and  
totally complementary.  I'm limiting myself to the first part in  
Vlerq, and have added core C bindings for, in chronological order:  
Tcl, Python, Ruby, and Lua.  I'll also add that the Vlerq code is  
work-in-progress and not ready for prime time.  Some thoughts on this  
subject are at http://www.vlerq.org/vqr/318

So on the one hand, the core Metakit C++ code is unlikely to ever go  
through any further major revisions, making tweaks to what there is a  
sensible option.  On the other hand, creating a new very Pythonic  
wrapper may lead to something which can one day be migrated to use a  
new engine from the Vlerq project.  Beware of coding things too  
generally in an attempt to cover all bases today, though.  It seems  
to me that the main challenge for a Python wrapper is to present a  
model that works fantastically well in Python - actual code can  
easily be changed later, even if it was written completely towards  
either the current Mk4py or Brian's SWIG binding.

Maybe the answer is not either/or?

-jcw



More information about the Metakit mailing list